xref: /openbmc/linux/include/uapi/linux/nfs2.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2  /*
3   * NFS protocol definitions
4   *
5   * This file contains constants for Version 2 of the protocol.
6   */
7  #ifndef _LINUX_NFS2_H
8  #define _LINUX_NFS2_H
9  
10  #define NFS2_PORT	2049
11  #define NFS2_MAXDATA	8192
12  #define NFS2_MAXPATHLEN	1024
13  #define NFS2_MAXNAMLEN	255
14  #define NFS2_MAXGROUPS	16
15  #define NFS2_FHSIZE	32
16  #define NFS2_COOKIESIZE	4
17  #define NFS2_FIFO_DEV	(-1)
18  #define NFS2MODE_FMT	0170000
19  #define NFS2MODE_DIR	0040000
20  #define NFS2MODE_CHR	0020000
21  #define NFS2MODE_BLK	0060000
22  #define NFS2MODE_REG	0100000
23  #define NFS2MODE_LNK	0120000
24  #define NFS2MODE_SOCK	0140000
25  #define NFS2MODE_FIFO	0010000
26  
27  
28  /* NFSv2 file types - beware, these are not the same in NFSv3 */
29  enum nfs2_ftype {
30  	NF2NON = 0,
31  	NF2REG = 1,
32  	NF2DIR = 2,
33  	NF2BLK = 3,
34  	NF2CHR = 4,
35  	NF2LNK = 5,
36  	NF2SOCK = 6,
37  	NF2BAD = 7,
38  	NF2FIFO = 8
39  };
40  
41  struct nfs2_fh {
42  	char			data[NFS2_FHSIZE];
43  };
44  
45  /*
46   * Procedure numbers for NFSv2
47   */
48  #define NFS2_VERSION		2
49  #define NFSPROC_NULL		0
50  #define NFSPROC_GETATTR		1
51  #define NFSPROC_SETATTR		2
52  #define NFSPROC_ROOT		3
53  #define NFSPROC_LOOKUP		4
54  #define NFSPROC_READLINK	5
55  #define NFSPROC_READ		6
56  #define NFSPROC_WRITECACHE	7
57  #define NFSPROC_WRITE		8
58  #define NFSPROC_CREATE		9
59  #define NFSPROC_REMOVE		10
60  #define NFSPROC_RENAME		11
61  #define NFSPROC_LINK		12
62  #define NFSPROC_SYMLINK		13
63  #define NFSPROC_MKDIR		14
64  #define NFSPROC_RMDIR		15
65  #define NFSPROC_READDIR		16
66  #define NFSPROC_STATFS		17
67  
68  #endif /* _LINUX_NFS2_H */
69