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

source code of linux/include/uapi/linux/nfs2.h