1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef LINUX_NFSD_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define LINUX_NFSD_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/fs.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/vfs.h>
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/nfs.h>
18951a39d68df598db08dfced8b4707755864a0492Ying Wang
19951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_fhandle {
20951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
21951a39d68df598db08dfced8b4707755864a0492Ying Wang};
22951a39d68df598db08dfced8b4707755864a0492Ying Wang
23951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_sattrargs {
24951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
25951a39d68df598db08dfced8b4707755864a0492Ying Wang struct iattr attrs;
26951a39d68df598db08dfced8b4707755864a0492Ying Wang};
27951a39d68df598db08dfced8b4707755864a0492Ying Wang
28951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_diropargs {
29951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
30951a39d68df598db08dfced8b4707755864a0492Ying Wang char * name;
31951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
32951a39d68df598db08dfced8b4707755864a0492Ying Wang};
33951a39d68df598db08dfced8b4707755864a0492Ying Wang
34951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readargs {
35951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
36951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 offset;
37951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 count;
38951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kvec vec[RPCSVC_MAXPAGES];
39951a39d68df598db08dfced8b4707755864a0492Ying Wang int vlen;
40951a39d68df598db08dfced8b4707755864a0492Ying Wang};
41951a39d68df598db08dfced8b4707755864a0492Ying Wang
42951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_writeargs {
43951a39d68df598db08dfced8b4707755864a0492Ying Wang svc_fh fh;
44951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 offset;
45951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
46951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kvec vec[RPCSVC_MAXPAGES];
47951a39d68df598db08dfced8b4707755864a0492Ying Wang int vlen;
48951a39d68df598db08dfced8b4707755864a0492Ying Wang};
49951a39d68df598db08dfced8b4707755864a0492Ying Wang
50951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_createargs {
51951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
52951a39d68df598db08dfced8b4707755864a0492Ying Wang char * name;
53951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
54951a39d68df598db08dfced8b4707755864a0492Ying Wang struct iattr attrs;
55951a39d68df598db08dfced8b4707755864a0492Ying Wang};
56951a39d68df598db08dfced8b4707755864a0492Ying Wang
57951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_renameargs {
58951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh ffh;
59951a39d68df598db08dfced8b4707755864a0492Ying Wang char * fname;
60951a39d68df598db08dfced8b4707755864a0492Ying Wang int flen;
61951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh tfh;
62951a39d68df598db08dfced8b4707755864a0492Ying Wang char * tname;
63951a39d68df598db08dfced8b4707755864a0492Ying Wang int tlen;
64951a39d68df598db08dfced8b4707755864a0492Ying Wang};
65951a39d68df598db08dfced8b4707755864a0492Ying Wang
66951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readlinkargs {
67951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang char * buffer;
69951a39d68df598db08dfced8b4707755864a0492Ying Wang};
70951a39d68df598db08dfced8b4707755864a0492Ying Wang
71951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_linkargs {
72951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh ffh;
73951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh tfh;
74951a39d68df598db08dfced8b4707755864a0492Ying Wang char * tname;
75951a39d68df598db08dfced8b4707755864a0492Ying Wang int tlen;
76951a39d68df598db08dfced8b4707755864a0492Ying Wang};
77951a39d68df598db08dfced8b4707755864a0492Ying Wang
78951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_symlinkargs {
79951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh ffh;
80951a39d68df598db08dfced8b4707755864a0492Ying Wang char * fname;
81951a39d68df598db08dfced8b4707755864a0492Ying Wang int flen;
82951a39d68df598db08dfced8b4707755864a0492Ying Wang char * tname;
83951a39d68df598db08dfced8b4707755864a0492Ying Wang int tlen;
84951a39d68df598db08dfced8b4707755864a0492Ying Wang struct iattr attrs;
85951a39d68df598db08dfced8b4707755864a0492Ying Wang};
86951a39d68df598db08dfced8b4707755864a0492Ying Wang
87951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readdirargs {
88951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
89951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 cookie;
90951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 count;
91951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 * buffer;
92951a39d68df598db08dfced8b4707755864a0492Ying Wang};
93951a39d68df598db08dfced8b4707755864a0492Ying Wang
94951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_attrstat {
95951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
96951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kstat stat;
97951a39d68df598db08dfced8b4707755864a0492Ying Wang};
98951a39d68df598db08dfced8b4707755864a0492Ying Wang
99951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_diropres {
100951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
101951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kstat stat;
102951a39d68df598db08dfced8b4707755864a0492Ying Wang};
103951a39d68df598db08dfced8b4707755864a0492Ying Wang
104951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readlinkres {
105951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
106951a39d68df598db08dfced8b4707755864a0492Ying Wang};
107951a39d68df598db08dfced8b4707755864a0492Ying Wang
108951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readres {
109951a39d68df598db08dfced8b4707755864a0492Ying Wang struct svc_fh fh;
110951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long count;
111951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kstat stat;
112951a39d68df598db08dfced8b4707755864a0492Ying Wang};
113951a39d68df598db08dfced8b4707755864a0492Ying Wang
114951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_readdirres {
115951a39d68df598db08dfced8b4707755864a0492Ying Wang int count;
116951a39d68df598db08dfced8b4707755864a0492Ying Wang
117951a39d68df598db08dfced8b4707755864a0492Ying Wang struct readdir_cd common;
118951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 * buffer;
119951a39d68df598db08dfced8b4707755864a0492Ying Wang int buflen;
120951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 * offset;
121951a39d68df598db08dfced8b4707755864a0492Ying Wang};
122951a39d68df598db08dfced8b4707755864a0492Ying Wang
123951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nfsd_statfsres {
124951a39d68df598db08dfced8b4707755864a0492Ying Wang struct kstatfs stats;
125951a39d68df598db08dfced8b4707755864a0492Ying Wang};
126951a39d68df598db08dfced8b4707755864a0492Ying Wang
127951a39d68df598db08dfced8b4707755864a0492Ying Wangunion nfsd_xdrstore {
128951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_sattrargs sattr;
129951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_diropargs dirop;
130951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_readargs read;
131951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_writeargs write;
132951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_createargs create;
133951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_renameargs rename;
134951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_linkargs link;
135951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_symlinkargs symlink;
136951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfsd_readdirargs readdir;
137951a39d68df598db08dfced8b4707755864a0492Ying Wang};
138951a39d68df598db08dfced8b4707755864a0492Ying Wang
139951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
140951a39d68df598db08dfced8b4707755864a0492Ying Wang
141951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
142