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