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 */
28enum 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
40struct 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#endif /* _LINUX_NFS2_H */
68