Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  * NFSv3 protocol definitions
0004  */
0005 #ifndef _UAPI_LINUX_NFS3_H
0006 #define _UAPI_LINUX_NFS3_H
0007 
0008 #define NFS3_PORT       2049
0009 #define NFS3_MAXDATA        32768
0010 #define NFS3_MAXPATHLEN     PATH_MAX
0011 #define NFS3_MAXNAMLEN      NAME_MAX
0012 #define NFS3_MAXGROUPS      16
0013 #define NFS3_FHSIZE     64
0014 #define NFS3_COOKIESIZE     4
0015 #define NFS3_CREATEVERFSIZE 8
0016 #define NFS3_COOKIEVERFSIZE 8
0017 #define NFS3_WRITEVERFSIZE  8
0018 #define NFS3_FIFO_DEV       (-1)
0019 #define NFS3MODE_FMT        0170000
0020 #define NFS3MODE_DIR        0040000
0021 #define NFS3MODE_CHR        0020000
0022 #define NFS3MODE_BLK        0060000
0023 #define NFS3MODE_REG        0100000
0024 #define NFS3MODE_LNK        0120000
0025 #define NFS3MODE_SOCK       0140000
0026 #define NFS3MODE_FIFO       0010000
0027 
0028 /* Flags for access() call */
0029 #define NFS3_ACCESS_READ    0x0001
0030 #define NFS3_ACCESS_LOOKUP  0x0002
0031 #define NFS3_ACCESS_MODIFY  0x0004
0032 #define NFS3_ACCESS_EXTEND  0x0008
0033 #define NFS3_ACCESS_DELETE  0x0010
0034 #define NFS3_ACCESS_EXECUTE 0x0020
0035 #define NFS3_ACCESS_FULL    0x003f
0036 
0037 /* Flags for create mode */
0038 enum nfs3_createmode {
0039     NFS3_CREATE_UNCHECKED = 0,
0040     NFS3_CREATE_GUARDED = 1,
0041     NFS3_CREATE_EXCLUSIVE = 2
0042 };
0043 
0044 /* NFSv3 file system properties */
0045 #define NFS3_FSF_LINK       0x0001
0046 #define NFS3_FSF_SYMLINK    0x0002
0047 #define NFS3_FSF_HOMOGENEOUS    0x0008
0048 #define NFS3_FSF_CANSETTIME 0x0010
0049 /* Some shorthands. See fs/nfsd/nfs3proc.c */
0050 #define NFS3_FSF_DEFAULT    0x001B
0051 #define NFS3_FSF_BILLYBOY   0x0018
0052 #define NFS3_FSF_READONLY   0x0008
0053 
0054 enum nfs3_ftype {
0055     NF3NON  = 0,
0056     NF3REG  = 1,
0057     NF3DIR  = 2,
0058     NF3BLK  = 3,
0059     NF3CHR  = 4,
0060     NF3LNK  = 5,
0061     NF3SOCK = 6,
0062     NF3FIFO = 7,    /* changed from NFSv2 (was 8) */
0063     NF3BAD  = 8
0064 };
0065 
0066 enum nfs3_time_how {
0067     DONT_CHANGE     = 0,
0068     SET_TO_SERVER_TIME  = 1,
0069     SET_TO_CLIENT_TIME  = 2,
0070 };
0071 
0072 struct nfs3_fh {
0073     unsigned short size;
0074     unsigned char  data[NFS3_FHSIZE];
0075 };
0076 
0077 #define NFS3_VERSION        3
0078 #define NFS3PROC_NULL       0
0079 #define NFS3PROC_GETATTR    1
0080 #define NFS3PROC_SETATTR    2
0081 #define NFS3PROC_LOOKUP     3
0082 #define NFS3PROC_ACCESS     4
0083 #define NFS3PROC_READLINK   5
0084 #define NFS3PROC_READ       6
0085 #define NFS3PROC_WRITE      7
0086 #define NFS3PROC_CREATE     8
0087 #define NFS3PROC_MKDIR      9
0088 #define NFS3PROC_SYMLINK    10
0089 #define NFS3PROC_MKNOD      11
0090 #define NFS3PROC_REMOVE     12
0091 #define NFS3PROC_RMDIR      13
0092 #define NFS3PROC_RENAME     14
0093 #define NFS3PROC_LINK       15
0094 #define NFS3PROC_READDIR    16
0095 #define NFS3PROC_READDIRPLUS    17
0096 #define NFS3PROC_FSSTAT     18
0097 #define NFS3PROC_FSINFO     19
0098 #define NFS3PROC_PATHCONF   20
0099 #define NFS3PROC_COMMIT     21
0100 
0101 #define NFS_MNT3_VERSION    3
0102  
0103 
0104 #endif /* _UAPI_LINUX_NFS3_H */