1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * NFSv3 protocol definitions 3*53ee8cc1Swenshuai.xi */ 4*53ee8cc1Swenshuai.xi #ifndef _LINUX_NFS3_H 5*53ee8cc1Swenshuai.xi #define _LINUX_NFS3_H 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xi #define NFS3_PORT 2049 8*53ee8cc1Swenshuai.xi #define NFS3_MAXDATA 32768 9*53ee8cc1Swenshuai.xi #define NFS3_MAXPATHLEN PATH_MAX 10*53ee8cc1Swenshuai.xi #define NFS3_MAXNAMLEN NAME_MAX 11*53ee8cc1Swenshuai.xi #define NFS3_MAXGROUPS 16 12*53ee8cc1Swenshuai.xi #define NFS3_FHSIZE 64 13*53ee8cc1Swenshuai.xi #define NFS3_COOKIESIZE 4 14*53ee8cc1Swenshuai.xi #define NFS3_FIFO_DEV (-1) 15*53ee8cc1Swenshuai.xi #define NFS3MODE_FMT 0170000 16*53ee8cc1Swenshuai.xi #define NFS3MODE_DIR 0040000 17*53ee8cc1Swenshuai.xi #define NFS3MODE_CHR 0020000 18*53ee8cc1Swenshuai.xi #define NFS3MODE_BLK 0060000 19*53ee8cc1Swenshuai.xi #define NFS3MODE_REG 0100000 20*53ee8cc1Swenshuai.xi #define NFS3MODE_LNK 0120000 21*53ee8cc1Swenshuai.xi #define NFS3MODE_SOCK 0140000 22*53ee8cc1Swenshuai.xi #define NFS3MODE_FIFO 0010000 23*53ee8cc1Swenshuai.xi 24*53ee8cc1Swenshuai.xi /* Flags for access() call */ 25*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_READ 0x0001 26*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_LOOKUP 0x0002 27*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_MODIFY 0x0004 28*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_EXTEND 0x0008 29*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_DELETE 0x0010 30*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_EXECUTE 0x0020 31*53ee8cc1Swenshuai.xi #define NFS3_ACCESS_FULL 0x003f 32*53ee8cc1Swenshuai.xi 33*53ee8cc1Swenshuai.xi /* Flags for create mode */ 34*53ee8cc1Swenshuai.xi enum nfs3_createmode { 35*53ee8cc1Swenshuai.xi NFS3_CREATE_UNCHECKED = 0, 36*53ee8cc1Swenshuai.xi NFS3_CREATE_GUARDED = 1, 37*53ee8cc1Swenshuai.xi NFS3_CREATE_EXCLUSIVE = 2 38*53ee8cc1Swenshuai.xi }; 39*53ee8cc1Swenshuai.xi 40*53ee8cc1Swenshuai.xi /* NFSv3 file system properties */ 41*53ee8cc1Swenshuai.xi #define NFS3_FSF_LINK 0x0001 42*53ee8cc1Swenshuai.xi #define NFS3_FSF_SYMLINK 0x0002 43*53ee8cc1Swenshuai.xi #define NFS3_FSF_HOMOGENEOUS 0x0008 44*53ee8cc1Swenshuai.xi #define NFS3_FSF_CANSETTIME 0x0010 45*53ee8cc1Swenshuai.xi /* Some shorthands. See fs/nfsd/nfs3proc.c */ 46*53ee8cc1Swenshuai.xi #define NFS3_FSF_DEFAULT 0x001B 47*53ee8cc1Swenshuai.xi #define NFS3_FSF_BILLYBOY 0x0018 48*53ee8cc1Swenshuai.xi #define NFS3_FSF_READONLY 0x0008 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xi enum nfs3_ftype { 51*53ee8cc1Swenshuai.xi NF3NON = 0, 52*53ee8cc1Swenshuai.xi NF3REG = 1, 53*53ee8cc1Swenshuai.xi NF3DIR = 2, 54*53ee8cc1Swenshuai.xi NF3BLK = 3, 55*53ee8cc1Swenshuai.xi NF3CHR = 4, 56*53ee8cc1Swenshuai.xi NF3LNK = 5, 57*53ee8cc1Swenshuai.xi NF3SOCK = 6, 58*53ee8cc1Swenshuai.xi NF3FIFO = 7, /* changed from NFSv2 (was 8) */ 59*53ee8cc1Swenshuai.xi NF3BAD = 8 60*53ee8cc1Swenshuai.xi }; 61*53ee8cc1Swenshuai.xi 62*53ee8cc1Swenshuai.xi struct nfs3_fh { 63*53ee8cc1Swenshuai.xi unsigned short size; 64*53ee8cc1Swenshuai.xi unsigned char data[NFS3_FHSIZE]; 65*53ee8cc1Swenshuai.xi }; 66*53ee8cc1Swenshuai.xi 67*53ee8cc1Swenshuai.xi #define NFS3_VERSION 3 68*53ee8cc1Swenshuai.xi #define NFS3PROC_NULL 0 69*53ee8cc1Swenshuai.xi #define NFS3PROC_GETATTR 1 70*53ee8cc1Swenshuai.xi #define NFS3PROC_SETATTR 2 71*53ee8cc1Swenshuai.xi #define NFS3PROC_LOOKUP 3 72*53ee8cc1Swenshuai.xi #define NFS3PROC_ACCESS 4 73*53ee8cc1Swenshuai.xi #define NFS3PROC_READLINK 5 74*53ee8cc1Swenshuai.xi #define NFS3PROC_READ 6 75*53ee8cc1Swenshuai.xi #define NFS3PROC_WRITE 7 76*53ee8cc1Swenshuai.xi #define NFS3PROC_CREATE 8 77*53ee8cc1Swenshuai.xi #define NFS3PROC_MKDIR 9 78*53ee8cc1Swenshuai.xi #define NFS3PROC_SYMLINK 10 79*53ee8cc1Swenshuai.xi #define NFS3PROC_MKNOD 11 80*53ee8cc1Swenshuai.xi #define NFS3PROC_REMOVE 12 81*53ee8cc1Swenshuai.xi #define NFS3PROC_RMDIR 13 82*53ee8cc1Swenshuai.xi #define NFS3PROC_RENAME 14 83*53ee8cc1Swenshuai.xi #define NFS3PROC_LINK 15 84*53ee8cc1Swenshuai.xi #define NFS3PROC_READDIR 16 85*53ee8cc1Swenshuai.xi #define NFS3PROC_READDIRPLUS 17 86*53ee8cc1Swenshuai.xi #define NFS3PROC_FSSTAT 18 87*53ee8cc1Swenshuai.xi #define NFS3PROC_FSINFO 19 88*53ee8cc1Swenshuai.xi #define NFS3PROC_PATHCONF 20 89*53ee8cc1Swenshuai.xi #define NFS3PROC_COMMIT 21 90*53ee8cc1Swenshuai.xi 91*53ee8cc1Swenshuai.xi #define NFS_MNT3_PROGRAM 100005 92*53ee8cc1Swenshuai.xi #define NFS_MNT3_VERSION 3 93*53ee8cc1Swenshuai.xi #define MOUNTPROC3_NULL 0 94*53ee8cc1Swenshuai.xi #define MOUNTPROC3_MNT 1 95*53ee8cc1Swenshuai.xi #define MOUNTPROC3_UMNT 3 96*53ee8cc1Swenshuai.xi #define MOUNTPROC3_UMNTALL 4 97*53ee8cc1Swenshuai.xi 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xi #endif /* _LINUX_NFS3_H */ 100