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).
|
|
*/
|