Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
nfsd
xdr.h
Go to the documentation of this file.
1
/* XDR types for nfsd. This is mainly a typing exercise. */
2
3
#ifndef LINUX_NFSD_H
4
#define LINUX_NFSD_H
5
6
#include <
linux/vfs.h
>
7
#include "
nfsd.h
"
8
#include "
nfsfh.h
"
9
10
struct
nfsd_fhandle
{
11
struct
svc_fh
fh
;
12
};
13
14
struct
nfsd_sattrargs
{
15
struct
svc_fh
fh
;
16
struct
iattr
attrs
;
17
};
18
19
struct
nfsd_diropargs
{
20
struct
svc_fh
fh
;
21
char
*
name
;
22
unsigned
int
len
;
23
};
24
25
struct
nfsd_readargs
{
26
struct
svc_fh
fh
;
27
__u32
offset
;
28
__u32
count
;
29
int
vlen
;
30
};
31
32
struct
nfsd_writeargs
{
33
svc_fh
fh
;
34
__u32
offset
;
35
int
len
;
36
int
vlen
;
37
};
38
39
struct
nfsd_createargs
{
40
struct
svc_fh
fh
;
41
char
*
name
;
42
unsigned
int
len
;
43
struct
iattr
attrs
;
44
};
45
46
struct
nfsd_renameargs
{
47
struct
svc_fh
ffh
;
48
char
*
fname
;
49
unsigned
int
flen
;
50
struct
svc_fh
tfh
;
51
char
*
tname
;
52
unsigned
int
tlen
;
53
};
54
55
struct
nfsd_readlinkargs
{
56
struct
svc_fh
fh
;
57
char
*
buffer
;
58
};
59
60
struct
nfsd_linkargs
{
61
struct
svc_fh
ffh
;
62
struct
svc_fh
tfh
;
63
char
*
tname
;
64
unsigned
int
tlen
;
65
};
66
67
struct
nfsd_symlinkargs
{
68
struct
svc_fh
ffh
;
69
char
*
fname
;
70
unsigned
int
flen
;
71
char
*
tname
;
72
unsigned
int
tlen
;
73
struct
iattr
attrs
;
74
};
75
76
struct
nfsd_readdirargs
{
77
struct
svc_fh
fh
;
78
__u32
cookie
;
79
__u32
count
;
80
__be32
*
buffer
;
81
};
82
83
struct
nfsd_attrstat
{
84
struct
svc_fh
fh
;
85
struct
kstat
stat
;
86
};
87
88
struct
nfsd_diropres
{
89
struct
svc_fh
fh
;
90
struct
kstat
stat
;
91
};
92
93
struct
nfsd_readlinkres
{
94
int
len
;
95
};
96
97
struct
nfsd_readres
{
98
struct
svc_fh
fh
;
99
unsigned
long
count
;
100
struct
kstat
stat
;
101
};
102
103
struct
nfsd_readdirres
{
104
int
count
;
105
106
struct
readdir_cd
common
;
107
__be32
*
buffer
;
108
int
buflen
;
109
__be32
*
offset
;
110
};
111
112
struct
nfsd_statfsres
{
113
struct
kstatfs
stats
;
114
};
115
116
/*
117
* Storage requirements for XDR arguments and results.
118
*/
119
union
nfsd_xdrstore
{
120
struct
nfsd_sattrargs
sattr
;
121
struct
nfsd_diropargs
dirop
;
122
struct
nfsd_readargs
read
;
123
struct
nfsd_writeargs
write
;
124
struct
nfsd_createargs
create
;
125
struct
nfsd_renameargs
rename
;
126
struct
nfsd_linkargs
link
;
127
struct
nfsd_symlinkargs
symlink
;
128
struct
nfsd_readdirargs
readdir
;
129
};
130
131
#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
132
133
134
int
nfssvc_decode_void
(
struct
svc_rqst
*,
__be32
*,
void
*);
135
int
nfssvc_decode_fhandle
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_fhandle
*);
136
int
nfssvc_decode_sattrargs
(
struct
svc_rqst
*,
__be32
*,
137
struct
nfsd_sattrargs
*);
138
int
nfssvc_decode_diropargs
(
struct
svc_rqst
*,
__be32
*,
139
struct
nfsd_diropargs
*);
140
int
nfssvc_decode_readargs
(
struct
svc_rqst
*,
__be32
*,
141
struct
nfsd_readargs
*);
142
int
nfssvc_decode_writeargs
(
struct
svc_rqst
*,
__be32
*,
143
struct
nfsd_writeargs
*);
144
int
nfssvc_decode_createargs
(
struct
svc_rqst
*,
__be32
*,
145
struct
nfsd_createargs
*);
146
int
nfssvc_decode_renameargs
(
struct
svc_rqst
*,
__be32
*,
147
struct
nfsd_renameargs
*);
148
int
nfssvc_decode_readlinkargs
(
struct
svc_rqst
*,
__be32
*,
149
struct
nfsd_readlinkargs
*);
150
int
nfssvc_decode_linkargs
(
struct
svc_rqst
*,
__be32
*,
151
struct
nfsd_linkargs
*);
152
int
nfssvc_decode_symlinkargs
(
struct
svc_rqst
*,
__be32
*,
153
struct
nfsd_symlinkargs
*);
154
int
nfssvc_decode_readdirargs
(
struct
svc_rqst
*,
__be32
*,
155
struct
nfsd_readdirargs
*);
156
int
nfssvc_encode_void
(
struct
svc_rqst
*,
__be32
*,
void
*);
157
int
nfssvc_encode_attrstat
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_attrstat
*);
158
int
nfssvc_encode_diropres
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_diropres
*);
159
int
nfssvc_encode_readlinkres
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_readlinkres
*);
160
int
nfssvc_encode_readres
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_readres
*);
161
int
nfssvc_encode_statfsres
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_statfsres
*);
162
int
nfssvc_encode_readdirres
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_readdirres
*);
163
164
int
nfssvc_encode_entry
(
void
*,
const
char
*
name
,
165
int
namlen, loff_t
offset
,
u64
ino
,
unsigned
int
);
166
167
int
nfssvc_release_fhandle
(
struct
svc_rqst
*,
__be32
*,
struct
nfsd_fhandle
*);
168
169
/* Helper functions for NFSv2 ACL code */
170
__be32
*
nfs2svc_encode_fattr
(
struct
svc_rqst
*rqstp,
__be32
*
p
,
struct
svc_fh
*fhp);
171
__be32
*
nfs2svc_decode_fh
(
__be32
*
p
,
struct
svc_fh
*fhp);
172
173
#endif
/* LINUX_NFSD_H */
Generated on Thu Jan 10 2013 14:48:56 for Linux Kernel by
1.8.2