nfs3.h 2.5 KB

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