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