 b48b037fbe
			
		
	
	
		b48b037fbe
		
	
	
	
	
		
			
			servers/hgfs/hgfs_server => servers/hgfs servers/hgfs/libhgfs => lib/libhgfs servers/rs/service => commands/service drivers/memory/memory_driver => drivers/memory drivers/memory/ramdisk => drivers/ramdisk
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* This file contains various utility functions.
 | |
|  *
 | |
|  * The entry points into this file are:
 | |
|  *   get_name		retrieve a path component string from VFS
 | |
|  *   do_noop		handle file system calls that do nothing and succeed
 | |
|  *   no_sys		handle file system calls that are not implemented
 | |
|  *
 | |
|  * Created:
 | |
|  *   April 2009 (D.C. van Moolenbroek)
 | |
|  */
 | |
| 
 | |
| #include "inc.h"
 | |
| 
 | |
| /*===========================================================================*
 | |
|  *				get_name				     *
 | |
|  *===========================================================================*/
 | |
| PUBLIC int get_name(grant, len, name)
 | |
| cp_grant_id_t grant;		/* memory grant for the path component */
 | |
| size_t len;			/* length of the name, including '\0' */
 | |
| char name[NAME_MAX+1];		/* buffer in which store the result */
 | |
| {
 | |
| /* Retrieve a path component from the caller, using a given grant.
 | |
|  */
 | |
|   int r;
 | |
| 
 | |
|   /* Copy in the name of the directory entry. */
 | |
|   if (len <= 1) return EINVAL;
 | |
|   if (len > NAME_MAX+1) return ENAMETOOLONG;
 | |
| 
 | |
|   r = sys_safecopyfrom(m_in.m_source, grant, 0, (vir_bytes) name, len, D);
 | |
| 
 | |
|   if (r != OK) return r;
 | |
| 
 | |
|   if (name[len-1] != 0) {
 | |
| 	printf("HGFS: VFS did not zero-terminate path component!\n");
 | |
| 
 | |
| 	return EINVAL;
 | |
|   }
 | |
| 
 | |
|   return OK;
 | |
| }
 | |
| 
 | |
| /*===========================================================================*
 | |
|  *				do_noop					     *
 | |
|  *===========================================================================*/
 | |
| PUBLIC int do_noop()
 | |
| {
 | |
| /* Generic handler for no-op system calls.
 | |
|  */
 | |
| 
 | |
|   return OK;
 | |
| }
 | |
| 
 | |
| /*===========================================================================*
 | |
|  *				no_sys					     *
 | |
|  *===========================================================================*/
 | |
| PUBLIC int no_sys()
 | |
| {
 | |
| /* Generic handler for unimplemented system calls.
 | |
|  */
 | |
| 
 | |
|   return ENOSYS;
 | |
| }
 |