2 * linux/include/linux/nfsd/xdr3.h
4 * XDR types for NFSv3 in nfsd.
6 * Copyright (C) 1996-1998, Olaf Kirch <okir@monad.swb.de>
9 #ifndef _LINUX_NFSD_XDR3_H
10 #define _LINUX_NFSD_XDR3_H
12 #include <linux/nfsd/xdr.h>
14 struct nfsd3_sattrargs
{
21 struct nfsd3_diropargs
{
27 struct nfsd3_accessargs
{
32 struct nfsd3_readargs
{
38 struct nfsd3_writeargs
{
47 struct nfsd3_createargs
{
56 struct nfsd3_mknodargs
{
65 struct nfsd3_renameargs
{
74 struct nfsd3_linkargs
{
81 struct nfsd3_symlinkargs
{
90 struct nfsd3_readdirargs
{
98 struct nfsd3_commitargs
{
104 struct nfsd3_attrstat
{
109 /* LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD */
110 struct nfsd3_diropres
{
116 struct nfsd3_accessres
{
122 struct nfsd3_readlinkres
{
128 struct nfsd3_readres
{
135 struct nfsd3_writeres
{
142 struct nfsd3_renameres
{
148 struct nfsd3_linkres
{
154 struct nfsd3_readdirres
{
161 struct nfsd3_fsstatres
{
167 struct nfsd3_fsinfores
{
180 struct nfsd3_pathconfres
{
185 __u32 p_chown_restricted
;
186 __u32 p_case_insensitive
;
187 __u32 p_case_preserving
;
190 struct nfsd3_commitres
{
195 /* dummy type for release */
196 struct nfsd3_fhandle_pair
{
203 * Storage requirements for XDR arguments and results.
205 union nfsd3_xdrstore
{
206 struct nfsd3_sattrargs sattrargs
;
207 struct nfsd3_diropargs diropargs
;
208 struct nfsd3_readargs readargs
;
209 struct nfsd3_writeargs writeargs
;
210 struct nfsd3_createargs createargs
;
211 struct nfsd3_renameargs renameargs
;
212 struct nfsd3_linkargs linkargs
;
213 struct nfsd3_symlinkargs symlinkargs
;
214 struct nfsd3_readdirargs readdirargs
;
215 struct nfsd3_diropres diropres
;
216 struct nfsd3_accessres accessres
;
217 struct nfsd3_readlinkres readlinkres
;
218 struct nfsd3_readres readres
;
219 struct nfsd3_writeres writeres
;
220 struct nfsd3_renameres renameres
;
221 struct nfsd3_linkres linkres
;
222 struct nfsd3_readdirres readdirres
;
223 struct nfsd3_fsstatres fsstatres
;
224 struct nfsd3_fsinfores fsinfores
;
225 struct nfsd3_pathconfres pathconfres
;
226 struct nfsd3_commitres commitres
;
229 #define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
231 int nfs3svc_decode_fhandle(struct svc_rqst
*, u32
*, struct svc_fh
*);
232 int nfs3svc_decode_sattrargs(struct svc_rqst
*, u32
*,
233 struct nfsd3_sattrargs
*);
234 int nfs3svc_decode_diropargs(struct svc_rqst
*, u32
*,
235 struct nfsd3_diropargs
*);
236 int nfs3svc_decode_accessargs(struct svc_rqst
*, u32
*,
237 struct nfsd3_accessargs
*);
238 int nfs3svc_decode_readargs(struct svc_rqst
*, u32
*,
239 struct nfsd3_readargs
*);
240 int nfs3svc_decode_writeargs(struct svc_rqst
*, u32
*,
241 struct nfsd3_writeargs
*);
242 int nfs3svc_decode_createargs(struct svc_rqst
*, u32
*,
243 struct nfsd3_createargs
*);
244 int nfs3svc_decode_mkdirargs(struct svc_rqst
*, u32
*,
245 struct nfsd3_createargs
*);
246 int nfs3svc_decode_mknodargs(struct svc_rqst
*, u32
*,
247 struct nfsd3_mknodargs
*);
248 int nfs3svc_decode_renameargs(struct svc_rqst
*, u32
*,
249 struct nfsd3_renameargs
*);
250 int nfs3svc_decode_linkargs(struct svc_rqst
*, u32
*,
251 struct nfsd3_linkargs
*);
252 int nfs3svc_decode_symlinkargs(struct svc_rqst
*, u32
*,
253 struct nfsd3_symlinkargs
*);
254 int nfs3svc_decode_readdirargs(struct svc_rqst
*, u32
*,
255 struct nfsd3_readdirargs
*);
256 int nfs3svc_decode_readdirplusargs(struct svc_rqst
*, u32
*,
257 struct nfsd3_readdirargs
*);
258 int nfs3svc_decode_commitargs(struct svc_rqst
*, u32
*,
259 struct nfsd3_commitargs
*);
260 int nfs3svc_encode_voidres(struct svc_rqst
*, u32
*, void *);
261 int nfs3svc_encode_attrstat(struct svc_rqst
*, u32
*,
262 struct nfsd3_attrstat
*);
263 int nfs3svc_encode_wccstat(struct svc_rqst
*, u32
*,
264 struct nfsd3_attrstat
*);
265 int nfs3svc_encode_diropres(struct svc_rqst
*, u32
*,
266 struct nfsd3_diropres
*);
267 int nfs3svc_encode_accessres(struct svc_rqst
*, u32
*,
268 struct nfsd3_accessres
*);
269 int nfs3svc_encode_readlinkres(struct svc_rqst
*, u32
*,
270 struct nfsd3_readlinkres
*);
271 int nfs3svc_encode_readres(struct svc_rqst
*, u32
*, struct nfsd3_readres
*);
272 int nfs3svc_encode_writeres(struct svc_rqst
*, u32
*, struct nfsd3_writeres
*);
273 int nfs3svc_encode_createres(struct svc_rqst
*, u32
*,
274 struct nfsd3_diropres
*);
275 int nfs3svc_encode_renameres(struct svc_rqst
*, u32
*,
276 struct nfsd3_renameres
*);
277 int nfs3svc_encode_linkres(struct svc_rqst
*, u32
*,
278 struct nfsd3_linkres
*);
279 int nfs3svc_encode_readdirres(struct svc_rqst
*, u32
*,
280 struct nfsd3_readdirres
*);
281 int nfs3svc_encode_fsstatres(struct svc_rqst
*, u32
*,
282 struct nfsd3_fsstatres
*);
283 int nfs3svc_encode_fsinfores(struct svc_rqst
*, u32
*,
284 struct nfsd3_fsinfores
*);
285 int nfs3svc_encode_pathconfres(struct svc_rqst
*, u32
*,
286 struct nfsd3_pathconfres
*);
287 int nfs3svc_encode_commitres(struct svc_rqst
*, u32
*,
288 struct nfsd3_commitres
*);
290 int nfs3svc_release_fhandle(struct svc_rqst
*, u32
*,
291 struct nfsd3_attrstat
*);
292 int nfs3svc_release_fhandle2(struct svc_rqst
*, u32
*,
293 struct nfsd3_fhandle_pair
*);
294 int nfs3svc_encode_entry(struct readdir_cd
*, const char *name
,
295 int namlen
, off_t offset
, ino_t ino
,
297 int nfs3svc_encode_entry_plus(struct readdir_cd
*, const char *name
,
298 int namlen
, off_t offset
, ino_t ino
,
302 #endif /* _LINUX_NFSD_XDR3_H */