16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2607ca46eSDavid Howells /* 3607ca46eSDavid Howells * NFSv3 protocol definitions 4607ca46eSDavid Howells */ 5607ca46eSDavid Howells #ifndef _UAPI_LINUX_NFS3_H 6607ca46eSDavid Howells #define _UAPI_LINUX_NFS3_H 7607ca46eSDavid Howells 8607ca46eSDavid Howells #define NFS3_PORT 2049 9607ca46eSDavid Howells #define NFS3_MAXDATA 32768 10607ca46eSDavid Howells #define NFS3_MAXPATHLEN PATH_MAX 11607ca46eSDavid Howells #define NFS3_MAXNAMLEN NAME_MAX 12607ca46eSDavid Howells #define NFS3_MAXGROUPS 16 13607ca46eSDavid Howells #define NFS3_FHSIZE 64 14607ca46eSDavid Howells #define NFS3_COOKIESIZE 4 15607ca46eSDavid Howells #define NFS3_CREATEVERFSIZE 8 16607ca46eSDavid Howells #define NFS3_COOKIEVERFSIZE 8 17607ca46eSDavid Howells #define NFS3_WRITEVERFSIZE 8 18607ca46eSDavid Howells #define NFS3_FIFO_DEV (-1) 19607ca46eSDavid Howells #define NFS3MODE_FMT 0170000 20607ca46eSDavid Howells #define NFS3MODE_DIR 0040000 21607ca46eSDavid Howells #define NFS3MODE_CHR 0020000 22607ca46eSDavid Howells #define NFS3MODE_BLK 0060000 23607ca46eSDavid Howells #define NFS3MODE_REG 0100000 24607ca46eSDavid Howells #define NFS3MODE_LNK 0120000 25607ca46eSDavid Howells #define NFS3MODE_SOCK 0140000 26607ca46eSDavid Howells #define NFS3MODE_FIFO 0010000 27607ca46eSDavid Howells 28607ca46eSDavid Howells /* Flags for access() call */ 29607ca46eSDavid Howells #define NFS3_ACCESS_READ 0x0001 30607ca46eSDavid Howells #define NFS3_ACCESS_LOOKUP 0x0002 31607ca46eSDavid Howells #define NFS3_ACCESS_MODIFY 0x0004 32607ca46eSDavid Howells #define NFS3_ACCESS_EXTEND 0x0008 33607ca46eSDavid Howells #define NFS3_ACCESS_DELETE 0x0010 34607ca46eSDavid Howells #define NFS3_ACCESS_EXECUTE 0x0020 35607ca46eSDavid Howells #define NFS3_ACCESS_FULL 0x003f 36607ca46eSDavid Howells 37607ca46eSDavid Howells /* Flags for create mode */ 38607ca46eSDavid Howells enum nfs3_createmode { 39607ca46eSDavid Howells NFS3_CREATE_UNCHECKED = 0, 40607ca46eSDavid Howells NFS3_CREATE_GUARDED = 1, 41607ca46eSDavid Howells NFS3_CREATE_EXCLUSIVE = 2 42607ca46eSDavid Howells }; 43607ca46eSDavid Howells 44607ca46eSDavid Howells /* NFSv3 file system properties */ 45607ca46eSDavid Howells #define NFS3_FSF_LINK 0x0001 46607ca46eSDavid Howells #define NFS3_FSF_SYMLINK 0x0002 47607ca46eSDavid Howells #define NFS3_FSF_HOMOGENEOUS 0x0008 48607ca46eSDavid Howells #define NFS3_FSF_CANSETTIME 0x0010 49607ca46eSDavid Howells /* Some shorthands. See fs/nfsd/nfs3proc.c */ 50607ca46eSDavid Howells #define NFS3_FSF_DEFAULT 0x001B 51607ca46eSDavid Howells #define NFS3_FSF_BILLYBOY 0x0018 52607ca46eSDavid Howells #define NFS3_FSF_READONLY 0x0008 53607ca46eSDavid Howells 54607ca46eSDavid Howells enum nfs3_ftype { 55607ca46eSDavid Howells NF3NON = 0, 56607ca46eSDavid Howells NF3REG = 1, 57607ca46eSDavid Howells NF3DIR = 2, 58607ca46eSDavid Howells NF3BLK = 3, 59607ca46eSDavid Howells NF3CHR = 4, 60607ca46eSDavid Howells NF3LNK = 5, 61607ca46eSDavid Howells NF3SOCK = 6, 62607ca46eSDavid Howells NF3FIFO = 7, /* changed from NFSv2 (was 8) */ 63607ca46eSDavid Howells NF3BAD = 8 64607ca46eSDavid Howells }; 65607ca46eSDavid Howells 66*9cde9360SChuck Lever enum nfs3_time_how { 67*9cde9360SChuck Lever DONT_CHANGE = 0, 68*9cde9360SChuck Lever SET_TO_SERVER_TIME = 1, 69*9cde9360SChuck Lever SET_TO_CLIENT_TIME = 2, 70*9cde9360SChuck Lever }; 71*9cde9360SChuck Lever 72607ca46eSDavid Howells struct nfs3_fh { 73607ca46eSDavid Howells unsigned short size; 74607ca46eSDavid Howells unsigned char data[NFS3_FHSIZE]; 75607ca46eSDavid Howells }; 76607ca46eSDavid Howells 77607ca46eSDavid Howells #define NFS3_VERSION 3 78607ca46eSDavid Howells #define NFS3PROC_NULL 0 79607ca46eSDavid Howells #define NFS3PROC_GETATTR 1 80607ca46eSDavid Howells #define NFS3PROC_SETATTR 2 81607ca46eSDavid Howells #define NFS3PROC_LOOKUP 3 82607ca46eSDavid Howells #define NFS3PROC_ACCESS 4 83607ca46eSDavid Howells #define NFS3PROC_READLINK 5 84607ca46eSDavid Howells #define NFS3PROC_READ 6 85607ca46eSDavid Howells #define NFS3PROC_WRITE 7 86607ca46eSDavid Howells #define NFS3PROC_CREATE 8 87607ca46eSDavid Howells #define NFS3PROC_MKDIR 9 88607ca46eSDavid Howells #define NFS3PROC_SYMLINK 10 89607ca46eSDavid Howells #define NFS3PROC_MKNOD 11 90607ca46eSDavid Howells #define NFS3PROC_REMOVE 12 91607ca46eSDavid Howells #define NFS3PROC_RMDIR 13 92607ca46eSDavid Howells #define NFS3PROC_RENAME 14 93607ca46eSDavid Howells #define NFS3PROC_LINK 15 94607ca46eSDavid Howells #define NFS3PROC_READDIR 16 95607ca46eSDavid Howells #define NFS3PROC_READDIRPLUS 17 96607ca46eSDavid Howells #define NFS3PROC_FSSTAT 18 97607ca46eSDavid Howells #define NFS3PROC_FSINFO 19 98607ca46eSDavid Howells #define NFS3PROC_PATHCONF 20 99607ca46eSDavid Howells #define NFS3PROC_COMMIT 21 100607ca46eSDavid Howells 101607ca46eSDavid Howells #define NFS_MNT3_VERSION 3 102607ca46eSDavid Howells 103607ca46eSDavid Howells 104607ca46eSDavid Howells #endif /* _UAPI_LINUX_NFS3_H */ 105