Root/
1 | /* |
2 | * XDR types for NFSv3 in nfsd. |
3 | * |
4 | * Copyright (C) 1996-1998, Olaf Kirch <okir@monad.swb.de> |
5 | */ |
6 | |
7 | #ifndef _LINUX_NFSD_XDR3_H |
8 | #define _LINUX_NFSD_XDR3_H |
9 | |
10 | #include "xdr.h" |
11 | |
12 | struct nfsd3_sattrargs { |
13 | struct svc_fh fh; |
14 | struct iattr attrs; |
15 | int check_guard; |
16 | time_t guardtime; |
17 | }; |
18 | |
19 | struct nfsd3_diropargs { |
20 | struct svc_fh fh; |
21 | char * name; |
22 | unsigned int len; |
23 | }; |
24 | |
25 | struct nfsd3_accessargs { |
26 | struct svc_fh fh; |
27 | unsigned int access; |
28 | }; |
29 | |
30 | struct nfsd3_readargs { |
31 | struct svc_fh fh; |
32 | __u64 offset; |
33 | __u32 count; |
34 | int vlen; |
35 | }; |
36 | |
37 | struct nfsd3_writeargs { |
38 | svc_fh fh; |
39 | __u64 offset; |
40 | __u32 count; |
41 | int stable; |
42 | __u32 len; |
43 | int vlen; |
44 | }; |
45 | |
46 | struct nfsd3_createargs { |
47 | struct svc_fh fh; |
48 | char * name; |
49 | unsigned int len; |
50 | int createmode; |
51 | struct iattr attrs; |
52 | __be32 * verf; |
53 | }; |
54 | |
55 | struct nfsd3_mknodargs { |
56 | struct svc_fh fh; |
57 | char * name; |
58 | unsigned int len; |
59 | __u32 ftype; |
60 | __u32 major, minor; |
61 | struct iattr attrs; |
62 | }; |
63 | |
64 | struct nfsd3_renameargs { |
65 | struct svc_fh ffh; |
66 | char * fname; |
67 | unsigned int flen; |
68 | struct svc_fh tfh; |
69 | char * tname; |
70 | unsigned int tlen; |
71 | }; |
72 | |
73 | struct nfsd3_readlinkargs { |
74 | struct svc_fh fh; |
75 | char * buffer; |
76 | }; |
77 | |
78 | struct nfsd3_linkargs { |
79 | struct svc_fh ffh; |
80 | struct svc_fh tfh; |
81 | char * tname; |
82 | unsigned int tlen; |
83 | }; |
84 | |
85 | struct nfsd3_symlinkargs { |
86 | struct svc_fh ffh; |
87 | char * fname; |
88 | unsigned int flen; |
89 | char * tname; |
90 | unsigned int tlen; |
91 | struct iattr attrs; |
92 | }; |
93 | |
94 | struct nfsd3_readdirargs { |
95 | struct svc_fh fh; |
96 | __u64 cookie; |
97 | __u32 dircount; |
98 | __u32 count; |
99 | __be32 * verf; |
100 | __be32 * buffer; |
101 | }; |
102 | |
103 | struct nfsd3_commitargs { |
104 | struct svc_fh fh; |
105 | __u64 offset; |
106 | __u32 count; |
107 | }; |
108 | |
109 | struct nfsd3_getaclargs { |
110 | struct svc_fh fh; |
111 | int mask; |
112 | }; |
113 | |
114 | struct posix_acl; |
115 | struct nfsd3_setaclargs { |
116 | struct svc_fh fh; |
117 | int mask; |
118 | struct posix_acl *acl_access; |
119 | struct posix_acl *acl_default; |
120 | }; |
121 | |
122 | struct nfsd3_attrstat { |
123 | __be32 status; |
124 | struct svc_fh fh; |
125 | struct kstat stat; |
126 | }; |
127 | |
128 | /* LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD */ |
129 | struct nfsd3_diropres { |
130 | __be32 status; |
131 | struct svc_fh dirfh; |
132 | struct svc_fh fh; |
133 | }; |
134 | |
135 | struct nfsd3_accessres { |
136 | __be32 status; |
137 | struct svc_fh fh; |
138 | __u32 access; |
139 | }; |
140 | |
141 | struct nfsd3_readlinkres { |
142 | __be32 status; |
143 | struct svc_fh fh; |
144 | __u32 len; |
145 | }; |
146 | |
147 | struct nfsd3_readres { |
148 | __be32 status; |
149 | struct svc_fh fh; |
150 | unsigned long count; |
151 | int eof; |
152 | }; |
153 | |
154 | struct nfsd3_writeres { |
155 | __be32 status; |
156 | struct svc_fh fh; |
157 | unsigned long count; |
158 | int committed; |
159 | }; |
160 | |
161 | struct nfsd3_renameres { |
162 | __be32 status; |
163 | struct svc_fh ffh; |
164 | struct svc_fh tfh; |
165 | }; |
166 | |
167 | struct nfsd3_linkres { |
168 | __be32 status; |
169 | struct svc_fh tfh; |
170 | struct svc_fh fh; |
171 | }; |
172 | |
173 | struct nfsd3_readdirres { |
174 | __be32 status; |
175 | struct svc_fh fh; |
176 | int count; |
177 | __be32 verf[2]; |
178 | |
179 | struct readdir_cd common; |
180 | __be32 * buffer; |
181 | int buflen; |
182 | __be32 * offset; |
183 | __be32 * offset1; |
184 | struct svc_rqst * rqstp; |
185 | |
186 | }; |
187 | |
188 | struct nfsd3_fsstatres { |
189 | __be32 status; |
190 | struct kstatfs stats; |
191 | __u32 invarsec; |
192 | }; |
193 | |
194 | struct nfsd3_fsinfores { |
195 | __be32 status; |
196 | __u32 f_rtmax; |
197 | __u32 f_rtpref; |
198 | __u32 f_rtmult; |
199 | __u32 f_wtmax; |
200 | __u32 f_wtpref; |
201 | __u32 f_wtmult; |
202 | __u32 f_dtpref; |
203 | __u64 f_maxfilesize; |
204 | __u32 f_properties; |
205 | }; |
206 | |
207 | struct nfsd3_pathconfres { |
208 | __be32 status; |
209 | __u32 p_link_max; |
210 | __u32 p_name_max; |
211 | __u32 p_no_trunc; |
212 | __u32 p_chown_restricted; |
213 | __u32 p_case_insensitive; |
214 | __u32 p_case_preserving; |
215 | }; |
216 | |
217 | struct nfsd3_commitres { |
218 | __be32 status; |
219 | struct svc_fh fh; |
220 | }; |
221 | |
222 | struct nfsd3_getaclres { |
223 | __be32 status; |
224 | struct svc_fh fh; |
225 | int mask; |
226 | struct posix_acl *acl_access; |
227 | struct posix_acl *acl_default; |
228 | }; |
229 | |
230 | /* dummy type for release */ |
231 | struct nfsd3_fhandle_pair { |
232 | __u32 dummy; |
233 | struct svc_fh fh1; |
234 | struct svc_fh fh2; |
235 | }; |
236 | |
237 | /* |
238 | * Storage requirements for XDR arguments and results. |
239 | */ |
240 | union nfsd3_xdrstore { |
241 | struct nfsd3_sattrargs sattrargs; |
242 | struct nfsd3_diropargs diropargs; |
243 | struct nfsd3_readargs readargs; |
244 | struct nfsd3_writeargs writeargs; |
245 | struct nfsd3_createargs createargs; |
246 | struct nfsd3_renameargs renameargs; |
247 | struct nfsd3_linkargs linkargs; |
248 | struct nfsd3_symlinkargs symlinkargs; |
249 | struct nfsd3_readdirargs readdirargs; |
250 | struct nfsd3_diropres diropres; |
251 | struct nfsd3_accessres accessres; |
252 | struct nfsd3_readlinkres readlinkres; |
253 | struct nfsd3_readres readres; |
254 | struct nfsd3_writeres writeres; |
255 | struct nfsd3_renameres renameres; |
256 | struct nfsd3_linkres linkres; |
257 | struct nfsd3_readdirres readdirres; |
258 | struct nfsd3_fsstatres fsstatres; |
259 | struct nfsd3_fsinfores fsinfores; |
260 | struct nfsd3_pathconfres pathconfres; |
261 | struct nfsd3_commitres commitres; |
262 | struct nfsd3_getaclres getaclres; |
263 | }; |
264 | |
265 | #define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore) |
266 | |
267 | int nfs3svc_decode_fhandle(struct svc_rqst *, __be32 *, struct nfsd_fhandle *); |
268 | int nfs3svc_decode_sattrargs(struct svc_rqst *, __be32 *, |
269 | struct nfsd3_sattrargs *); |
270 | int nfs3svc_decode_diropargs(struct svc_rqst *, __be32 *, |
271 | struct nfsd3_diropargs *); |
272 | int nfs3svc_decode_accessargs(struct svc_rqst *, __be32 *, |
273 | struct nfsd3_accessargs *); |
274 | int nfs3svc_decode_readargs(struct svc_rqst *, __be32 *, |
275 | struct nfsd3_readargs *); |
276 | int nfs3svc_decode_writeargs(struct svc_rqst *, __be32 *, |
277 | struct nfsd3_writeargs *); |
278 | int nfs3svc_decode_createargs(struct svc_rqst *, __be32 *, |
279 | struct nfsd3_createargs *); |
280 | int nfs3svc_decode_mkdirargs(struct svc_rqst *, __be32 *, |
281 | struct nfsd3_createargs *); |
282 | int nfs3svc_decode_mknodargs(struct svc_rqst *, __be32 *, |
283 | struct nfsd3_mknodargs *); |
284 | int nfs3svc_decode_renameargs(struct svc_rqst *, __be32 *, |
285 | struct nfsd3_renameargs *); |
286 | int nfs3svc_decode_readlinkargs(struct svc_rqst *, __be32 *, |
287 | struct nfsd3_readlinkargs *); |
288 | int nfs3svc_decode_linkargs(struct svc_rqst *, __be32 *, |
289 | struct nfsd3_linkargs *); |
290 | int nfs3svc_decode_symlinkargs(struct svc_rqst *, __be32 *, |
291 | struct nfsd3_symlinkargs *); |
292 | int nfs3svc_decode_readdirargs(struct svc_rqst *, __be32 *, |
293 | struct nfsd3_readdirargs *); |
294 | int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __be32 *, |
295 | struct nfsd3_readdirargs *); |
296 | int nfs3svc_decode_commitargs(struct svc_rqst *, __be32 *, |
297 | struct nfsd3_commitargs *); |
298 | int nfs3svc_encode_voidres(struct svc_rqst *, __be32 *, void *); |
299 | int nfs3svc_encode_attrstat(struct svc_rqst *, __be32 *, |
300 | struct nfsd3_attrstat *); |
301 | int nfs3svc_encode_wccstat(struct svc_rqst *, __be32 *, |
302 | struct nfsd3_attrstat *); |
303 | int nfs3svc_encode_diropres(struct svc_rqst *, __be32 *, |
304 | struct nfsd3_diropres *); |
305 | int nfs3svc_encode_accessres(struct svc_rqst *, __be32 *, |
306 | struct nfsd3_accessres *); |
307 | int nfs3svc_encode_readlinkres(struct svc_rqst *, __be32 *, |
308 | struct nfsd3_readlinkres *); |
309 | int nfs3svc_encode_readres(struct svc_rqst *, __be32 *, struct nfsd3_readres *); |
310 | int nfs3svc_encode_writeres(struct svc_rqst *, __be32 *, struct nfsd3_writeres *); |
311 | int nfs3svc_encode_createres(struct svc_rqst *, __be32 *, |
312 | struct nfsd3_diropres *); |
313 | int nfs3svc_encode_renameres(struct svc_rqst *, __be32 *, |
314 | struct nfsd3_renameres *); |
315 | int nfs3svc_encode_linkres(struct svc_rqst *, __be32 *, |
316 | struct nfsd3_linkres *); |
317 | int nfs3svc_encode_readdirres(struct svc_rqst *, __be32 *, |
318 | struct nfsd3_readdirres *); |
319 | int nfs3svc_encode_fsstatres(struct svc_rqst *, __be32 *, |
320 | struct nfsd3_fsstatres *); |
321 | int nfs3svc_encode_fsinfores(struct svc_rqst *, __be32 *, |
322 | struct nfsd3_fsinfores *); |
323 | int nfs3svc_encode_pathconfres(struct svc_rqst *, __be32 *, |
324 | struct nfsd3_pathconfres *); |
325 | int nfs3svc_encode_commitres(struct svc_rqst *, __be32 *, |
326 | struct nfsd3_commitres *); |
327 | |
328 | int nfs3svc_release_fhandle(struct svc_rqst *, __be32 *, |
329 | struct nfsd3_attrstat *); |
330 | int nfs3svc_release_fhandle2(struct svc_rqst *, __be32 *, |
331 | struct nfsd3_fhandle_pair *); |
332 | int nfs3svc_encode_entry(void *, const char *name, |
333 | int namlen, loff_t offset, u64 ino, |
334 | unsigned int); |
335 | int nfs3svc_encode_entry_plus(void *, const char *name, |
336 | int namlen, loff_t offset, u64 ino, |
337 | unsigned int); |
338 | /* Helper functions for NFSv3 ACL code */ |
339 | __be32 *nfs3svc_encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p, |
340 | struct svc_fh *fhp); |
341 | __be32 *nfs3svc_decode_fh(__be32 *p, struct svc_fh *fhp); |
342 | |
343 | |
344 | #endif /* _LINUX_NFSD_XDR3_H */ |
345 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9