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 */
29enum 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
41struct 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