nfs3.h 2.3 KB

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