Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
xdr3.h
Go to the documentation of this file.
1 /*
2  * XDR types for NFSv3 in nfsd.
3  *
4  * Copyright (C) 1996-1998, Olaf Kirch <[email protected]>
5  */
6 
7 #ifndef _LINUX_NFSD_XDR3_H
8 #define _LINUX_NFSD_XDR3_H
9 
10 #include "xdr.h"
11 
13  struct svc_fh fh;
14  struct iattr attrs;
17 };
18 
20  struct svc_fh fh;
21  char * name;
22  unsigned int len;
23 };
24 
26  struct svc_fh fh;
27  unsigned int access;
28 };
29 
31  struct svc_fh fh;
34  int vlen;
35 };
36 
41  int stable;
43  int vlen;
44 };
45 
47  struct svc_fh fh;
48  char * name;
49  unsigned int len;
51  struct iattr attrs;
53 };
54 
56  struct svc_fh fh;
57  char * name;
58  unsigned int len;
61  struct iattr attrs;
62 };
63 
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 
74  struct svc_fh fh;
75  char * buffer;
76 };
77 
79  struct svc_fh ffh;
80  struct svc_fh tfh;
81  char * tname;
82  unsigned int tlen;
83 };
84 
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 
95  struct svc_fh fh;
101 };
102 
104  struct svc_fh fh;
107 };
108 
110  struct svc_fh fh;
111  int mask;
112 };
113 
114 struct posix_acl;
116  struct svc_fh fh;
117  int mask;
120 };
121 
124  struct svc_fh fh;
125  struct kstat stat;
126 };
127 
128 /* LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD */
131  struct svc_fh dirfh;
132  struct svc_fh fh;
133 };
134 
137  struct svc_fh fh;
139 };
140 
143  struct svc_fh fh;
145 };
146 
149  struct svc_fh fh;
150  unsigned long count;
151  int eof;
152 };
153 
156  struct svc_fh fh;
157  unsigned long count;
159 };
160 
163  struct svc_fh ffh;
164  struct svc_fh tfh;
165 };
166 
169  struct svc_fh tfh;
170  struct svc_fh fh;
171 };
172 
175  struct svc_fh fh;
176  int count;
178 
181  int buflen;
184  struct svc_rqst * rqstp;
185 
186 };
187 
190  struct kstatfs stats;
192 };
193 
205 };
206 
215 };
216 
219  struct svc_fh fh;
220 };
221 
224  struct svc_fh fh;
225  int mask;
228 };
229 
230 /* dummy type for release */
233  struct svc_fh fh1;
234  struct svc_fh fh2;
235 };
236 
237 /*
238  * Storage requirements for XDR arguments and results.
239  */
263 };
264 
265 #define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
266 
267 int nfs3svc_decode_fhandle(struct svc_rqst *, __be32 *, struct nfsd_fhandle *);
269  struct nfsd3_sattrargs *);
271  struct nfsd3_diropargs *);
273  struct nfsd3_accessargs *);
274 int nfs3svc_decode_readargs(struct svc_rqst *, __be32 *,
275  struct nfsd3_readargs *);
277  struct nfsd3_writeargs *);
279  struct nfsd3_createargs *);
281  struct nfsd3_createargs *);
283  struct nfsd3_mknodargs *);
285  struct nfsd3_renameargs *);
287  struct nfsd3_readlinkargs *);
288 int nfs3svc_decode_linkargs(struct svc_rqst *, __be32 *,
289  struct nfsd3_linkargs *);
291  struct nfsd3_symlinkargs *);
293  struct nfsd3_readdirargs *);
295  struct nfsd3_readdirargs *);
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 *);
306  struct nfsd3_accessres *);
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 *);
312  struct nfsd3_diropres *);
314  struct nfsd3_renameres *);
315 int nfs3svc_encode_linkres(struct svc_rqst *, __be32 *,
316  struct nfsd3_linkres *);
318  struct nfsd3_readdirres *);
320  struct nfsd3_fsstatres *);
322  struct nfsd3_fsinfores *);
324  struct nfsd3_pathconfres *);
326  struct nfsd3_commitres *);
327 
328 int nfs3svc_release_fhandle(struct svc_rqst *, __be32 *,
329  struct nfsd3_attrstat *);
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 */
340  struct svc_fh *fhp);
341 __be32 *nfs3svc_decode_fh(__be32 *p, struct svc_fh *fhp);
342 
343 
344 #endif /* _LINUX_NFSD_XDR3_H */