Merge of VFS by Balasz Gerofi with Minix trunk.
This commit is contained in:
+4
-1
@@ -41,7 +41,8 @@
|
||||
#define LOG_PROC_NR 4 /* log device driver */
|
||||
#define TTY_PROC_NR 5 /* terminal (TTY) driver */
|
||||
#define DS_PROC_NR 6 /* data store server */
|
||||
#define INIT_PROC_NR 7 /* init -- goes multiuser */
|
||||
#define MFS_PROC_NR 7 /* minix root filesystem */
|
||||
#define INIT_PROC_NR 8 /* init -- goes multiuser */
|
||||
|
||||
/* Number of processes contained in the system image. */
|
||||
#define NR_BOOT_PROCS (NR_TASKS + INIT_PROC_NR + 1)
|
||||
@@ -559,6 +560,8 @@
|
||||
# define RS_PERIOD m1_i2 /* heartbeat period */
|
||||
# define RS_DEV_MAJOR m1_i3 /* major device number */
|
||||
|
||||
# define RS_ENDPOINT m1_i1 /* endpoint number in reply */
|
||||
|
||||
/*===========================================================================*
|
||||
* Messages for the Data Store Server *
|
||||
*===========================================================================*/
|
||||
|
||||
+19
-2
@@ -11,10 +11,13 @@
|
||||
#define M3_STRING 14
|
||||
|
||||
typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1;
|
||||
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;} mess_2;
|
||||
typedef struct {int m2i1, m2i2, m2i3; long m2l1, m2l2; char *m2p1;
|
||||
short m2s1;} mess_2;
|
||||
typedef struct {int m3i1, m3i2; char *m3p1; char m3ca1[M3_STRING];} mess_3;
|
||||
typedef struct {long m4l1, m4l2, m4l3, m4l4, m4l5;} mess_4;
|
||||
typedef struct {short m5c1, m5c2; int m5i1, m5i2; long m5l1, m5l2, m5l3;}mess_5;
|
||||
typedef struct {long m6l1, m6l2, m6l3; short m6s1, m6s2, m6s3; char m6c1, m6c2;
|
||||
char *m6p1, *m6p2;} mess_6;
|
||||
typedef struct {int m7i1, m7i2, m7i3, m7i4; char *m7p1, *m7p2;} mess_7;
|
||||
typedef struct {int m8i1, m8i2; char *m8p1, *m8p2, *m8p3, *m8p4;} mess_8;
|
||||
|
||||
@@ -29,6 +32,7 @@ typedef struct {
|
||||
mess_5 m_m5;
|
||||
mess_7 m_m7;
|
||||
mess_8 m_m8;
|
||||
mess_6 m_m6;
|
||||
} m_u;
|
||||
} message;
|
||||
|
||||
@@ -47,6 +51,8 @@ typedef struct {
|
||||
#define m2_l2 m_u.m_m2.m2l2
|
||||
#define m2_p1 m_u.m_m2.m2p1
|
||||
|
||||
#define m2_s1 m_u.m_m2.m2s1
|
||||
|
||||
#define m3_i1 m_u.m_m3.m3i1
|
||||
#define m3_i2 m_u.m_m3.m3i2
|
||||
#define m3_p1 m_u.m_m3.m3p1
|
||||
@@ -66,6 +72,17 @@ typedef struct {
|
||||
#define m5_l2 m_u.m_m5.m5l2
|
||||
#define m5_l3 m_u.m_m5.m5l3
|
||||
|
||||
#define m6_l1 m_u.m_m6.m6l1
|
||||
#define m6_l2 m_u.m_m6.m6l2
|
||||
#define m6_l3 m_u.m_m6.m6l3
|
||||
#define m6_s1 m_u.m_m6.m6s1
|
||||
#define m6_s2 m_u.m_m6.m6s2
|
||||
#define m6_s3 m_u.m_m6.m6s3
|
||||
#define m6_c1 m_u.m_m6.m6c1
|
||||
#define m6_c2 m_u.m_m6.m6c2
|
||||
#define m6_p1 m_u.m_m6.m6p1
|
||||
#define m6_p2 m_u.m_m6.m6p2
|
||||
|
||||
#define m7_i1 m_u.m_m7.m7i1
|
||||
#define m7_i2 m_u.m_m7.m7i2
|
||||
#define m7_i3 m_u.m_m7.m7i3
|
||||
@@ -94,7 +111,7 @@ typedef struct {
|
||||
_PROTOTYPE( int echo, (message *m_ptr) );
|
||||
_PROTOTYPE( int notify, (endpoint_t dest) );
|
||||
_PROTOTYPE( int sendrec, (endpoint_t src_dest, message *m_ptr) );
|
||||
_PROTOTYPE( int receive, (endpoint_t src, message *m_ptr) );
|
||||
_PROTOTYPE( int receive, (endpoint_t src, message *m_ptr) );
|
||||
_PROTOTYPE( int send, (endpoint_t dest, message *m_ptr) );
|
||||
|
||||
#define ipc_request _ipc_request
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
|
||||
/* Fields of VFS/FS request messages */
|
||||
#define REQ_INODE_NR m6_l1
|
||||
#define REQ_CHROOT_NR 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_USER_ADDR m6_p2
|
||||
#define REQ_LENGTH m6_l3
|
||||
#define REQ_SYMLOOP m6_c2
|
||||
|
||||
#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_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_BLOCK_SIZE m2_s1
|
||||
#define REQ_FD_BDRIVER_E m2_i1
|
||||
#define REQ_FD_BDEV m2_l2
|
||||
|
||||
/* 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_POS m6_l3
|
||||
#define RES_INODE_INDEX m6_s2
|
||||
#define RES_NLINKS m6_s3
|
||||
#define RES_SYMLOOP m6_c1
|
||||
|
||||
#define RES_UID m6_s3
|
||||
#define RES_GID m6_c1
|
||||
#define RES_CTIME m6_l3
|
||||
|
||||
#define RES_FD_POS m2_i1
|
||||
#define RES_FD_CUM_IO m2_i2
|
||||
#define RES_FD_SIZE m2_i3
|
||||
|
||||
#define RES_DIR m6_l1
|
||||
#define RES_FILE m6_l2
|
||||
|
||||
#define RES_MAXSIZE m6_l3
|
||||
#define RES_BLOCKSIZE m6_s2
|
||||
|
||||
|
||||
/* Request numbers (offset in the fs callvector) */
|
||||
#define REQ_GETNODE 1
|
||||
#define REQ_PUTNODE 2
|
||||
#define REQ_OPEN 3
|
||||
#define REQ_PIPE 4
|
||||
#define REQ_READ 5
|
||||
#define REQ_WRITE 6
|
||||
#define REQ_CLONE_OPCL 7
|
||||
#define REQ_FTRUNC 8
|
||||
|
||||
#define REQ_CHOWN 9
|
||||
#define REQ_CHMOD 10
|
||||
#define REQ_ACCESS 11
|
||||
#define REQ_MKNOD 12
|
||||
#define REQ_MKDIR 13
|
||||
#define REQ_INHIBREAD 14
|
||||
#define REQ_STAT 15
|
||||
#define REQ_FSTAT 16
|
||||
#define REQ_UNLINK 17
|
||||
#define REQ_RMDIR 18
|
||||
#define REQ_UTIME 19
|
||||
#define REQ_FSTATFS 20
|
||||
#define REQ_LSTAT 21 /* NO POINT !!! */
|
||||
#define REQ_GETDIR 22
|
||||
|
||||
#define REQ_LINK 25
|
||||
|
||||
#define REQ_SLINK 26
|
||||
#define REQ_RDLINK 27
|
||||
|
||||
#define REQ_RENAME 28
|
||||
|
||||
#define REQ_MOUNTPOINT 30
|
||||
#define REQ_READSUPER 31
|
||||
#define REQ_UNMOUNT 32
|
||||
#define REQ_TRUNC 33
|
||||
#define REQ_SYNC 34
|
||||
|
||||
#define REQ_LOOKUP 35
|
||||
#define REQ_STIME 36
|
||||
#define REQ_NEW_DRIVER 37
|
||||
|
||||
#define REQ_BREAD 38
|
||||
#define REQ_BWRITE 39
|
||||
|
||||
#define NREQS 40
|
||||
|
||||
#define FS_READY 57
|
||||
|
||||
#define EENTERMOUNT 301
|
||||
#define ELEAVEMOUNT 302
|
||||
#define ESYMLINK 303
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user