201 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| /* Fields of VFS/FS request messages */
 | |
| #define REQ_INODE_NR             m6_l1
 | |
| #define REQ_CHROOT_NR            m6_l2
 | |
| #define REQ_DEVx                 m6_l2
 | |
| #define REQ_GRANT2               m6_l2
 | |
| #define REQ_UID                  m6_s1
 | |
| #define REQ_GID                  m6_c1
 | |
| #define REQ_MODE                 m6_s3
 | |
| #define REQ_PATH                 m6_p1
 | |
| #define REQ_PATH_LEN             m6_s2
 | |
| #define REQ_FLAGS                m6_l3
 | |
| #define REQ_DEV                  m6_l3
 | |
| #define REQ_WHO_E                m6_l3
 | |
| #define REQ_GRANT                m6_l3
 | |
| #define REQ_USER_ADDR            m6_p2
 | |
| #define REQ_LENGTH               m6_l3
 | |
| #define REQ_SYMLOOP              m6_c2
 | |
| #define REQ_COUNT		 m6_l2
 | |
| 
 | |
| #define REQ_NEW_UID              m6_s3
 | |
| #define REQ_NEW_GID              m6_c2
 | |
| 
 | |
| #define REQ_INODE_INDEX          m6_l3
 | |
| 
 | |
| #define REQ_ACTIME               m6_l2
 | |
| #define REQ_MODTIME              m6_l3
 | |
| 
 | |
| #define REQ_VMNT_IND             m6_c2
 | |
| #define REQ_SLINK_STORAGE        m6_p1
 | |
| #define REQ_BOOTTIME             m6_l1
 | |
| #define REQ_DRIVER_E             m6_l2
 | |
| #define REQ_READONLY             m6_c1
 | |
| #define REQ_ISROOT		 m6_c2
 | |
| 
 | |
| #define REQ_REMOUNT              m6_c2
 | |
| 
 | |
| #define REQ_LINKED_FILE          m6_l1
 | |
| #define REQ_LINK_PARENT          m6_l2
 | |
| 
 | |
| #define REQ_OLD_DIR              m6_l2
 | |
| #define REQ_NEW_DIR              m6_l3
 | |
| #define REQ_SLENGTH              m6_s3
 | |
| 
 | |
| #define REQ_PIPE_POS             m6_l1
 | |
| 
 | |
| #define REQ_FD_INODE_NR          m2_i1
 | |
| #define REQ_FD_WHO_E             m2_i2
 | |
| #define REQ_FD_GID               m2_i2
 | |
| #define REQ_FD_POS               m2_i3
 | |
| #define REQ_FD_NBYTES            m2_l1
 | |
| #define REQ_FD_SEG               m2_l2
 | |
| #define REQ_FD_INODE_INDEX       m2_s1
 | |
| 
 | |
| #define REQ_FD_USER_ADDR         m2_p1
 | |
| #define REQ_FD_LENGTH            m2_i2
 | |
| #define REQ_FD_START             m2_i2
 | |
| #define REQ_FD_END               m2_i3
 | |
| 
 | |
| #define REQ_FD_BDRIVER_E         m2_i1
 | |
| 
 | |
| #define REQ_XFD_BDEV              m2_i1
 | |
| #define REQ_XFD_WHO_E             m2_i2
 | |
| #define REQ_XFD_GID               m2_i2
 | |
| #define REQ_XFD_NBYTES            m2_i3
 | |
| #define REQ_XFD_POS_LO            m2_l1
 | |
| #define REQ_XFD_POS_HI            m2_l2
 | |
| #define REQ_XFD_USER_ADDR         m2_p1
 | |
| /* #define REQ_XFD_BLOCK_SIZE        m2_s1 */
 | |
| 
 | |
| #define REQ_L_GRANT		m9_l1
 | |
| #define REQ_L_PATH_LEN		m9_s1
 | |
| #define REQ_L_PATH_SIZE		m9_s2
 | |
| #define REQ_L_PATH_OFF		m9_l2
 | |
| #define REQ_L_DIR_INO		m9_l3
 | |
| #define REQ_L_ROOT_INO		m9_l4
 | |
| #define REQ_L_FLAGS		m9_c1
 | |
| #define REQ_L_UID		m9_s3
 | |
| #define REQ_L_GID		m9_c2
 | |
| 
 | |
| /* For REQ_GETDENTS */
 | |
| #define REQ_GDE_INODE		 m2_i1
 | |
| #define REQ_GDE_GRANT		 m2_i2
 | |
| #define REQ_GDE_SIZE		 m2_i3
 | |
| #define REQ_GDE_POS		 m2_l1
 | |
| 
 | |
| /* For REQ_RENAME_S */
 | |
| #define REQ_REN_OLD_DIR		m2_l1
 | |
| #define REQ_REN_NEW_DIR		m2_l2
 | |
| #define REQ_REN_GRANT_OLD	m2_i1
 | |
| #define REQ_REN_LEN_OLD		m2_i2
 | |
| #define REQ_REN_GRANT_NEW	m2_i3
 | |
| #define REQ_REN_LEN_NEW		m2_s1
 | |
| 
 | |
| /* Fields of VFS/FS respons messages */
 | |
| #define RES_MOUNTED              m6_s1
 | |
| #define RES_OFFSET               m6_s2
 | |
| #define RES_INODE_NR             m6_l1
 | |
| #define RES_MODE                 m6_s1
 | |
| #define RES_FILE_SIZE            m6_l2
 | |
| #define RES_DEV                  m6_l3
 | |
| #define RES_INODE_INDEX          m6_s2
 | |
| #define RES_NLINKS               m6_s3
 | |
| #define RES_SYMLOOP              m6_c1
 | |
| #define RES_SYMLOOP2             m6_c2
 | |
| 
 | |
| #define RES_UID                  m6_s3
 | |
| #define RES_GID                  m6_c1
 | |
| #define RES_CTIME                m6_l3 	/* Should be removed */
 | |
| 
 | |
| #define RES_FD_POS               m2_i1
 | |
| #define RES_FD_CUM_IO            m2_i2
 | |
| #define RES_FD_SIZE              m2_i3
 | |
| 
 | |
| #define RES_XFD_POS_LO           m2_l1
 | |
| #define RES_XFD_POS_HI           m2_l2
 | |
| #define RES_XFD_CUM_IO           m2_i1
 | |
| 
 | |
| #define RES_DIR                  m6_l1
 | |
| #define RES_FILE                 m6_l2
 | |
| 
 | |
| #define RES_MAXSIZE              m6_l3	/* Should be removed */
 | |
| #define RES_BLOCKSIZE            m6_s2	/* Should be removed */
 | |
| 
 | |
| /* For REQ_GETDENTS */
 | |
| #define RES_GDE_POS_CHANGE	 m2_l1
 | |
| #define RES_GDE_CUM_IO		 m2_i1
 | |
| 
 | |
| /* For REQ_RDLINK */
 | |
| #define RES_RDL_LENGTH		 m6_l1
 | |
| 
 | |
| /* Request numbers */
 | |
| #define REQ_GETNODE	(VFS_BASE + 1)	/* Should be removed */
 | |
| #define REQ_PUTNODE	(VFS_BASE + 2)
 | |
| #define REQ_SLINK_S	(VFS_BASE + 3)
 | |
| #define REQ_PIPE	(VFS_BASE + 4)	/* Replaced with REQ_NEWNODE */
 | |
| #define REQ_READ_O	(VFS_BASE + 5)	/* Replaced with REQ_READ_S */
 | |
| #define REQ_WRITE_O	(VFS_BASE + 6)	/* Replaced with REQ_WRITE_S */
 | |
| #define REQ_CLONE_OPCL	(VFS_BASE + 7)	/* Replaced with REQ_NEWNODE */
 | |
| #define REQ_FTRUNC	(VFS_BASE + 8)
 | |
| #define REQ_CHOWN	(VFS_BASE + 9)
 | |
| #define REQ_CHMOD	(VFS_BASE + 10)
 | |
| #define REQ_ACCESS_O	(VFS_BASE + 11)	/* Removed */
 | |
| #define REQ_MKNOD_O	(VFS_BASE + 12)	/* Replaced with REQ_MKNOD_S */
 | |
| #define REQ_MKDIR_O	(VFS_BASE + 13)	/* Replaced with REQ_MKDIR_S */
 | |
| #define REQ_INHIBREAD	(VFS_BASE + 14)
 | |
| #define REQ_STAT	(VFS_BASE + 15)
 | |
| #define REQ_CREATE_O	(VFS_BASE + 16)	/* Replaced with REQ_CREATE_S */
 | |
| #define REQ_UNLINK_O	(VFS_BASE + 17)	/* Replaced with REQ_UNLINK_S */
 | |
| #define REQ_RMDIR_O	(VFS_BASE + 18)	/* Replaced with REQ_RMDIR_S */
 | |
| #define REQ_UTIME	(VFS_BASE + 19)
 | |
| #define REQ_RDLINK_SO	(VFS_BASE + 20) /* Replaced with REQ_RDLINK_S */
 | |
| #define REQ_FSTATFS	(VFS_BASE + 21)
 | |
| #define REQ_BREAD_S	(VFS_BASE + 22)
 | |
| #define REQ_BWRITE_S	(VFS_BASE + 23)
 | |
| #define REQ_UNLINK_S	(VFS_BASE + 24)
 | |
| #define REQ_LINK_O	(VFS_BASE + 25)	/* Replaced with REQ_LINK_S */
 | |
| #define REQ_SLINK_O	(VFS_BASE + 26)	/* Replaced with REQ_SLINK_S */
 | |
| #define REQ_RDLINK_O	(VFS_BASE + 27)	/* Replaced with REQ_RDLINK_S */
 | |
| #define REQ_RENAME_O	(VFS_BASE + 28)	/* Replaced with REQ_RENAME_S */
 | |
| #define REQ_RMDIR_S	(VFS_BASE + 29)
 | |
| #define REQ_MOUNTPOINT_O (VFS_BASE + 30)	/* Replaced with REQ_MOUNTPOINT_S */
 | |
| #define REQ_READSUPER_O	(VFS_BASE + 31)	/* Replaced with REQ_READSUPER_S */
 | |
| #define REQ_UNMOUNT	(VFS_BASE + 32)
 | |
| #define REQ_TRUNC	(VFS_BASE + 33)	/* Should be removed */
 | |
| #define REQ_SYNC	(VFS_BASE + 34)
 | |
| #define REQ_LOOKUP_O	(VFS_BASE + 35)	/* Replaced with REQ_LOOKUP_S */
 | |
| #define REQ_STIME	(VFS_BASE + 36)	/* To be removed */
 | |
| #define REQ_NEW_DRIVER	(VFS_BASE + 37)
 | |
| #define REQ_BREAD_O	(VFS_BASE + 38)	/* Replaced with REQ_BREAD_S */
 | |
| #define REQ_BWRITE_O	(VFS_BASE + 39)	/* Replaced with REQ_BWRITE_S */
 | |
| #define REQ_GETDENTS_O	(VFS_BASE + 40) /* Replaced with REQ_GETDENTS */
 | |
| #define REQ_FLUSH	(VFS_BASE + 41)
 | |
| #define REQ_READ_S	(VFS_BASE + 42)
 | |
| #define REQ_WRITE_S	(VFS_BASE + 43)
 | |
| #define REQ_MKNOD_S	(VFS_BASE + 44)
 | |
| #define REQ_MKDIR_S	(VFS_BASE + 45)
 | |
| #define REQ_CREATE_S	(VFS_BASE + 46)
 | |
| #define REQ_LINK_S	(VFS_BASE + 47)
 | |
| #define REQ_RENAME_S	(VFS_BASE + 48)
 | |
| #define REQ_LOOKUP_S	(VFS_BASE + 49)
 | |
| #define REQ_MOUNTPOINT_S (VFS_BASE + 50)
 | |
| #define REQ_READSUPER_S	(VFS_BASE + 51)
 | |
| #define REQ_NEWNODE	(VFS_BASE + 52)
 | |
| #define REQ_RDLINK_S	(VFS_BASE + 53)
 | |
| #define REQ_GETDENTS	(VFS_BASE + 54)
 | |
| 
 | |
| #define NREQS                    55
 | |
| 
 | |
| 
 | |
| #define EENTERMOUNT              (-301)
 | |
| #define ELEAVEMOUNT              (-302)
 | |
| #define ESYMLINK                 (-303)
 | |
| 
 | |
| /* REQ_L_FLAGS */
 | |
| #define PATH_RET_SYMLINK	1	/* Return a symlink object (i.e.
 | |
| 					 * do not continue with the contents
 | |
| 					 * of the symlink if it is the last
 | |
| 					 * component in a path).
 | |
| 					 */
 | 
