summaryrefslogtreecommitdiffstats
path: root/libc/kernel/common/linux/nfsd/xdr.h
blob: f94961dd76109d1af2b7b2351d2a773f2e708f2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef LINUX_NFSD_H
#define LINUX_NFSD_H

#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/nfs.h>

struct nfsd_fhandle {
 struct svc_fh fh;
};

struct nfsd_sattrargs {
 struct svc_fh fh;
 struct iattr attrs;
};

struct nfsd_diropargs {
 struct svc_fh fh;
 char * name;
 int len;
};

struct nfsd_readargs {
 struct svc_fh fh;
 __u32 offset;
 __u32 count;
 struct kvec vec[RPCSVC_MAXPAGES];
 int vlen;
};

struct nfsd_writeargs {
 svc_fh fh;
 __u32 offset;
 int len;
 struct kvec vec[RPCSVC_MAXPAGES];
 int vlen;
};

struct nfsd_createargs {
 struct svc_fh fh;
 char * name;
 int len;
 struct iattr attrs;
};

struct nfsd_renameargs {
 struct svc_fh ffh;
 char * fname;
 int flen;
 struct svc_fh tfh;
 char * tname;
 int tlen;
};

struct nfsd_readlinkargs {
 struct svc_fh fh;
 char * buffer;
};

struct nfsd_linkargs {
 struct svc_fh ffh;
 struct svc_fh tfh;
 char * tname;
 int tlen;
};

struct nfsd_symlinkargs {
 struct svc_fh ffh;
 char * fname;
 int flen;
 char * tname;
 int tlen;
 struct iattr attrs;
};

struct nfsd_readdirargs {
 struct svc_fh fh;
 __u32 cookie;
 __u32 count;
 u32 * buffer;
};

struct nfsd_attrstat {
 struct svc_fh fh;
 struct kstat stat;
};

struct nfsd_diropres {
 struct svc_fh fh;
 struct kstat stat;
};

struct nfsd_readlinkres {
 int len;
};

struct nfsd_readres {
 struct svc_fh fh;
 unsigned long count;
 struct kstat stat;
};

struct nfsd_readdirres {
 int count;

 struct readdir_cd common;
 u32 * buffer;
 int buflen;
 u32 * offset;
};

struct nfsd_statfsres {
 struct kstatfs stats;
};

union nfsd_xdrstore {
 struct nfsd_sattrargs sattr;
 struct nfsd_diropargs dirop;
 struct nfsd_readargs read;
 struct nfsd_writeargs write;
 struct nfsd_createargs create;
 struct nfsd_renameargs rename;
 struct nfsd_linkargs link;
 struct nfsd_symlinkargs symlink;
 struct nfsd_readdirargs readdir;
};

#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)

#endif