Blame


1 551445b9 2004-04-21 devnull #include <u.h>
2 551445b9 2004-04-21 devnull #include <libc.h>
3 551445b9 2004-04-21 devnull #include <thread.h>
4 551445b9 2004-04-21 devnull #include <sunrpc.h>
5 551445b9 2004-04-21 devnull #include <nfs3.h>
6 551445b9 2004-04-21 devnull
7 551445b9 2004-04-21 devnull char*
8 551445b9 2004-04-21 devnull nfs3statusstr(Nfs3Status x)
9 551445b9 2004-04-21 devnull {
10 551445b9 2004-04-21 devnull switch(x){
11 551445b9 2004-04-21 devnull case Nfs3Ok:
12 551445b9 2004-04-21 devnull return "Nfs3Ok";
13 551445b9 2004-04-21 devnull case Nfs3ErrNotOwner:
14 551445b9 2004-04-21 devnull return "Nfs3ErrNotOwner";
15 551445b9 2004-04-21 devnull case Nfs3ErrNoEnt:
16 551445b9 2004-04-21 devnull return "Nfs3ErrNoEnt";
17 551445b9 2004-04-21 devnull case Nfs3ErrNoMem:
18 551445b9 2004-04-21 devnull return "Nfs3ErrNoMem";
19 551445b9 2004-04-21 devnull case Nfs3ErrIo:
20 551445b9 2004-04-21 devnull return "Nfs3ErrIo";
21 551445b9 2004-04-21 devnull case Nfs3ErrNxio:
22 551445b9 2004-04-21 devnull return "Nfs3ErrNxio";
23 551445b9 2004-04-21 devnull case Nfs3ErrAcces:
24 551445b9 2004-04-21 devnull return "Nfs3ErrAcces";
25 551445b9 2004-04-21 devnull case Nfs3ErrExist:
26 551445b9 2004-04-21 devnull return "Nfs3ErrExist";
27 551445b9 2004-04-21 devnull case Nfs3ErrXDev:
28 551445b9 2004-04-21 devnull return "Nfs3ErrXDev";
29 551445b9 2004-04-21 devnull case Nfs3ErrNoDev:
30 551445b9 2004-04-21 devnull return "Nfs3ErrNoDev";
31 551445b9 2004-04-21 devnull case Nfs3ErrNotDir:
32 551445b9 2004-04-21 devnull return "Nfs3ErrNotDir";
33 551445b9 2004-04-21 devnull case Nfs3ErrIsDir:
34 551445b9 2004-04-21 devnull return "Nfs3ErrIsDir";
35 551445b9 2004-04-21 devnull case Nfs3ErrInval:
36 551445b9 2004-04-21 devnull return "Nfs3ErrInval";
37 551445b9 2004-04-21 devnull case Nfs3ErrFbig:
38 551445b9 2004-04-21 devnull return "Nfs3ErrFbig";
39 551445b9 2004-04-21 devnull case Nfs3ErrNoSpc:
40 551445b9 2004-04-21 devnull return "Nfs3ErrNoSpc";
41 551445b9 2004-04-21 devnull case Nfs3ErrRoFs:
42 551445b9 2004-04-21 devnull return "Nfs3ErrRoFs";
43 551445b9 2004-04-21 devnull case Nfs3ErrMLink:
44 551445b9 2004-04-21 devnull return "Nfs3ErrMLink";
45 551445b9 2004-04-21 devnull case Nfs3ErrNameTooLong:
46 551445b9 2004-04-21 devnull return "Nfs3ErrNameTooLong";
47 551445b9 2004-04-21 devnull case Nfs3ErrNotEmpty:
48 551445b9 2004-04-21 devnull return "Nfs3ErrNotEmpty";
49 551445b9 2004-04-21 devnull case Nfs3ErrDQuot:
50 551445b9 2004-04-21 devnull return "Nfs3ErrDQuot";
51 551445b9 2004-04-21 devnull case Nfs3ErrStale:
52 551445b9 2004-04-21 devnull return "Nfs3ErrStale";
53 551445b9 2004-04-21 devnull case Nfs3ErrRemote:
54 551445b9 2004-04-21 devnull return "Nfs3ErrRemote";
55 551445b9 2004-04-21 devnull case Nfs3ErrBadHandle:
56 551445b9 2004-04-21 devnull return "Nfs3ErrBadHandle";
57 551445b9 2004-04-21 devnull case Nfs3ErrNotSync:
58 551445b9 2004-04-21 devnull return "Nfs3ErrNotSync";
59 551445b9 2004-04-21 devnull case Nfs3ErrBadCookie:
60 551445b9 2004-04-21 devnull return "Nfs3ErrBadCookie";
61 551445b9 2004-04-21 devnull case Nfs3ErrNotSupp:
62 551445b9 2004-04-21 devnull return "Nfs3ErrNotSupp";
63 551445b9 2004-04-21 devnull case Nfs3ErrTooSmall:
64 551445b9 2004-04-21 devnull return "Nfs3ErrTooSmall";
65 551445b9 2004-04-21 devnull case Nfs3ErrServerFault:
66 551445b9 2004-04-21 devnull return "Nfs3ErrServerFault";
67 551445b9 2004-04-21 devnull case Nfs3ErrBadType:
68 551445b9 2004-04-21 devnull return "Nfs3ErrBadType";
69 551445b9 2004-04-21 devnull case Nfs3ErrJukebox:
70 551445b9 2004-04-21 devnull return "Nfs3ErrJukebox";
71 551445b9 2004-04-21 devnull case Nfs3ErrFprintNotFound:
72 551445b9 2004-04-21 devnull return "Nfs3ErrFprintNotFound";
73 551445b9 2004-04-21 devnull case Nfs3ErrAborted:
74 551445b9 2004-04-21 devnull return "Nfs3ErrAborted";
75 551445b9 2004-04-21 devnull default:
76 551445b9 2004-04-21 devnull return "unknown";
77 551445b9 2004-04-21 devnull }
78 551445b9 2004-04-21 devnull }
79 551445b9 2004-04-21 devnull
80 551445b9 2004-04-21 devnull static struct {
81 220c15d2 2012-10-20 rsc Nfs3Status status;
82 551445b9 2004-04-21 devnull char *msg;
83 551445b9 2004-04-21 devnull } etab[] = {
84 551445b9 2004-04-21 devnull Nfs3ErrNotOwner, "not owner",
85 551445b9 2004-04-21 devnull Nfs3ErrNoEnt, "directory entry not found",
86 551445b9 2004-04-21 devnull Nfs3ErrIo, "i/o error",
87 551445b9 2004-04-21 devnull Nfs3ErrNxio, "no such device",
88 551445b9 2004-04-21 devnull Nfs3ErrNoMem, "out of memory",
89 551445b9 2004-04-21 devnull Nfs3ErrAcces, "access denied",
90 551445b9 2004-04-21 devnull Nfs3ErrExist, "file or directory exists",
91 551445b9 2004-04-21 devnull Nfs3ErrXDev, "cross-device operation",
92 551445b9 2004-04-21 devnull Nfs3ErrNoDev, "no such device",
93 551445b9 2004-04-21 devnull Nfs3ErrNotDir, "not a directory",
94 551445b9 2004-04-21 devnull Nfs3ErrIsDir, "is a directory",
95 551445b9 2004-04-21 devnull Nfs3ErrInval, "invalid arguments",
96 551445b9 2004-04-21 devnull Nfs3ErrFbig, "file too big",
97 551445b9 2004-04-21 devnull Nfs3ErrNoSpc, "no space left on device",
98 551445b9 2004-04-21 devnull Nfs3ErrRoFs, "read-only file system",
99 551445b9 2004-04-21 devnull Nfs3ErrMLink, "too many links",
100 551445b9 2004-04-21 devnull Nfs3ErrNameTooLong, "name too long",
101 551445b9 2004-04-21 devnull Nfs3ErrNotEmpty, "directory not empty",
102 551445b9 2004-04-21 devnull Nfs3ErrDQuot, "dquot",
103 551445b9 2004-04-21 devnull Nfs3ErrStale, "stale handle",
104 551445b9 2004-04-21 devnull Nfs3ErrRemote, "remote error",
105 551445b9 2004-04-21 devnull Nfs3ErrBadHandle, "bad handle",
106 551445b9 2004-04-21 devnull Nfs3ErrNotSync, "out of sync with server",
107 551445b9 2004-04-21 devnull Nfs3ErrBadCookie, "bad cookie",
108 551445b9 2004-04-21 devnull Nfs3ErrNotSupp, "not supported",
109 551445b9 2004-04-21 devnull Nfs3ErrTooSmall, "too small",
110 551445b9 2004-04-21 devnull Nfs3ErrServerFault, "server fault",
111 551445b9 2004-04-21 devnull Nfs3ErrBadType, "bad type",
112 551445b9 2004-04-21 devnull Nfs3ErrJukebox, "jukebox -- try again later",
113 551445b9 2004-04-21 devnull Nfs3ErrFprintNotFound, "fprint not found",
114 551445b9 2004-04-21 devnull Nfs3ErrAborted, "aborted",
115 551445b9 2004-04-21 devnull };
116 551445b9 2004-04-21 devnull
117 551445b9 2004-04-21 devnull void
118 a8ec4910 2005-07-13 devnull nfs3errstr(Nfs3Status status)
119 551445b9 2004-04-21 devnull {
120 551445b9 2004-04-21 devnull int i;
121 551445b9 2004-04-21 devnull
122 551445b9 2004-04-21 devnull for(i=0; i<nelem(etab); i++){
123 c5bfba48 2012-10-21 rsc if((int)etab[i].status == (int)status){
124 551445b9 2004-04-21 devnull werrstr(etab[i].msg);
125 551445b9 2004-04-21 devnull return;
126 551445b9 2004-04-21 devnull }
127 551445b9 2004-04-21 devnull }
128 551445b9 2004-04-21 devnull werrstr("unknown nfs3 error %d", (int)status);
129 551445b9 2004-04-21 devnull }
130 551445b9 2004-04-21 devnull
131 551445b9 2004-04-21 devnull char*
132 551445b9 2004-04-21 devnull nfs3filetypestr(Nfs3FileType x)
133 551445b9 2004-04-21 devnull {
134 551445b9 2004-04-21 devnull switch(x){
135 551445b9 2004-04-21 devnull case Nfs3FileReg:
136 551445b9 2004-04-21 devnull return "Nfs3FileReg";
137 551445b9 2004-04-21 devnull case Nfs3FileDir:
138 551445b9 2004-04-21 devnull return "Nfs3FileDir";
139 551445b9 2004-04-21 devnull case Nfs3FileBlock:
140 551445b9 2004-04-21 devnull return "Nfs3FileBlock";
141 551445b9 2004-04-21 devnull case Nfs3FileChar:
142 551445b9 2004-04-21 devnull return "Nfs3FileChar";
143 551445b9 2004-04-21 devnull case Nfs3FileSymlink:
144 551445b9 2004-04-21 devnull return "Nfs3FileSymlink";
145 551445b9 2004-04-21 devnull case Nfs3FileSocket:
146 551445b9 2004-04-21 devnull return "Nfs3FileSocket";
147 551445b9 2004-04-21 devnull case Nfs3FileFifo:
148 551445b9 2004-04-21 devnull return "Nfs3FileFifo";
149 551445b9 2004-04-21 devnull default:
150 551445b9 2004-04-21 devnull return "unknown";
151 551445b9 2004-04-21 devnull }
152 551445b9 2004-04-21 devnull }
153 551445b9 2004-04-21 devnull
154 551445b9 2004-04-21 devnull void
155 551445b9 2004-04-21 devnull nfs3handleprint(Fmt *fmt, Nfs3Handle *x)
156 551445b9 2004-04-21 devnull {
157 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3Handle");
158 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
159 551445b9 2004-04-21 devnull if(x->len > 64)
160 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H... (%d)", 64, x->h, x->len);
161 551445b9 2004-04-21 devnull else
162 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", x->len, x->h);
163 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
164 551445b9 2004-04-21 devnull }
165 551445b9 2004-04-21 devnull uint
166 551445b9 2004-04-21 devnull nfs3handlesize(Nfs3Handle *x)
167 551445b9 2004-04-21 devnull {
168 551445b9 2004-04-21 devnull uint a;
169 551445b9 2004-04-21 devnull USED(x);
170 551445b9 2004-04-21 devnull a = 0 + sunvaropaquesize(x->len);
171 551445b9 2004-04-21 devnull return a;
172 551445b9 2004-04-21 devnull }
173 551445b9 2004-04-21 devnull int
174 551445b9 2004-04-21 devnull nfs3handlepack(uchar *a, uchar *ea, uchar **pa, Nfs3Handle *x)
175 551445b9 2004-04-21 devnull {
176 551445b9 2004-04-21 devnull if(x->len > Nfs3MaxHandleSize || sunuint32pack(a, ea, &a, &x->len) < 0
177 551445b9 2004-04-21 devnull || sunfixedopaquepack(a, ea, &a, x->h, x->len) < 0)
178 551445b9 2004-04-21 devnull goto Err;
179 551445b9 2004-04-21 devnull *pa = a;
180 551445b9 2004-04-21 devnull return 0;
181 551445b9 2004-04-21 devnull Err:
182 551445b9 2004-04-21 devnull *pa = ea;
183 551445b9 2004-04-21 devnull return -1;
184 551445b9 2004-04-21 devnull }
185 551445b9 2004-04-21 devnull int
186 551445b9 2004-04-21 devnull nfs3handleunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Handle *x)
187 551445b9 2004-04-21 devnull {
188 551445b9 2004-04-21 devnull uchar *ha;
189 551445b9 2004-04-21 devnull u32int n;
190 551445b9 2004-04-21 devnull
191 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &n) < 0 || n > Nfs3MaxHandleSize)
192 551445b9 2004-04-21 devnull goto Err;
193 551445b9 2004-04-21 devnull ha = a;
194 551445b9 2004-04-21 devnull a += (n+3)&~3;
195 551445b9 2004-04-21 devnull if(a > ea)
196 551445b9 2004-04-21 devnull goto Err;
197 551445b9 2004-04-21 devnull memmove(x->h, ha, n);
198 551445b9 2004-04-21 devnull x->len = n;
199 551445b9 2004-04-21 devnull *pa = a;
200 551445b9 2004-04-21 devnull return 0;
201 551445b9 2004-04-21 devnull Err:
202 551445b9 2004-04-21 devnull *pa = ea;
203 551445b9 2004-04-21 devnull return -1;
204 551445b9 2004-04-21 devnull }
205 551445b9 2004-04-21 devnull void
206 551445b9 2004-04-21 devnull nfs3timeprint(Fmt *fmt, Nfs3Time *x)
207 551445b9 2004-04-21 devnull {
208 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3Time");
209 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "sec");
210 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->sec);
211 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
212 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "nsec");
213 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->nsec);
214 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
215 551445b9 2004-04-21 devnull }
216 551445b9 2004-04-21 devnull uint
217 551445b9 2004-04-21 devnull nfs3timesize(Nfs3Time *x)
218 551445b9 2004-04-21 devnull {
219 551445b9 2004-04-21 devnull uint a;
220 551445b9 2004-04-21 devnull USED(x);
221 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
222 551445b9 2004-04-21 devnull return a;
223 551445b9 2004-04-21 devnull }
224 551445b9 2004-04-21 devnull int
225 551445b9 2004-04-21 devnull nfs3timepack(uchar *a, uchar *ea, uchar **pa, Nfs3Time *x)
226 551445b9 2004-04-21 devnull {
227 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->sec) < 0) goto Err;
228 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->nsec) < 0) goto Err;
229 551445b9 2004-04-21 devnull *pa = a;
230 551445b9 2004-04-21 devnull return 0;
231 551445b9 2004-04-21 devnull Err:
232 551445b9 2004-04-21 devnull *pa = ea;
233 551445b9 2004-04-21 devnull return -1;
234 551445b9 2004-04-21 devnull }
235 551445b9 2004-04-21 devnull int
236 551445b9 2004-04-21 devnull nfs3timeunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Time *x)
237 551445b9 2004-04-21 devnull {
238 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->sec) < 0) goto Err;
239 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->nsec) < 0) goto Err;
240 551445b9 2004-04-21 devnull *pa = a;
241 551445b9 2004-04-21 devnull return 0;
242 551445b9 2004-04-21 devnull Err:
243 551445b9 2004-04-21 devnull *pa = ea;
244 551445b9 2004-04-21 devnull return -1;
245 551445b9 2004-04-21 devnull }
246 551445b9 2004-04-21 devnull void
247 551445b9 2004-04-21 devnull nfs3attrprint(Fmt *fmt, Nfs3Attr *x)
248 551445b9 2004-04-21 devnull {
249 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3Attr");
250 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "type");
251 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3filetypestr(x->type));
252 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
253 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mode");
254 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->mode);
255 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
256 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "nlink");
257 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->nlink);
258 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
259 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "uid");
260 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->uid);
261 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
262 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "gid");
263 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->gid);
264 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
265 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "size");
266 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->size);
267 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
268 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "used");
269 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->used);
270 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
271 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "major");
272 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->major);
273 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
274 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "minor");
275 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->minor);
276 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
277 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "fsid");
278 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->fsid);
279 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
280 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "fileid");
281 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->fileid);
282 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
283 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "atime");
284 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->atime);
285 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
286 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mtime");
287 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->mtime);
288 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
289 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "ctime");
290 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->ctime);
291 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
292 551445b9 2004-04-21 devnull }
293 551445b9 2004-04-21 devnull uint
294 551445b9 2004-04-21 devnull nfs3attrsize(Nfs3Attr *x)
295 551445b9 2004-04-21 devnull {
296 551445b9 2004-04-21 devnull uint a;
297 551445b9 2004-04-21 devnull USED(x);
298 551445b9 2004-04-21 devnull a = 0 + 4 + 4 + 4 + 4 + 4 + 8 + 8 + 4 + 4 + 8 + 8 + nfs3timesize(&x->atime) + nfs3timesize(&x->mtime) + nfs3timesize(&x->ctime);
299 551445b9 2004-04-21 devnull return a;
300 551445b9 2004-04-21 devnull }
301 551445b9 2004-04-21 devnull int
302 551445b9 2004-04-21 devnull nfs3attrpack(uchar *a, uchar *ea, uchar **pa, Nfs3Attr *x)
303 551445b9 2004-04-21 devnull {
304 551445b9 2004-04-21 devnull int i;
305 551445b9 2004-04-21 devnull
306 551445b9 2004-04-21 devnull if(i=x->type, sunenumpack(a, ea, &a, &i) < 0) goto Err;
307 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->mode) < 0) goto Err;
308 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->nlink) < 0) goto Err;
309 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->uid) < 0) goto Err;
310 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->gid) < 0) goto Err;
311 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->size) < 0) goto Err;
312 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->used) < 0) goto Err;
313 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->major) < 0) goto Err;
314 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->minor) < 0) goto Err;
315 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->fsid) < 0) goto Err;
316 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->fileid) < 0) goto Err;
317 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->atime) < 0) goto Err;
318 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->mtime) < 0) goto Err;
319 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->ctime) < 0) goto Err;
320 551445b9 2004-04-21 devnull *pa = a;
321 551445b9 2004-04-21 devnull return 0;
322 551445b9 2004-04-21 devnull Err:
323 551445b9 2004-04-21 devnull *pa = ea;
324 551445b9 2004-04-21 devnull return -1;
325 551445b9 2004-04-21 devnull }
326 551445b9 2004-04-21 devnull int
327 551445b9 2004-04-21 devnull nfs3attrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Attr *x)
328 551445b9 2004-04-21 devnull {
329 551445b9 2004-04-21 devnull int i;
330 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->type = i;
331 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->mode) < 0) goto Err;
332 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->nlink) < 0) goto Err;
333 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->uid) < 0) goto Err;
334 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->gid) < 0) goto Err;
335 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->size) < 0) goto Err;
336 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->used) < 0) goto Err;
337 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->major) < 0) goto Err;
338 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->minor) < 0) goto Err;
339 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->fsid) < 0) goto Err;
340 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->fileid) < 0) goto Err;
341 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->atime) < 0) goto Err;
342 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->mtime) < 0) goto Err;
343 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->ctime) < 0) goto Err;
344 551445b9 2004-04-21 devnull *pa = a;
345 551445b9 2004-04-21 devnull return 0;
346 551445b9 2004-04-21 devnull Err:
347 551445b9 2004-04-21 devnull *pa = ea;
348 551445b9 2004-04-21 devnull return -1;
349 551445b9 2004-04-21 devnull }
350 551445b9 2004-04-21 devnull void
351 551445b9 2004-04-21 devnull nfs3wccattrprint(Fmt *fmt, Nfs3WccAttr *x)
352 551445b9 2004-04-21 devnull {
353 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3WccAttr");
354 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "size");
355 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->size);
356 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
357 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mtime");
358 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->mtime);
359 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
360 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "ctime");
361 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->ctime);
362 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
363 551445b9 2004-04-21 devnull }
364 551445b9 2004-04-21 devnull uint
365 551445b9 2004-04-21 devnull nfs3wccattrsize(Nfs3WccAttr *x)
366 551445b9 2004-04-21 devnull {
367 551445b9 2004-04-21 devnull uint a;
368 551445b9 2004-04-21 devnull USED(x);
369 551445b9 2004-04-21 devnull a = 0 + 8 + nfs3timesize(&x->mtime) + nfs3timesize(&x->ctime);
370 551445b9 2004-04-21 devnull return a;
371 551445b9 2004-04-21 devnull }
372 551445b9 2004-04-21 devnull int
373 551445b9 2004-04-21 devnull nfs3wccattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3WccAttr *x)
374 551445b9 2004-04-21 devnull {
375 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->size) < 0) goto Err;
376 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->mtime) < 0) goto Err;
377 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->ctime) < 0) goto Err;
378 551445b9 2004-04-21 devnull *pa = a;
379 551445b9 2004-04-21 devnull return 0;
380 551445b9 2004-04-21 devnull Err:
381 551445b9 2004-04-21 devnull *pa = ea;
382 551445b9 2004-04-21 devnull return -1;
383 551445b9 2004-04-21 devnull }
384 551445b9 2004-04-21 devnull int
385 551445b9 2004-04-21 devnull nfs3wccattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3WccAttr *x)
386 551445b9 2004-04-21 devnull {
387 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->size) < 0) goto Err;
388 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->mtime) < 0) goto Err;
389 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->ctime) < 0) goto Err;
390 551445b9 2004-04-21 devnull *pa = a;
391 551445b9 2004-04-21 devnull return 0;
392 551445b9 2004-04-21 devnull Err:
393 551445b9 2004-04-21 devnull *pa = ea;
394 551445b9 2004-04-21 devnull return -1;
395 551445b9 2004-04-21 devnull }
396 551445b9 2004-04-21 devnull void
397 551445b9 2004-04-21 devnull nfs3wccprint(Fmt *fmt, Nfs3Wcc *x)
398 551445b9 2004-04-21 devnull {
399 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3Wcc");
400 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveWccAttr");
401 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveWccAttr);
402 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
403 551445b9 2004-04-21 devnull switch(x->haveWccAttr){
404 551445b9 2004-04-21 devnull case 1:
405 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wccAttr");
406 551445b9 2004-04-21 devnull nfs3wccattrprint(fmt, &x->wccAttr);
407 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
408 551445b9 2004-04-21 devnull break;
409 551445b9 2004-04-21 devnull }
410 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
411 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
412 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
413 551445b9 2004-04-21 devnull switch(x->haveAttr){
414 551445b9 2004-04-21 devnull case 1:
415 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
416 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
417 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
418 551445b9 2004-04-21 devnull break;
419 551445b9 2004-04-21 devnull }
420 551445b9 2004-04-21 devnull }
421 551445b9 2004-04-21 devnull uint
422 551445b9 2004-04-21 devnull nfs3wccsize(Nfs3Wcc *x)
423 551445b9 2004-04-21 devnull {
424 551445b9 2004-04-21 devnull uint a;
425 551445b9 2004-04-21 devnull USED(x);
426 551445b9 2004-04-21 devnull a = 0 + 4;
427 551445b9 2004-04-21 devnull switch(x->haveWccAttr){
428 551445b9 2004-04-21 devnull case 1:
429 551445b9 2004-04-21 devnull a = a + nfs3wccattrsize(&x->wccAttr);
430 551445b9 2004-04-21 devnull break;
431 551445b9 2004-04-21 devnull }
432 551445b9 2004-04-21 devnull a = a + 4;
433 551445b9 2004-04-21 devnull switch(x->haveAttr){
434 551445b9 2004-04-21 devnull case 1:
435 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
436 551445b9 2004-04-21 devnull break;
437 551445b9 2004-04-21 devnull }
438 551445b9 2004-04-21 devnull return a;
439 551445b9 2004-04-21 devnull }
440 551445b9 2004-04-21 devnull int
441 551445b9 2004-04-21 devnull nfs3wccpack(uchar *a, uchar *ea, uchar **pa, Nfs3Wcc *x)
442 551445b9 2004-04-21 devnull {
443 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveWccAttr) < 0) goto Err;
444 551445b9 2004-04-21 devnull switch(x->haveWccAttr){
445 551445b9 2004-04-21 devnull case 1:
446 551445b9 2004-04-21 devnull if(nfs3wccattrpack(a, ea, &a, &x->wccAttr) < 0) goto Err;
447 551445b9 2004-04-21 devnull break;
448 551445b9 2004-04-21 devnull }
449 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
450 551445b9 2004-04-21 devnull switch(x->haveAttr){
451 551445b9 2004-04-21 devnull case 1:
452 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
453 551445b9 2004-04-21 devnull break;
454 551445b9 2004-04-21 devnull }
455 551445b9 2004-04-21 devnull *pa = a;
456 551445b9 2004-04-21 devnull return 0;
457 551445b9 2004-04-21 devnull Err:
458 551445b9 2004-04-21 devnull *pa = ea;
459 551445b9 2004-04-21 devnull return -1;
460 551445b9 2004-04-21 devnull }
461 551445b9 2004-04-21 devnull int
462 551445b9 2004-04-21 devnull nfs3wccunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Wcc *x)
463 551445b9 2004-04-21 devnull {
464 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveWccAttr) < 0) goto Err;
465 551445b9 2004-04-21 devnull switch(x->haveWccAttr){
466 551445b9 2004-04-21 devnull case 1:
467 551445b9 2004-04-21 devnull if(nfs3wccattrunpack(a, ea, &a, &x->wccAttr) < 0) goto Err;
468 551445b9 2004-04-21 devnull break;
469 551445b9 2004-04-21 devnull }
470 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
471 551445b9 2004-04-21 devnull switch(x->haveAttr){
472 551445b9 2004-04-21 devnull case 1:
473 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
474 551445b9 2004-04-21 devnull break;
475 551445b9 2004-04-21 devnull }
476 551445b9 2004-04-21 devnull *pa = a;
477 551445b9 2004-04-21 devnull return 0;
478 551445b9 2004-04-21 devnull Err:
479 551445b9 2004-04-21 devnull *pa = ea;
480 551445b9 2004-04-21 devnull return -1;
481 551445b9 2004-04-21 devnull }
482 551445b9 2004-04-21 devnull char*
483 551445b9 2004-04-21 devnull nfs3settimestr(Nfs3SetTime x)
484 551445b9 2004-04-21 devnull {
485 551445b9 2004-04-21 devnull switch(x){
486 551445b9 2004-04-21 devnull case Nfs3SetTimeDont:
487 551445b9 2004-04-21 devnull return "Nfs3SetTimeDont";
488 551445b9 2004-04-21 devnull case Nfs3SetTimeServer:
489 551445b9 2004-04-21 devnull return "Nfs3SetTimeServer";
490 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
491 551445b9 2004-04-21 devnull return "Nfs3SetTimeClient";
492 551445b9 2004-04-21 devnull default:
493 551445b9 2004-04-21 devnull return "unknown";
494 551445b9 2004-04-21 devnull }
495 551445b9 2004-04-21 devnull }
496 551445b9 2004-04-21 devnull
497 551445b9 2004-04-21 devnull void
498 551445b9 2004-04-21 devnull nfs3setattrprint(Fmt *fmt, Nfs3SetAttr *x)
499 551445b9 2004-04-21 devnull {
500 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3SetAttr");
501 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setMode");
502 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->setMode);
503 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
504 551445b9 2004-04-21 devnull switch(x->setMode){
505 551445b9 2004-04-21 devnull case 1:
506 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mode");
507 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->mode);
508 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
509 551445b9 2004-04-21 devnull break;
510 551445b9 2004-04-21 devnull }
511 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setUid");
512 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->setUid);
513 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
514 551445b9 2004-04-21 devnull switch(x->setUid){
515 551445b9 2004-04-21 devnull case 1:
516 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "uid");
517 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->uid);
518 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
519 551445b9 2004-04-21 devnull break;
520 551445b9 2004-04-21 devnull }
521 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setGid");
522 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->setGid);
523 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
524 551445b9 2004-04-21 devnull switch(x->setGid){
525 551445b9 2004-04-21 devnull case 1:
526 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "gid");
527 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->gid);
528 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
529 551445b9 2004-04-21 devnull break;
530 551445b9 2004-04-21 devnull }
531 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setSize");
532 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->setSize);
533 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
534 551445b9 2004-04-21 devnull switch(x->setSize){
535 551445b9 2004-04-21 devnull case 1:
536 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "size");
537 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->size);
538 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
539 551445b9 2004-04-21 devnull break;
540 551445b9 2004-04-21 devnull }
541 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setAtime");
542 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3settimestr(x->setAtime));
543 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
544 551445b9 2004-04-21 devnull switch(x->setAtime){
545 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
546 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "atime");
547 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->atime);
548 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
549 551445b9 2004-04-21 devnull break;
550 551445b9 2004-04-21 devnull }
551 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "setMtime");
552 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3settimestr(x->setMtime));
553 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
554 551445b9 2004-04-21 devnull switch(x->setMtime){
555 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
556 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mtime");
557 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->mtime);
558 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
559 551445b9 2004-04-21 devnull break;
560 551445b9 2004-04-21 devnull }
561 551445b9 2004-04-21 devnull }
562 551445b9 2004-04-21 devnull uint
563 551445b9 2004-04-21 devnull nfs3setattrsize(Nfs3SetAttr *x)
564 551445b9 2004-04-21 devnull {
565 551445b9 2004-04-21 devnull uint a;
566 551445b9 2004-04-21 devnull USED(x);
567 551445b9 2004-04-21 devnull a = 0 + 4;
568 551445b9 2004-04-21 devnull switch(x->setMode){
569 551445b9 2004-04-21 devnull case 1:
570 551445b9 2004-04-21 devnull a = a + 4;
571 551445b9 2004-04-21 devnull break;
572 551445b9 2004-04-21 devnull }
573 551445b9 2004-04-21 devnull a = a + 4;
574 551445b9 2004-04-21 devnull switch(x->setUid){
575 551445b9 2004-04-21 devnull case 1:
576 551445b9 2004-04-21 devnull a = a + 4;
577 551445b9 2004-04-21 devnull break;
578 551445b9 2004-04-21 devnull }
579 551445b9 2004-04-21 devnull a = a + 4;
580 551445b9 2004-04-21 devnull switch(x->setGid){
581 551445b9 2004-04-21 devnull case 1:
582 551445b9 2004-04-21 devnull a = a + 4;
583 551445b9 2004-04-21 devnull break;
584 551445b9 2004-04-21 devnull }
585 551445b9 2004-04-21 devnull a = a + 4;
586 551445b9 2004-04-21 devnull switch(x->setSize){
587 551445b9 2004-04-21 devnull case 1:
588 551445b9 2004-04-21 devnull a = a + 8;
589 551445b9 2004-04-21 devnull break;
590 551445b9 2004-04-21 devnull }
591 551445b9 2004-04-21 devnull a = a + 4;
592 551445b9 2004-04-21 devnull switch(x->setAtime){
593 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
594 551445b9 2004-04-21 devnull a = a + nfs3timesize(&x->atime);
595 551445b9 2004-04-21 devnull break;
596 551445b9 2004-04-21 devnull }
597 551445b9 2004-04-21 devnull a = a + 4;
598 551445b9 2004-04-21 devnull switch(x->setMtime){
599 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
600 551445b9 2004-04-21 devnull a = a + nfs3timesize(&x->mtime);
601 551445b9 2004-04-21 devnull break;
602 551445b9 2004-04-21 devnull }
603 551445b9 2004-04-21 devnull return a;
604 551445b9 2004-04-21 devnull }
605 551445b9 2004-04-21 devnull int
606 551445b9 2004-04-21 devnull nfs3setattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3SetAttr *x)
607 551445b9 2004-04-21 devnull {
608 551445b9 2004-04-21 devnull int i;
609 551445b9 2004-04-21 devnull
610 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->setMode) < 0) goto Err;
611 551445b9 2004-04-21 devnull switch(x->setMode){
612 551445b9 2004-04-21 devnull case 1:
613 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->mode) < 0) goto Err;
614 551445b9 2004-04-21 devnull break;
615 551445b9 2004-04-21 devnull }
616 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->setUid) < 0) goto Err;
617 551445b9 2004-04-21 devnull switch(x->setUid){
618 551445b9 2004-04-21 devnull case 1:
619 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->uid) < 0) goto Err;
620 551445b9 2004-04-21 devnull break;
621 551445b9 2004-04-21 devnull }
622 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->setGid) < 0) goto Err;
623 551445b9 2004-04-21 devnull switch(x->setGid){
624 551445b9 2004-04-21 devnull case 1:
625 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->gid) < 0) goto Err;
626 551445b9 2004-04-21 devnull break;
627 551445b9 2004-04-21 devnull }
628 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->setSize) < 0) goto Err;
629 551445b9 2004-04-21 devnull switch(x->setSize){
630 551445b9 2004-04-21 devnull case 1:
631 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->size) < 0) goto Err;
632 551445b9 2004-04-21 devnull break;
633 551445b9 2004-04-21 devnull }
634 551445b9 2004-04-21 devnull if(i=x->setAtime, sunenumpack(a, ea, &a, &i) < 0) goto Err;
635 551445b9 2004-04-21 devnull switch(x->setAtime){
636 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
637 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->atime) < 0) goto Err;
638 551445b9 2004-04-21 devnull break;
639 551445b9 2004-04-21 devnull }
640 551445b9 2004-04-21 devnull if(i=x->setMtime, sunenumpack(a, ea, &a, &i) < 0) goto Err;
641 551445b9 2004-04-21 devnull switch(x->setMtime){
642 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
643 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->mtime) < 0) goto Err;
644 551445b9 2004-04-21 devnull break;
645 551445b9 2004-04-21 devnull }
646 551445b9 2004-04-21 devnull *pa = a;
647 551445b9 2004-04-21 devnull return 0;
648 551445b9 2004-04-21 devnull Err:
649 551445b9 2004-04-21 devnull *pa = ea;
650 551445b9 2004-04-21 devnull return -1;
651 551445b9 2004-04-21 devnull }
652 551445b9 2004-04-21 devnull int
653 551445b9 2004-04-21 devnull nfs3setattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3SetAttr *x)
654 551445b9 2004-04-21 devnull {
655 551445b9 2004-04-21 devnull int i;
656 551445b9 2004-04-21 devnull
657 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->setMode) < 0) goto Err;
658 551445b9 2004-04-21 devnull switch(x->setMode){
659 551445b9 2004-04-21 devnull case 1:
660 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->mode) < 0) goto Err;
661 551445b9 2004-04-21 devnull break;
662 551445b9 2004-04-21 devnull }
663 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->setUid) < 0) goto Err;
664 551445b9 2004-04-21 devnull switch(x->setUid){
665 551445b9 2004-04-21 devnull case 1:
666 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->uid) < 0) goto Err;
667 551445b9 2004-04-21 devnull break;
668 551445b9 2004-04-21 devnull }
669 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->setGid) < 0) goto Err;
670 551445b9 2004-04-21 devnull switch(x->setGid){
671 551445b9 2004-04-21 devnull case 1:
672 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->gid) < 0) goto Err;
673 551445b9 2004-04-21 devnull break;
674 551445b9 2004-04-21 devnull }
675 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->setSize) < 0) goto Err;
676 551445b9 2004-04-21 devnull switch(x->setSize){
677 551445b9 2004-04-21 devnull case 1:
678 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->size) < 0) goto Err;
679 551445b9 2004-04-21 devnull break;
680 551445b9 2004-04-21 devnull }
681 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->setAtime = i;
682 551445b9 2004-04-21 devnull switch(x->setAtime){
683 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
684 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->atime) < 0) goto Err;
685 551445b9 2004-04-21 devnull break;
686 551445b9 2004-04-21 devnull }
687 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->setMtime = i;
688 551445b9 2004-04-21 devnull switch(x->setMtime){
689 551445b9 2004-04-21 devnull case Nfs3SetTimeClient:
690 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->mtime) < 0) goto Err;
691 551445b9 2004-04-21 devnull break;
692 551445b9 2004-04-21 devnull }
693 551445b9 2004-04-21 devnull *pa = a;
694 551445b9 2004-04-21 devnull return 0;
695 551445b9 2004-04-21 devnull Err:
696 551445b9 2004-04-21 devnull *pa = ea;
697 551445b9 2004-04-21 devnull return -1;
698 551445b9 2004-04-21 devnull }
699 551445b9 2004-04-21 devnull void
700 551445b9 2004-04-21 devnull nfs3tnullprint(Fmt *fmt, Nfs3TNull *x)
701 551445b9 2004-04-21 devnull {
702 551445b9 2004-04-21 devnull USED(x);
703 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TNull");
704 551445b9 2004-04-21 devnull }
705 551445b9 2004-04-21 devnull uint
706 551445b9 2004-04-21 devnull nfs3tnullsize(Nfs3TNull *x)
707 551445b9 2004-04-21 devnull {
708 551445b9 2004-04-21 devnull uint a;
709 551445b9 2004-04-21 devnull USED(x);
710 551445b9 2004-04-21 devnull a = 0;
711 551445b9 2004-04-21 devnull return a;
712 551445b9 2004-04-21 devnull }
713 551445b9 2004-04-21 devnull int
714 551445b9 2004-04-21 devnull nfs3tnullpack(uchar *a, uchar *ea, uchar **pa, Nfs3TNull *x)
715 551445b9 2004-04-21 devnull {
716 551445b9 2004-04-21 devnull USED(x);
717 551445b9 2004-04-21 devnull USED(ea);
718 551445b9 2004-04-21 devnull *pa = a;
719 551445b9 2004-04-21 devnull return 0;
720 551445b9 2004-04-21 devnull }
721 551445b9 2004-04-21 devnull int
722 551445b9 2004-04-21 devnull nfs3tnullunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TNull *x)
723 551445b9 2004-04-21 devnull {
724 551445b9 2004-04-21 devnull USED(x);
725 551445b9 2004-04-21 devnull USED(ea);
726 551445b9 2004-04-21 devnull *pa = a;
727 551445b9 2004-04-21 devnull return 0;
728 551445b9 2004-04-21 devnull }
729 551445b9 2004-04-21 devnull void
730 551445b9 2004-04-21 devnull nfs3rnullprint(Fmt *fmt, Nfs3RNull *x)
731 551445b9 2004-04-21 devnull {
732 551445b9 2004-04-21 devnull USED(x);
733 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RNull");
734 551445b9 2004-04-21 devnull }
735 551445b9 2004-04-21 devnull uint
736 551445b9 2004-04-21 devnull nfs3rnullsize(Nfs3RNull *x)
737 551445b9 2004-04-21 devnull {
738 551445b9 2004-04-21 devnull uint a;
739 551445b9 2004-04-21 devnull USED(x);
740 551445b9 2004-04-21 devnull a = 0;
741 551445b9 2004-04-21 devnull return a;
742 551445b9 2004-04-21 devnull }
743 551445b9 2004-04-21 devnull int
744 551445b9 2004-04-21 devnull nfs3rnullpack(uchar *a, uchar *ea, uchar **pa, Nfs3RNull *x)
745 551445b9 2004-04-21 devnull {
746 551445b9 2004-04-21 devnull USED(ea);
747 551445b9 2004-04-21 devnull USED(x);
748 551445b9 2004-04-21 devnull *pa = a;
749 551445b9 2004-04-21 devnull return 0;
750 551445b9 2004-04-21 devnull }
751 551445b9 2004-04-21 devnull int
752 551445b9 2004-04-21 devnull nfs3rnullunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RNull *x)
753 551445b9 2004-04-21 devnull {
754 551445b9 2004-04-21 devnull USED(ea);
755 551445b9 2004-04-21 devnull USED(x);
756 551445b9 2004-04-21 devnull *pa = a;
757 551445b9 2004-04-21 devnull return 0;
758 551445b9 2004-04-21 devnull }
759 551445b9 2004-04-21 devnull void
760 551445b9 2004-04-21 devnull nfs3tgetattrprint(Fmt *fmt, Nfs3TGetattr *x)
761 551445b9 2004-04-21 devnull {
762 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TGetattr");
763 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
764 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
765 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
766 551445b9 2004-04-21 devnull }
767 551445b9 2004-04-21 devnull uint
768 551445b9 2004-04-21 devnull nfs3tgetattrsize(Nfs3TGetattr *x)
769 551445b9 2004-04-21 devnull {
770 551445b9 2004-04-21 devnull uint a;
771 551445b9 2004-04-21 devnull USED(x);
772 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle);
773 551445b9 2004-04-21 devnull return a;
774 551445b9 2004-04-21 devnull }
775 551445b9 2004-04-21 devnull int
776 551445b9 2004-04-21 devnull nfs3tgetattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3TGetattr *x)
777 551445b9 2004-04-21 devnull {
778 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
779 551445b9 2004-04-21 devnull *pa = a;
780 551445b9 2004-04-21 devnull return 0;
781 551445b9 2004-04-21 devnull Err:
782 551445b9 2004-04-21 devnull *pa = ea;
783 551445b9 2004-04-21 devnull return -1;
784 551445b9 2004-04-21 devnull }
785 551445b9 2004-04-21 devnull int
786 551445b9 2004-04-21 devnull nfs3tgetattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TGetattr *x)
787 551445b9 2004-04-21 devnull {
788 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
789 551445b9 2004-04-21 devnull *pa = a;
790 551445b9 2004-04-21 devnull return 0;
791 551445b9 2004-04-21 devnull Err:
792 551445b9 2004-04-21 devnull *pa = ea;
793 551445b9 2004-04-21 devnull return -1;
794 551445b9 2004-04-21 devnull }
795 551445b9 2004-04-21 devnull void
796 551445b9 2004-04-21 devnull nfs3rgetattrprint(Fmt *fmt, Nfs3RGetattr *x)
797 551445b9 2004-04-21 devnull {
798 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RGetattr");
799 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
800 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
801 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
802 551445b9 2004-04-21 devnull switch(x->status){
803 551445b9 2004-04-21 devnull case Nfs3Ok:
804 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
805 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
806 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
807 551445b9 2004-04-21 devnull break;
808 551445b9 2004-04-21 devnull }
809 551445b9 2004-04-21 devnull }
810 551445b9 2004-04-21 devnull uint
811 551445b9 2004-04-21 devnull nfs3rgetattrsize(Nfs3RGetattr *x)
812 551445b9 2004-04-21 devnull {
813 551445b9 2004-04-21 devnull uint a;
814 551445b9 2004-04-21 devnull USED(x);
815 551445b9 2004-04-21 devnull a = 0 + 4;
816 551445b9 2004-04-21 devnull switch(x->status){
817 551445b9 2004-04-21 devnull case Nfs3Ok:
818 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
819 551445b9 2004-04-21 devnull break;
820 551445b9 2004-04-21 devnull }
821 551445b9 2004-04-21 devnull return a;
822 551445b9 2004-04-21 devnull }
823 551445b9 2004-04-21 devnull int
824 551445b9 2004-04-21 devnull nfs3rgetattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3RGetattr *x)
825 551445b9 2004-04-21 devnull {
826 551445b9 2004-04-21 devnull int i;
827 551445b9 2004-04-21 devnull
828 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
829 551445b9 2004-04-21 devnull switch(x->status){
830 551445b9 2004-04-21 devnull case Nfs3Ok:
831 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
832 551445b9 2004-04-21 devnull break;
833 551445b9 2004-04-21 devnull }
834 551445b9 2004-04-21 devnull *pa = a;
835 551445b9 2004-04-21 devnull return 0;
836 551445b9 2004-04-21 devnull Err:
837 551445b9 2004-04-21 devnull *pa = ea;
838 551445b9 2004-04-21 devnull return -1;
839 551445b9 2004-04-21 devnull }
840 551445b9 2004-04-21 devnull int
841 551445b9 2004-04-21 devnull nfs3rgetattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RGetattr *x)
842 551445b9 2004-04-21 devnull {
843 551445b9 2004-04-21 devnull int i;
844 551445b9 2004-04-21 devnull
845 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
846 551445b9 2004-04-21 devnull switch(x->status){
847 551445b9 2004-04-21 devnull case Nfs3Ok:
848 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
849 551445b9 2004-04-21 devnull break;
850 551445b9 2004-04-21 devnull }
851 551445b9 2004-04-21 devnull *pa = a;
852 551445b9 2004-04-21 devnull return 0;
853 551445b9 2004-04-21 devnull Err:
854 551445b9 2004-04-21 devnull *pa = ea;
855 551445b9 2004-04-21 devnull return -1;
856 551445b9 2004-04-21 devnull }
857 551445b9 2004-04-21 devnull void
858 551445b9 2004-04-21 devnull nfs3tsetattrprint(Fmt *fmt, Nfs3TSetattr *x)
859 551445b9 2004-04-21 devnull {
860 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TSetattr");
861 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
862 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
863 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
864 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
865 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
866 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
867 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "checkCtime");
868 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->checkCtime);
869 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
870 551445b9 2004-04-21 devnull switch(x->checkCtime){
871 551445b9 2004-04-21 devnull case 1:
872 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "ctime");
873 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->ctime);
874 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
875 551445b9 2004-04-21 devnull break;
876 551445b9 2004-04-21 devnull }
877 551445b9 2004-04-21 devnull }
878 551445b9 2004-04-21 devnull uint
879 551445b9 2004-04-21 devnull nfs3tsetattrsize(Nfs3TSetattr *x)
880 551445b9 2004-04-21 devnull {
881 551445b9 2004-04-21 devnull uint a;
882 551445b9 2004-04-21 devnull USED(x);
883 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + nfs3setattrsize(&x->attr) + 4;
884 551445b9 2004-04-21 devnull switch(x->checkCtime){
885 551445b9 2004-04-21 devnull case 1:
886 551445b9 2004-04-21 devnull a = a + nfs3timesize(&x->ctime);
887 551445b9 2004-04-21 devnull break;
888 551445b9 2004-04-21 devnull }
889 551445b9 2004-04-21 devnull return a;
890 551445b9 2004-04-21 devnull }
891 551445b9 2004-04-21 devnull int
892 551445b9 2004-04-21 devnull nfs3tsetattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3TSetattr *x)
893 551445b9 2004-04-21 devnull {
894 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
895 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
896 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->checkCtime) < 0) goto Err;
897 551445b9 2004-04-21 devnull switch(x->checkCtime){
898 551445b9 2004-04-21 devnull case 1:
899 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->ctime) < 0) goto Err;
900 551445b9 2004-04-21 devnull break;
901 551445b9 2004-04-21 devnull }
902 551445b9 2004-04-21 devnull *pa = a;
903 551445b9 2004-04-21 devnull return 0;
904 551445b9 2004-04-21 devnull Err:
905 551445b9 2004-04-21 devnull *pa = ea;
906 551445b9 2004-04-21 devnull return -1;
907 551445b9 2004-04-21 devnull }
908 551445b9 2004-04-21 devnull int
909 551445b9 2004-04-21 devnull nfs3tsetattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TSetattr *x)
910 551445b9 2004-04-21 devnull {
911 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
912 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
913 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->checkCtime) < 0) goto Err;
914 551445b9 2004-04-21 devnull switch(x->checkCtime){
915 551445b9 2004-04-21 devnull case 1:
916 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->ctime) < 0) goto Err;
917 551445b9 2004-04-21 devnull break;
918 551445b9 2004-04-21 devnull }
919 551445b9 2004-04-21 devnull *pa = a;
920 551445b9 2004-04-21 devnull return 0;
921 551445b9 2004-04-21 devnull Err:
922 551445b9 2004-04-21 devnull *pa = ea;
923 551445b9 2004-04-21 devnull return -1;
924 551445b9 2004-04-21 devnull }
925 551445b9 2004-04-21 devnull void
926 551445b9 2004-04-21 devnull nfs3rsetattrprint(Fmt *fmt, Nfs3RSetattr *x)
927 551445b9 2004-04-21 devnull {
928 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RSetattr");
929 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
930 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
931 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
932 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wcc");
933 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->wcc);
934 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
935 551445b9 2004-04-21 devnull }
936 551445b9 2004-04-21 devnull uint
937 551445b9 2004-04-21 devnull nfs3rsetattrsize(Nfs3RSetattr *x)
938 551445b9 2004-04-21 devnull {
939 551445b9 2004-04-21 devnull uint a;
940 551445b9 2004-04-21 devnull USED(x);
941 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->wcc);
942 551445b9 2004-04-21 devnull return a;
943 551445b9 2004-04-21 devnull }
944 551445b9 2004-04-21 devnull int
945 551445b9 2004-04-21 devnull nfs3rsetattrpack(uchar *a, uchar *ea, uchar **pa, Nfs3RSetattr *x)
946 551445b9 2004-04-21 devnull {
947 551445b9 2004-04-21 devnull int i;
948 551445b9 2004-04-21 devnull
949 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
950 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->wcc) < 0) goto Err;
951 551445b9 2004-04-21 devnull *pa = a;
952 551445b9 2004-04-21 devnull return 0;
953 551445b9 2004-04-21 devnull Err:
954 551445b9 2004-04-21 devnull *pa = ea;
955 551445b9 2004-04-21 devnull return -1;
956 551445b9 2004-04-21 devnull }
957 551445b9 2004-04-21 devnull int
958 551445b9 2004-04-21 devnull nfs3rsetattrunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RSetattr *x)
959 551445b9 2004-04-21 devnull {
960 551445b9 2004-04-21 devnull int i;
961 551445b9 2004-04-21 devnull
962 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
963 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->wcc) < 0) goto Err;
964 551445b9 2004-04-21 devnull *pa = a;
965 551445b9 2004-04-21 devnull return 0;
966 551445b9 2004-04-21 devnull Err:
967 551445b9 2004-04-21 devnull *pa = ea;
968 551445b9 2004-04-21 devnull return -1;
969 551445b9 2004-04-21 devnull }
970 551445b9 2004-04-21 devnull void
971 551445b9 2004-04-21 devnull nfs3tlookupprint(Fmt *fmt, Nfs3TLookup *x)
972 551445b9 2004-04-21 devnull {
973 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TLookup");
974 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
975 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
976 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
977 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
978 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
979 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
980 551445b9 2004-04-21 devnull }
981 551445b9 2004-04-21 devnull uint
982 551445b9 2004-04-21 devnull nfs3tlookupsize(Nfs3TLookup *x)
983 551445b9 2004-04-21 devnull {
984 551445b9 2004-04-21 devnull uint a;
985 551445b9 2004-04-21 devnull USED(x);
986 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name);
987 551445b9 2004-04-21 devnull return a;
988 551445b9 2004-04-21 devnull }
989 551445b9 2004-04-21 devnull int
990 551445b9 2004-04-21 devnull nfs3tlookuppack(uchar *a, uchar *ea, uchar **pa, Nfs3TLookup *x)
991 551445b9 2004-04-21 devnull {
992 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
993 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
994 551445b9 2004-04-21 devnull *pa = a;
995 551445b9 2004-04-21 devnull return 0;
996 551445b9 2004-04-21 devnull Err:
997 551445b9 2004-04-21 devnull *pa = ea;
998 551445b9 2004-04-21 devnull return -1;
999 551445b9 2004-04-21 devnull }
1000 551445b9 2004-04-21 devnull int
1001 551445b9 2004-04-21 devnull nfs3tlookupunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TLookup *x)
1002 551445b9 2004-04-21 devnull {
1003 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1004 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
1005 551445b9 2004-04-21 devnull *pa = a;
1006 551445b9 2004-04-21 devnull return 0;
1007 551445b9 2004-04-21 devnull Err:
1008 551445b9 2004-04-21 devnull *pa = ea;
1009 551445b9 2004-04-21 devnull return -1;
1010 551445b9 2004-04-21 devnull }
1011 551445b9 2004-04-21 devnull void
1012 551445b9 2004-04-21 devnull nfs3rlookupprint(Fmt *fmt, Nfs3RLookup *x)
1013 551445b9 2004-04-21 devnull {
1014 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RLookup");
1015 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1016 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1017 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1018 551445b9 2004-04-21 devnull switch(x->status){
1019 551445b9 2004-04-21 devnull case Nfs3Ok:
1020 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1021 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1022 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1023 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1024 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1025 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1026 551445b9 2004-04-21 devnull switch(x->haveAttr){
1027 551445b9 2004-04-21 devnull case 1:
1028 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1029 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1030 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1031 551445b9 2004-04-21 devnull break;
1032 551445b9 2004-04-21 devnull }
1033 551445b9 2004-04-21 devnull break;
1034 551445b9 2004-04-21 devnull }
1035 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveDirAttr");
1036 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveDirAttr);
1037 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1038 551445b9 2004-04-21 devnull switch(x->haveDirAttr){
1039 551445b9 2004-04-21 devnull case 1:
1040 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirAttr");
1041 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->dirAttr);
1042 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1043 551445b9 2004-04-21 devnull break;
1044 551445b9 2004-04-21 devnull }
1045 551445b9 2004-04-21 devnull }
1046 551445b9 2004-04-21 devnull uint
1047 551445b9 2004-04-21 devnull nfs3rlookupsize(Nfs3RLookup *x)
1048 551445b9 2004-04-21 devnull {
1049 551445b9 2004-04-21 devnull uint a;
1050 551445b9 2004-04-21 devnull USED(x);
1051 551445b9 2004-04-21 devnull a = 0 + 4;
1052 551445b9 2004-04-21 devnull switch(x->status){
1053 551445b9 2004-04-21 devnull case Nfs3Ok:
1054 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle) + 4;
1055 551445b9 2004-04-21 devnull switch(x->haveAttr){
1056 551445b9 2004-04-21 devnull case 1:
1057 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
1058 551445b9 2004-04-21 devnull break;
1059 551445b9 2004-04-21 devnull }
1060 551445b9 2004-04-21 devnull break;
1061 551445b9 2004-04-21 devnull }
1062 551445b9 2004-04-21 devnull a = a + 4;
1063 551445b9 2004-04-21 devnull switch(x->haveDirAttr){
1064 551445b9 2004-04-21 devnull case 1:
1065 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->dirAttr);
1066 551445b9 2004-04-21 devnull break;
1067 551445b9 2004-04-21 devnull }
1068 551445b9 2004-04-21 devnull return a;
1069 551445b9 2004-04-21 devnull }
1070 551445b9 2004-04-21 devnull int
1071 551445b9 2004-04-21 devnull nfs3rlookuppack(uchar *a, uchar *ea, uchar **pa, Nfs3RLookup *x)
1072 551445b9 2004-04-21 devnull {
1073 551445b9 2004-04-21 devnull int i;
1074 551445b9 2004-04-21 devnull
1075 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1076 551445b9 2004-04-21 devnull switch(x->status){
1077 551445b9 2004-04-21 devnull case Nfs3Ok:
1078 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1079 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1080 551445b9 2004-04-21 devnull switch(x->haveAttr){
1081 551445b9 2004-04-21 devnull case 1:
1082 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
1083 551445b9 2004-04-21 devnull break;
1084 551445b9 2004-04-21 devnull }
1085 551445b9 2004-04-21 devnull break;
1086 551445b9 2004-04-21 devnull }
1087 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveDirAttr) < 0) goto Err;
1088 551445b9 2004-04-21 devnull switch(x->haveDirAttr){
1089 551445b9 2004-04-21 devnull case 1:
1090 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->dirAttr) < 0) goto Err;
1091 551445b9 2004-04-21 devnull break;
1092 551445b9 2004-04-21 devnull }
1093 551445b9 2004-04-21 devnull *pa = a;
1094 551445b9 2004-04-21 devnull return 0;
1095 551445b9 2004-04-21 devnull Err:
1096 551445b9 2004-04-21 devnull *pa = ea;
1097 551445b9 2004-04-21 devnull return -1;
1098 551445b9 2004-04-21 devnull }
1099 551445b9 2004-04-21 devnull int
1100 551445b9 2004-04-21 devnull nfs3rlookupunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RLookup *x)
1101 551445b9 2004-04-21 devnull {
1102 551445b9 2004-04-21 devnull int i;
1103 551445b9 2004-04-21 devnull
1104 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1105 551445b9 2004-04-21 devnull switch(x->status){
1106 551445b9 2004-04-21 devnull case Nfs3Ok:
1107 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1108 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1109 551445b9 2004-04-21 devnull switch(x->haveAttr){
1110 551445b9 2004-04-21 devnull case 1:
1111 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1112 551445b9 2004-04-21 devnull break;
1113 551445b9 2004-04-21 devnull }
1114 551445b9 2004-04-21 devnull break;
1115 551445b9 2004-04-21 devnull }
1116 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveDirAttr) < 0) goto Err;
1117 551445b9 2004-04-21 devnull switch(x->haveDirAttr){
1118 551445b9 2004-04-21 devnull case 1:
1119 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->dirAttr) < 0) goto Err;
1120 551445b9 2004-04-21 devnull break;
1121 551445b9 2004-04-21 devnull }
1122 551445b9 2004-04-21 devnull *pa = a;
1123 551445b9 2004-04-21 devnull return 0;
1124 551445b9 2004-04-21 devnull Err:
1125 551445b9 2004-04-21 devnull *pa = ea;
1126 551445b9 2004-04-21 devnull return -1;
1127 551445b9 2004-04-21 devnull }
1128 551445b9 2004-04-21 devnull void
1129 551445b9 2004-04-21 devnull nfs3taccessprint(Fmt *fmt, Nfs3TAccess *x)
1130 551445b9 2004-04-21 devnull {
1131 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TAccess");
1132 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1133 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1134 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1135 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "access");
1136 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->access);
1137 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1138 551445b9 2004-04-21 devnull }
1139 551445b9 2004-04-21 devnull uint
1140 551445b9 2004-04-21 devnull nfs3taccesssize(Nfs3TAccess *x)
1141 551445b9 2004-04-21 devnull {
1142 551445b9 2004-04-21 devnull uint a;
1143 551445b9 2004-04-21 devnull USED(x);
1144 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 4;
1145 551445b9 2004-04-21 devnull return a;
1146 551445b9 2004-04-21 devnull }
1147 551445b9 2004-04-21 devnull int
1148 551445b9 2004-04-21 devnull nfs3taccesspack(uchar *a, uchar *ea, uchar **pa, Nfs3TAccess *x)
1149 551445b9 2004-04-21 devnull {
1150 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1151 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->access) < 0) goto Err;
1152 551445b9 2004-04-21 devnull *pa = a;
1153 551445b9 2004-04-21 devnull return 0;
1154 551445b9 2004-04-21 devnull Err:
1155 551445b9 2004-04-21 devnull *pa = ea;
1156 551445b9 2004-04-21 devnull return -1;
1157 551445b9 2004-04-21 devnull }
1158 551445b9 2004-04-21 devnull int
1159 551445b9 2004-04-21 devnull nfs3taccessunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TAccess *x)
1160 551445b9 2004-04-21 devnull {
1161 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1162 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->access) < 0) goto Err;
1163 551445b9 2004-04-21 devnull *pa = a;
1164 551445b9 2004-04-21 devnull return 0;
1165 551445b9 2004-04-21 devnull Err:
1166 551445b9 2004-04-21 devnull *pa = ea;
1167 551445b9 2004-04-21 devnull return -1;
1168 551445b9 2004-04-21 devnull }
1169 551445b9 2004-04-21 devnull void
1170 551445b9 2004-04-21 devnull nfs3raccessprint(Fmt *fmt, Nfs3RAccess *x)
1171 551445b9 2004-04-21 devnull {
1172 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RAccess");
1173 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1174 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1175 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1176 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1177 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1178 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1179 551445b9 2004-04-21 devnull switch(x->haveAttr){
1180 551445b9 2004-04-21 devnull case 1:
1181 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1182 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1183 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1184 551445b9 2004-04-21 devnull break;
1185 551445b9 2004-04-21 devnull }
1186 551445b9 2004-04-21 devnull switch(x->status){
1187 551445b9 2004-04-21 devnull case Nfs3Ok:
1188 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "access");
1189 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->access);
1190 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1191 551445b9 2004-04-21 devnull break;
1192 551445b9 2004-04-21 devnull }
1193 551445b9 2004-04-21 devnull }
1194 551445b9 2004-04-21 devnull uint
1195 551445b9 2004-04-21 devnull nfs3raccesssize(Nfs3RAccess *x)
1196 551445b9 2004-04-21 devnull {
1197 551445b9 2004-04-21 devnull uint a;
1198 551445b9 2004-04-21 devnull USED(x);
1199 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
1200 551445b9 2004-04-21 devnull switch(x->haveAttr){
1201 551445b9 2004-04-21 devnull case 1:
1202 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
1203 551445b9 2004-04-21 devnull break;
1204 551445b9 2004-04-21 devnull }
1205 551445b9 2004-04-21 devnull switch(x->status){
1206 551445b9 2004-04-21 devnull case Nfs3Ok:
1207 551445b9 2004-04-21 devnull a = a + 4;
1208 551445b9 2004-04-21 devnull break;
1209 551445b9 2004-04-21 devnull }
1210 551445b9 2004-04-21 devnull return a;
1211 551445b9 2004-04-21 devnull }
1212 551445b9 2004-04-21 devnull int
1213 551445b9 2004-04-21 devnull nfs3raccesspack(uchar *a, uchar *ea, uchar **pa, Nfs3RAccess *x)
1214 551445b9 2004-04-21 devnull {
1215 551445b9 2004-04-21 devnull int i;
1216 551445b9 2004-04-21 devnull
1217 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1218 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1219 551445b9 2004-04-21 devnull switch(x->haveAttr){
1220 551445b9 2004-04-21 devnull case 1:
1221 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
1222 551445b9 2004-04-21 devnull break;
1223 551445b9 2004-04-21 devnull }
1224 551445b9 2004-04-21 devnull switch(x->status){
1225 551445b9 2004-04-21 devnull case Nfs3Ok:
1226 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->access) < 0) goto Err;
1227 551445b9 2004-04-21 devnull break;
1228 551445b9 2004-04-21 devnull }
1229 551445b9 2004-04-21 devnull *pa = a;
1230 551445b9 2004-04-21 devnull return 0;
1231 551445b9 2004-04-21 devnull Err:
1232 551445b9 2004-04-21 devnull *pa = ea;
1233 551445b9 2004-04-21 devnull return -1;
1234 551445b9 2004-04-21 devnull }
1235 551445b9 2004-04-21 devnull int
1236 551445b9 2004-04-21 devnull nfs3raccessunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RAccess *x)
1237 551445b9 2004-04-21 devnull {
1238 551445b9 2004-04-21 devnull int i;
1239 551445b9 2004-04-21 devnull
1240 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1241 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1242 551445b9 2004-04-21 devnull switch(x->haveAttr){
1243 551445b9 2004-04-21 devnull case 1:
1244 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1245 551445b9 2004-04-21 devnull break;
1246 551445b9 2004-04-21 devnull }
1247 551445b9 2004-04-21 devnull switch(x->status){
1248 551445b9 2004-04-21 devnull case Nfs3Ok:
1249 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->access) < 0) goto Err;
1250 551445b9 2004-04-21 devnull break;
1251 551445b9 2004-04-21 devnull }
1252 551445b9 2004-04-21 devnull *pa = a;
1253 551445b9 2004-04-21 devnull return 0;
1254 551445b9 2004-04-21 devnull Err:
1255 551445b9 2004-04-21 devnull *pa = ea;
1256 551445b9 2004-04-21 devnull return -1;
1257 551445b9 2004-04-21 devnull }
1258 551445b9 2004-04-21 devnull void
1259 551445b9 2004-04-21 devnull nfs3treadlinkprint(Fmt *fmt, Nfs3TReadlink *x)
1260 551445b9 2004-04-21 devnull {
1261 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TReadlink");
1262 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1263 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1264 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1265 551445b9 2004-04-21 devnull }
1266 551445b9 2004-04-21 devnull uint
1267 551445b9 2004-04-21 devnull nfs3treadlinksize(Nfs3TReadlink *x)
1268 551445b9 2004-04-21 devnull {
1269 551445b9 2004-04-21 devnull uint a;
1270 551445b9 2004-04-21 devnull USED(x);
1271 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle);
1272 551445b9 2004-04-21 devnull return a;
1273 551445b9 2004-04-21 devnull }
1274 551445b9 2004-04-21 devnull int
1275 551445b9 2004-04-21 devnull nfs3treadlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadlink *x)
1276 551445b9 2004-04-21 devnull {
1277 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1278 551445b9 2004-04-21 devnull *pa = a;
1279 551445b9 2004-04-21 devnull return 0;
1280 551445b9 2004-04-21 devnull Err:
1281 551445b9 2004-04-21 devnull *pa = ea;
1282 551445b9 2004-04-21 devnull return -1;
1283 551445b9 2004-04-21 devnull }
1284 551445b9 2004-04-21 devnull int
1285 551445b9 2004-04-21 devnull nfs3treadlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadlink *x)
1286 551445b9 2004-04-21 devnull {
1287 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1288 551445b9 2004-04-21 devnull *pa = a;
1289 551445b9 2004-04-21 devnull return 0;
1290 551445b9 2004-04-21 devnull Err:
1291 551445b9 2004-04-21 devnull *pa = ea;
1292 551445b9 2004-04-21 devnull return -1;
1293 551445b9 2004-04-21 devnull }
1294 551445b9 2004-04-21 devnull void
1295 551445b9 2004-04-21 devnull nfs3rreadlinkprint(Fmt *fmt, Nfs3RReadlink *x)
1296 551445b9 2004-04-21 devnull {
1297 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RReadlink");
1298 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1299 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1300 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1301 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1302 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1303 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1304 551445b9 2004-04-21 devnull switch(x->haveAttr){
1305 551445b9 2004-04-21 devnull case 1:
1306 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1307 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1308 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1309 551445b9 2004-04-21 devnull break;
1310 551445b9 2004-04-21 devnull }
1311 551445b9 2004-04-21 devnull switch(x->status){
1312 551445b9 2004-04-21 devnull case Nfs3Ok:
1313 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "data");
1314 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->data);
1315 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1316 551445b9 2004-04-21 devnull break;
1317 551445b9 2004-04-21 devnull }
1318 551445b9 2004-04-21 devnull }
1319 551445b9 2004-04-21 devnull uint
1320 551445b9 2004-04-21 devnull nfs3rreadlinksize(Nfs3RReadlink *x)
1321 551445b9 2004-04-21 devnull {
1322 551445b9 2004-04-21 devnull uint a;
1323 551445b9 2004-04-21 devnull USED(x);
1324 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
1325 551445b9 2004-04-21 devnull switch(x->haveAttr){
1326 551445b9 2004-04-21 devnull case 1:
1327 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
1328 551445b9 2004-04-21 devnull break;
1329 551445b9 2004-04-21 devnull }
1330 551445b9 2004-04-21 devnull switch(x->status){
1331 551445b9 2004-04-21 devnull case Nfs3Ok:
1332 551445b9 2004-04-21 devnull a = a + sunstringsize(x->data);
1333 551445b9 2004-04-21 devnull break;
1334 551445b9 2004-04-21 devnull }
1335 551445b9 2004-04-21 devnull return a;
1336 551445b9 2004-04-21 devnull }
1337 551445b9 2004-04-21 devnull int
1338 551445b9 2004-04-21 devnull nfs3rreadlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadlink *x)
1339 551445b9 2004-04-21 devnull {
1340 551445b9 2004-04-21 devnull int i;
1341 551445b9 2004-04-21 devnull
1342 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1343 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1344 551445b9 2004-04-21 devnull switch(x->haveAttr){
1345 551445b9 2004-04-21 devnull case 1:
1346 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
1347 551445b9 2004-04-21 devnull break;
1348 551445b9 2004-04-21 devnull }
1349 551445b9 2004-04-21 devnull switch(x->status){
1350 551445b9 2004-04-21 devnull case Nfs3Ok:
1351 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->data, -1) < 0) goto Err;
1352 551445b9 2004-04-21 devnull break;
1353 551445b9 2004-04-21 devnull }
1354 551445b9 2004-04-21 devnull *pa = a;
1355 551445b9 2004-04-21 devnull return 0;
1356 551445b9 2004-04-21 devnull Err:
1357 551445b9 2004-04-21 devnull *pa = ea;
1358 551445b9 2004-04-21 devnull return -1;
1359 551445b9 2004-04-21 devnull }
1360 551445b9 2004-04-21 devnull int
1361 551445b9 2004-04-21 devnull nfs3rreadlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadlink *x)
1362 551445b9 2004-04-21 devnull {
1363 551445b9 2004-04-21 devnull int i;
1364 551445b9 2004-04-21 devnull
1365 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1366 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1367 551445b9 2004-04-21 devnull switch(x->haveAttr){
1368 551445b9 2004-04-21 devnull case 1:
1369 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1370 551445b9 2004-04-21 devnull break;
1371 551445b9 2004-04-21 devnull }
1372 551445b9 2004-04-21 devnull switch(x->status){
1373 551445b9 2004-04-21 devnull case Nfs3Ok:
1374 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->data, -1) < 0) goto Err;
1375 551445b9 2004-04-21 devnull break;
1376 551445b9 2004-04-21 devnull }
1377 551445b9 2004-04-21 devnull *pa = a;
1378 551445b9 2004-04-21 devnull return 0;
1379 551445b9 2004-04-21 devnull Err:
1380 551445b9 2004-04-21 devnull *pa = ea;
1381 551445b9 2004-04-21 devnull return -1;
1382 551445b9 2004-04-21 devnull }
1383 551445b9 2004-04-21 devnull void
1384 551445b9 2004-04-21 devnull nfs3treadprint(Fmt *fmt, Nfs3TRead *x)
1385 551445b9 2004-04-21 devnull {
1386 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TRead");
1387 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1388 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1389 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1390 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "offset");
1391 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->offset);
1392 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1393 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
1394 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
1395 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1396 551445b9 2004-04-21 devnull }
1397 551445b9 2004-04-21 devnull uint
1398 551445b9 2004-04-21 devnull nfs3treadsize(Nfs3TRead *x)
1399 551445b9 2004-04-21 devnull {
1400 551445b9 2004-04-21 devnull uint a;
1401 551445b9 2004-04-21 devnull USED(x);
1402 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 8 + 4;
1403 551445b9 2004-04-21 devnull return a;
1404 551445b9 2004-04-21 devnull }
1405 551445b9 2004-04-21 devnull int
1406 551445b9 2004-04-21 devnull nfs3treadpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRead *x)
1407 551445b9 2004-04-21 devnull {
1408 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1409 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->offset) < 0) goto Err;
1410 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
1411 551445b9 2004-04-21 devnull *pa = a;
1412 551445b9 2004-04-21 devnull return 0;
1413 551445b9 2004-04-21 devnull Err:
1414 551445b9 2004-04-21 devnull *pa = ea;
1415 551445b9 2004-04-21 devnull return -1;
1416 551445b9 2004-04-21 devnull }
1417 551445b9 2004-04-21 devnull int
1418 551445b9 2004-04-21 devnull nfs3treadunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRead *x)
1419 551445b9 2004-04-21 devnull {
1420 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1421 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->offset) < 0) goto Err;
1422 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
1423 551445b9 2004-04-21 devnull *pa = a;
1424 551445b9 2004-04-21 devnull return 0;
1425 551445b9 2004-04-21 devnull Err:
1426 551445b9 2004-04-21 devnull *pa = ea;
1427 551445b9 2004-04-21 devnull return -1;
1428 551445b9 2004-04-21 devnull }
1429 551445b9 2004-04-21 devnull void
1430 551445b9 2004-04-21 devnull nfs3rreadprint(Fmt *fmt, Nfs3RRead *x)
1431 551445b9 2004-04-21 devnull {
1432 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RRead");
1433 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1434 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1435 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1436 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1437 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1438 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1439 551445b9 2004-04-21 devnull switch(x->haveAttr){
1440 551445b9 2004-04-21 devnull case 1:
1441 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1442 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1443 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1444 551445b9 2004-04-21 devnull break;
1445 551445b9 2004-04-21 devnull }
1446 551445b9 2004-04-21 devnull switch(x->status){
1447 551445b9 2004-04-21 devnull case Nfs3Ok:
1448 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
1449 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
1450 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1451 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "eof");
1452 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->eof);
1453 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1454 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "data");
1455 551445b9 2004-04-21 devnull if(x->ndata <= 32)
1456 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", x->ndata, x->data);
1457 551445b9 2004-04-21 devnull else
1458 551445b9 2004-04-21 devnull fmtprint(fmt, "%.32H...", x->data);
1459 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1460 551445b9 2004-04-21 devnull break;
1461 551445b9 2004-04-21 devnull }
1462 551445b9 2004-04-21 devnull }
1463 551445b9 2004-04-21 devnull uint
1464 551445b9 2004-04-21 devnull nfs3rreadsize(Nfs3RRead *x)
1465 551445b9 2004-04-21 devnull {
1466 551445b9 2004-04-21 devnull uint a;
1467 551445b9 2004-04-21 devnull USED(x);
1468 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
1469 551445b9 2004-04-21 devnull switch(x->haveAttr){
1470 551445b9 2004-04-21 devnull case 1:
1471 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
1472 551445b9 2004-04-21 devnull break;
1473 551445b9 2004-04-21 devnull }
1474 551445b9 2004-04-21 devnull switch(x->status){
1475 551445b9 2004-04-21 devnull case Nfs3Ok:
1476 551445b9 2004-04-21 devnull a = a + 4 + 4 + sunvaropaquesize(x->ndata);
1477 551445b9 2004-04-21 devnull break;
1478 551445b9 2004-04-21 devnull }
1479 551445b9 2004-04-21 devnull return a;
1480 551445b9 2004-04-21 devnull }
1481 551445b9 2004-04-21 devnull int
1482 551445b9 2004-04-21 devnull nfs3rreadpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRead *x)
1483 551445b9 2004-04-21 devnull {
1484 551445b9 2004-04-21 devnull int i;
1485 551445b9 2004-04-21 devnull
1486 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1487 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1488 551445b9 2004-04-21 devnull switch(x->haveAttr){
1489 551445b9 2004-04-21 devnull case 1:
1490 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
1491 551445b9 2004-04-21 devnull break;
1492 551445b9 2004-04-21 devnull }
1493 551445b9 2004-04-21 devnull switch(x->status){
1494 551445b9 2004-04-21 devnull case Nfs3Ok:
1495 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
1496 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->eof) < 0) goto Err;
1497 551445b9 2004-04-21 devnull if(sunvaropaquepack(a, ea, &a, &x->data, &x->ndata, x->count) < 0) goto Err;
1498 551445b9 2004-04-21 devnull break;
1499 551445b9 2004-04-21 devnull }
1500 551445b9 2004-04-21 devnull *pa = a;
1501 551445b9 2004-04-21 devnull return 0;
1502 551445b9 2004-04-21 devnull Err:
1503 551445b9 2004-04-21 devnull *pa = ea;
1504 551445b9 2004-04-21 devnull return -1;
1505 551445b9 2004-04-21 devnull }
1506 551445b9 2004-04-21 devnull int
1507 551445b9 2004-04-21 devnull nfs3rreadunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRead *x)
1508 551445b9 2004-04-21 devnull {
1509 551445b9 2004-04-21 devnull int i;
1510 551445b9 2004-04-21 devnull
1511 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1512 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1513 551445b9 2004-04-21 devnull switch(x->haveAttr){
1514 551445b9 2004-04-21 devnull case 1:
1515 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1516 551445b9 2004-04-21 devnull break;
1517 551445b9 2004-04-21 devnull }
1518 551445b9 2004-04-21 devnull switch(x->status){
1519 551445b9 2004-04-21 devnull case Nfs3Ok:
1520 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
1521 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->eof) < 0) goto Err;
1522 551445b9 2004-04-21 devnull if(sunvaropaqueunpack(a, ea, &a, &x->data, &x->ndata, x->count) < 0) goto Err;
1523 551445b9 2004-04-21 devnull break;
1524 551445b9 2004-04-21 devnull }
1525 551445b9 2004-04-21 devnull *pa = a;
1526 551445b9 2004-04-21 devnull return 0;
1527 551445b9 2004-04-21 devnull Err:
1528 551445b9 2004-04-21 devnull *pa = ea;
1529 551445b9 2004-04-21 devnull return -1;
1530 551445b9 2004-04-21 devnull }
1531 551445b9 2004-04-21 devnull char*
1532 551445b9 2004-04-21 devnull nfs3syncstr(Nfs3Sync x)
1533 551445b9 2004-04-21 devnull {
1534 551445b9 2004-04-21 devnull switch(x){
1535 551445b9 2004-04-21 devnull case Nfs3SyncNone:
1536 551445b9 2004-04-21 devnull return "Nfs3SyncNone";
1537 551445b9 2004-04-21 devnull case Nfs3SyncData:
1538 551445b9 2004-04-21 devnull return "Nfs3SyncData";
1539 551445b9 2004-04-21 devnull case Nfs3SyncFile:
1540 551445b9 2004-04-21 devnull return "Nfs3SyncFile";
1541 551445b9 2004-04-21 devnull default:
1542 551445b9 2004-04-21 devnull return "unknown";
1543 551445b9 2004-04-21 devnull }
1544 551445b9 2004-04-21 devnull }
1545 551445b9 2004-04-21 devnull
1546 551445b9 2004-04-21 devnull void
1547 551445b9 2004-04-21 devnull nfs3twriteprint(Fmt *fmt, Nfs3TWrite *x)
1548 551445b9 2004-04-21 devnull {
1549 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TWrite");
1550 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "file");
1551 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1552 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1553 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "offset");
1554 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->offset);
1555 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1556 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
1557 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
1558 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1559 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "stable");
1560 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3syncstr(x->stable));
1561 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1562 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "data");
1563 551445b9 2004-04-21 devnull if(x->ndata > 32)
1564 551445b9 2004-04-21 devnull fmtprint(fmt, "%.32H... (%d)", x->data, x->ndata);
1565 551445b9 2004-04-21 devnull else
1566 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", x->ndata, x->data);
1567 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1568 551445b9 2004-04-21 devnull }
1569 551445b9 2004-04-21 devnull uint
1570 551445b9 2004-04-21 devnull nfs3twritesize(Nfs3TWrite *x)
1571 551445b9 2004-04-21 devnull {
1572 551445b9 2004-04-21 devnull uint a;
1573 551445b9 2004-04-21 devnull USED(x);
1574 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 8 + 4 + 4 + sunvaropaquesize(x->ndata);
1575 551445b9 2004-04-21 devnull return a;
1576 551445b9 2004-04-21 devnull }
1577 551445b9 2004-04-21 devnull int
1578 551445b9 2004-04-21 devnull nfs3twritepack(uchar *a, uchar *ea, uchar **pa, Nfs3TWrite *x)
1579 551445b9 2004-04-21 devnull {
1580 551445b9 2004-04-21 devnull int i;
1581 551445b9 2004-04-21 devnull
1582 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1583 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->offset) < 0) goto Err;
1584 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
1585 551445b9 2004-04-21 devnull if(i=x->stable, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1586 551445b9 2004-04-21 devnull if(sunvaropaquepack(a, ea, &a, &x->data, &x->ndata, x->count) < 0) goto Err;
1587 551445b9 2004-04-21 devnull *pa = a;
1588 551445b9 2004-04-21 devnull return 0;
1589 551445b9 2004-04-21 devnull Err:
1590 551445b9 2004-04-21 devnull *pa = ea;
1591 551445b9 2004-04-21 devnull return -1;
1592 551445b9 2004-04-21 devnull }
1593 551445b9 2004-04-21 devnull int
1594 551445b9 2004-04-21 devnull nfs3twriteunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TWrite *x)
1595 551445b9 2004-04-21 devnull {
1596 551445b9 2004-04-21 devnull int i;
1597 551445b9 2004-04-21 devnull
1598 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1599 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->offset) < 0) goto Err;
1600 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
1601 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->stable = i;
1602 551445b9 2004-04-21 devnull if(sunvaropaqueunpack(a, ea, &a, &x->data, &x->ndata, x->count) < 0) goto Err;
1603 551445b9 2004-04-21 devnull *pa = a;
1604 551445b9 2004-04-21 devnull return 0;
1605 551445b9 2004-04-21 devnull Err:
1606 551445b9 2004-04-21 devnull *pa = ea;
1607 551445b9 2004-04-21 devnull return -1;
1608 551445b9 2004-04-21 devnull }
1609 551445b9 2004-04-21 devnull void
1610 551445b9 2004-04-21 devnull nfs3rwriteprint(Fmt *fmt, Nfs3RWrite *x)
1611 551445b9 2004-04-21 devnull {
1612 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RWrite");
1613 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1614 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1615 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1616 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wcc");
1617 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->wcc);
1618 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1619 551445b9 2004-04-21 devnull switch(x->status){
1620 551445b9 2004-04-21 devnull case Nfs3Ok:
1621 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
1622 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
1623 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1624 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "committed");
1625 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3syncstr(x->committed));
1626 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1627 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
1628 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3WriteVerfSize, x->verf);
1629 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1630 551445b9 2004-04-21 devnull break;
1631 551445b9 2004-04-21 devnull }
1632 551445b9 2004-04-21 devnull }
1633 551445b9 2004-04-21 devnull uint
1634 551445b9 2004-04-21 devnull nfs3rwritesize(Nfs3RWrite *x)
1635 551445b9 2004-04-21 devnull {
1636 551445b9 2004-04-21 devnull uint a;
1637 551445b9 2004-04-21 devnull USED(x);
1638 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->wcc);
1639 551445b9 2004-04-21 devnull switch(x->status){
1640 551445b9 2004-04-21 devnull case Nfs3Ok:
1641 551445b9 2004-04-21 devnull a = a + 4 + 4 + Nfs3WriteVerfSize;
1642 551445b9 2004-04-21 devnull break;
1643 551445b9 2004-04-21 devnull }
1644 551445b9 2004-04-21 devnull return a;
1645 551445b9 2004-04-21 devnull }
1646 551445b9 2004-04-21 devnull int
1647 551445b9 2004-04-21 devnull nfs3rwritepack(uchar *a, uchar *ea, uchar **pa, Nfs3RWrite *x)
1648 551445b9 2004-04-21 devnull {
1649 551445b9 2004-04-21 devnull int i;
1650 551445b9 2004-04-21 devnull
1651 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1652 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->wcc) < 0) goto Err;
1653 551445b9 2004-04-21 devnull switch(x->status){
1654 551445b9 2004-04-21 devnull case Nfs3Ok:
1655 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
1656 551445b9 2004-04-21 devnull if(i=x->committed, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1657 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3WriteVerfSize) < 0) goto Err;
1658 551445b9 2004-04-21 devnull break;
1659 551445b9 2004-04-21 devnull }
1660 551445b9 2004-04-21 devnull *pa = a;
1661 551445b9 2004-04-21 devnull return 0;
1662 551445b9 2004-04-21 devnull Err:
1663 551445b9 2004-04-21 devnull *pa = ea;
1664 551445b9 2004-04-21 devnull return -1;
1665 551445b9 2004-04-21 devnull }
1666 551445b9 2004-04-21 devnull int
1667 551445b9 2004-04-21 devnull nfs3rwriteunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RWrite *x)
1668 551445b9 2004-04-21 devnull {
1669 551445b9 2004-04-21 devnull int i;
1670 551445b9 2004-04-21 devnull
1671 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1672 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->wcc) < 0) goto Err;
1673 551445b9 2004-04-21 devnull switch(x->status){
1674 551445b9 2004-04-21 devnull case Nfs3Ok:
1675 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
1676 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->committed = i;
1677 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3WriteVerfSize) < 0) goto Err;
1678 551445b9 2004-04-21 devnull break;
1679 551445b9 2004-04-21 devnull }
1680 551445b9 2004-04-21 devnull *pa = a;
1681 551445b9 2004-04-21 devnull return 0;
1682 551445b9 2004-04-21 devnull Err:
1683 551445b9 2004-04-21 devnull *pa = ea;
1684 551445b9 2004-04-21 devnull return -1;
1685 551445b9 2004-04-21 devnull }
1686 551445b9 2004-04-21 devnull char*
1687 551445b9 2004-04-21 devnull nfs3createstr(Nfs3Create x)
1688 551445b9 2004-04-21 devnull {
1689 551445b9 2004-04-21 devnull switch(x){
1690 551445b9 2004-04-21 devnull case Nfs3CreateUnchecked:
1691 551445b9 2004-04-21 devnull return "Nfs3CreateUnchecked";
1692 551445b9 2004-04-21 devnull case Nfs3CreateGuarded:
1693 551445b9 2004-04-21 devnull return "Nfs3CreateGuarded";
1694 551445b9 2004-04-21 devnull case Nfs3CreateExclusive:
1695 551445b9 2004-04-21 devnull return "Nfs3CreateExclusive";
1696 551445b9 2004-04-21 devnull default:
1697 551445b9 2004-04-21 devnull return "unknown";
1698 551445b9 2004-04-21 devnull }
1699 551445b9 2004-04-21 devnull }
1700 551445b9 2004-04-21 devnull
1701 551445b9 2004-04-21 devnull void
1702 551445b9 2004-04-21 devnull nfs3tcreateprint(Fmt *fmt, Nfs3TCreate *x)
1703 551445b9 2004-04-21 devnull {
1704 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TCreate");
1705 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1706 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1707 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1708 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
1709 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
1710 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1711 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "mode");
1712 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3createstr(x->mode));
1713 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1714 551445b9 2004-04-21 devnull switch(x->mode){
1715 551445b9 2004-04-21 devnull case Nfs3CreateUnchecked:
1716 551445b9 2004-04-21 devnull case Nfs3CreateGuarded:
1717 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1718 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
1719 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1720 551445b9 2004-04-21 devnull break;
1721 551445b9 2004-04-21 devnull case Nfs3CreateExclusive:
1722 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
1723 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3CreateVerfSize, x->verf);
1724 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1725 551445b9 2004-04-21 devnull break;
1726 551445b9 2004-04-21 devnull }
1727 551445b9 2004-04-21 devnull }
1728 551445b9 2004-04-21 devnull uint
1729 551445b9 2004-04-21 devnull nfs3tcreatesize(Nfs3TCreate *x)
1730 551445b9 2004-04-21 devnull {
1731 551445b9 2004-04-21 devnull uint a;
1732 551445b9 2004-04-21 devnull USED(x);
1733 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name) + 4;
1734 551445b9 2004-04-21 devnull switch(x->mode){
1735 551445b9 2004-04-21 devnull case Nfs3CreateUnchecked:
1736 551445b9 2004-04-21 devnull case Nfs3CreateGuarded:
1737 551445b9 2004-04-21 devnull a = a + nfs3setattrsize(&x->attr);
1738 551445b9 2004-04-21 devnull break;
1739 551445b9 2004-04-21 devnull case Nfs3CreateExclusive:
1740 551445b9 2004-04-21 devnull a = a + Nfs3CreateVerfSize;
1741 551445b9 2004-04-21 devnull break;
1742 551445b9 2004-04-21 devnull }
1743 551445b9 2004-04-21 devnull return a;
1744 551445b9 2004-04-21 devnull }
1745 551445b9 2004-04-21 devnull int
1746 551445b9 2004-04-21 devnull nfs3tcreatepack(uchar *a, uchar *ea, uchar **pa, Nfs3TCreate *x)
1747 551445b9 2004-04-21 devnull {
1748 551445b9 2004-04-21 devnull int i;
1749 551445b9 2004-04-21 devnull
1750 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1751 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
1752 551445b9 2004-04-21 devnull if(i=x->mode, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1753 551445b9 2004-04-21 devnull switch(x->mode){
1754 551445b9 2004-04-21 devnull case Nfs3CreateUnchecked:
1755 551445b9 2004-04-21 devnull case Nfs3CreateGuarded:
1756 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
1757 551445b9 2004-04-21 devnull break;
1758 551445b9 2004-04-21 devnull case Nfs3CreateExclusive:
1759 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3CreateVerfSize) < 0) goto Err;
1760 551445b9 2004-04-21 devnull break;
1761 551445b9 2004-04-21 devnull }
1762 551445b9 2004-04-21 devnull *pa = a;
1763 551445b9 2004-04-21 devnull return 0;
1764 551445b9 2004-04-21 devnull Err:
1765 551445b9 2004-04-21 devnull *pa = ea;
1766 551445b9 2004-04-21 devnull return -1;
1767 551445b9 2004-04-21 devnull }
1768 551445b9 2004-04-21 devnull int
1769 551445b9 2004-04-21 devnull nfs3tcreateunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TCreate *x)
1770 551445b9 2004-04-21 devnull {
1771 551445b9 2004-04-21 devnull int i;
1772 551445b9 2004-04-21 devnull
1773 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1774 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
1775 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->mode = i;
1776 551445b9 2004-04-21 devnull switch(x->mode){
1777 551445b9 2004-04-21 devnull case Nfs3CreateUnchecked:
1778 551445b9 2004-04-21 devnull case Nfs3CreateGuarded:
1779 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1780 551445b9 2004-04-21 devnull break;
1781 551445b9 2004-04-21 devnull case Nfs3CreateExclusive:
1782 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3CreateVerfSize) < 0) goto Err;
1783 551445b9 2004-04-21 devnull break;
1784 551445b9 2004-04-21 devnull }
1785 551445b9 2004-04-21 devnull *pa = a;
1786 551445b9 2004-04-21 devnull return 0;
1787 551445b9 2004-04-21 devnull Err:
1788 551445b9 2004-04-21 devnull *pa = ea;
1789 551445b9 2004-04-21 devnull return -1;
1790 551445b9 2004-04-21 devnull }
1791 551445b9 2004-04-21 devnull void
1792 551445b9 2004-04-21 devnull nfs3rcreateprint(Fmt *fmt, Nfs3RCreate *x)
1793 551445b9 2004-04-21 devnull {
1794 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RCreate");
1795 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1796 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1797 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1798 551445b9 2004-04-21 devnull switch(x->status){
1799 551445b9 2004-04-21 devnull case Nfs3Ok:
1800 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveHandle");
1801 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveHandle);
1802 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1803 551445b9 2004-04-21 devnull switch(x->haveHandle){
1804 551445b9 2004-04-21 devnull case 1:
1805 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1806 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1807 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1808 551445b9 2004-04-21 devnull break;
1809 551445b9 2004-04-21 devnull }
1810 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1811 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1812 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1813 551445b9 2004-04-21 devnull switch(x->haveAttr){
1814 551445b9 2004-04-21 devnull case 1:
1815 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1816 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1817 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1818 551445b9 2004-04-21 devnull break;
1819 551445b9 2004-04-21 devnull }
1820 551445b9 2004-04-21 devnull break;
1821 551445b9 2004-04-21 devnull }
1822 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirWcc");
1823 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->dirWcc);
1824 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1825 551445b9 2004-04-21 devnull }
1826 551445b9 2004-04-21 devnull uint
1827 551445b9 2004-04-21 devnull nfs3rcreatesize(Nfs3RCreate *x)
1828 551445b9 2004-04-21 devnull {
1829 551445b9 2004-04-21 devnull uint a;
1830 551445b9 2004-04-21 devnull USED(x);
1831 551445b9 2004-04-21 devnull a = 0 + 4;
1832 551445b9 2004-04-21 devnull switch(x->status){
1833 551445b9 2004-04-21 devnull case Nfs3Ok:
1834 551445b9 2004-04-21 devnull a = a + 4;
1835 551445b9 2004-04-21 devnull switch(x->haveHandle){
1836 551445b9 2004-04-21 devnull case 1:
1837 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle);
1838 551445b9 2004-04-21 devnull break;
1839 551445b9 2004-04-21 devnull }
1840 551445b9 2004-04-21 devnull a = a + 4;
1841 551445b9 2004-04-21 devnull switch(x->haveAttr){
1842 551445b9 2004-04-21 devnull case 1:
1843 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
1844 551445b9 2004-04-21 devnull break;
1845 551445b9 2004-04-21 devnull }
1846 551445b9 2004-04-21 devnull break;
1847 551445b9 2004-04-21 devnull }
1848 551445b9 2004-04-21 devnull a = a + nfs3wccsize(&x->dirWcc);
1849 551445b9 2004-04-21 devnull return a;
1850 551445b9 2004-04-21 devnull }
1851 551445b9 2004-04-21 devnull int
1852 551445b9 2004-04-21 devnull nfs3rcreatepack(uchar *a, uchar *ea, uchar **pa, Nfs3RCreate *x)
1853 551445b9 2004-04-21 devnull {
1854 551445b9 2004-04-21 devnull int i;
1855 551445b9 2004-04-21 devnull
1856 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
1857 551445b9 2004-04-21 devnull switch(x->status){
1858 551445b9 2004-04-21 devnull case Nfs3Ok:
1859 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveHandle) < 0) goto Err;
1860 551445b9 2004-04-21 devnull switch(x->haveHandle){
1861 551445b9 2004-04-21 devnull case 1:
1862 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1863 551445b9 2004-04-21 devnull break;
1864 551445b9 2004-04-21 devnull }
1865 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1866 551445b9 2004-04-21 devnull switch(x->haveAttr){
1867 551445b9 2004-04-21 devnull case 1:
1868 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
1869 551445b9 2004-04-21 devnull break;
1870 551445b9 2004-04-21 devnull }
1871 551445b9 2004-04-21 devnull break;
1872 551445b9 2004-04-21 devnull }
1873 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
1874 551445b9 2004-04-21 devnull *pa = a;
1875 551445b9 2004-04-21 devnull return 0;
1876 551445b9 2004-04-21 devnull Err:
1877 551445b9 2004-04-21 devnull *pa = ea;
1878 551445b9 2004-04-21 devnull return -1;
1879 551445b9 2004-04-21 devnull }
1880 551445b9 2004-04-21 devnull int
1881 551445b9 2004-04-21 devnull nfs3rcreateunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RCreate *x)
1882 551445b9 2004-04-21 devnull {
1883 551445b9 2004-04-21 devnull int i;
1884 551445b9 2004-04-21 devnull
1885 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
1886 551445b9 2004-04-21 devnull switch(x->status){
1887 551445b9 2004-04-21 devnull case Nfs3Ok:
1888 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveHandle) < 0) goto Err;
1889 551445b9 2004-04-21 devnull switch(x->haveHandle){
1890 551445b9 2004-04-21 devnull case 1:
1891 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1892 551445b9 2004-04-21 devnull break;
1893 551445b9 2004-04-21 devnull }
1894 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
1895 551445b9 2004-04-21 devnull switch(x->haveAttr){
1896 551445b9 2004-04-21 devnull case 1:
1897 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1898 551445b9 2004-04-21 devnull break;
1899 551445b9 2004-04-21 devnull }
1900 551445b9 2004-04-21 devnull break;
1901 551445b9 2004-04-21 devnull }
1902 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
1903 551445b9 2004-04-21 devnull *pa = a;
1904 551445b9 2004-04-21 devnull return 0;
1905 551445b9 2004-04-21 devnull Err:
1906 551445b9 2004-04-21 devnull *pa = ea;
1907 551445b9 2004-04-21 devnull return -1;
1908 551445b9 2004-04-21 devnull }
1909 551445b9 2004-04-21 devnull void
1910 551445b9 2004-04-21 devnull nfs3tmkdirprint(Fmt *fmt, Nfs3TMkdir *x)
1911 551445b9 2004-04-21 devnull {
1912 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TMkdir");
1913 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1914 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1915 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1916 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
1917 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
1918 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1919 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1920 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
1921 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1922 551445b9 2004-04-21 devnull }
1923 551445b9 2004-04-21 devnull uint
1924 551445b9 2004-04-21 devnull nfs3tmkdirsize(Nfs3TMkdir *x)
1925 551445b9 2004-04-21 devnull {
1926 551445b9 2004-04-21 devnull uint a;
1927 551445b9 2004-04-21 devnull USED(x);
1928 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name) + nfs3setattrsize(&x->attr);
1929 551445b9 2004-04-21 devnull return a;
1930 551445b9 2004-04-21 devnull }
1931 551445b9 2004-04-21 devnull int
1932 551445b9 2004-04-21 devnull nfs3tmkdirpack(uchar *a, uchar *ea, uchar **pa, Nfs3TMkdir *x)
1933 551445b9 2004-04-21 devnull {
1934 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
1935 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
1936 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
1937 551445b9 2004-04-21 devnull *pa = a;
1938 551445b9 2004-04-21 devnull return 0;
1939 551445b9 2004-04-21 devnull Err:
1940 551445b9 2004-04-21 devnull *pa = ea;
1941 551445b9 2004-04-21 devnull return -1;
1942 551445b9 2004-04-21 devnull }
1943 551445b9 2004-04-21 devnull int
1944 551445b9 2004-04-21 devnull nfs3tmkdirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TMkdir *x)
1945 551445b9 2004-04-21 devnull {
1946 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
1947 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
1948 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
1949 551445b9 2004-04-21 devnull *pa = a;
1950 551445b9 2004-04-21 devnull return 0;
1951 551445b9 2004-04-21 devnull Err:
1952 551445b9 2004-04-21 devnull *pa = ea;
1953 551445b9 2004-04-21 devnull return -1;
1954 551445b9 2004-04-21 devnull }
1955 551445b9 2004-04-21 devnull void
1956 551445b9 2004-04-21 devnull nfs3rmkdirprint(Fmt *fmt, Nfs3RMkdir *x)
1957 551445b9 2004-04-21 devnull {
1958 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RMkdir");
1959 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
1960 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
1961 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1962 551445b9 2004-04-21 devnull switch(x->status){
1963 551445b9 2004-04-21 devnull case Nfs3Ok:
1964 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveHandle");
1965 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveHandle);
1966 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1967 551445b9 2004-04-21 devnull switch(x->haveHandle){
1968 551445b9 2004-04-21 devnull case 1:
1969 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
1970 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
1971 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1972 551445b9 2004-04-21 devnull break;
1973 551445b9 2004-04-21 devnull }
1974 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
1975 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
1976 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1977 551445b9 2004-04-21 devnull switch(x->haveAttr){
1978 551445b9 2004-04-21 devnull case 1:
1979 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
1980 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
1981 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1982 551445b9 2004-04-21 devnull break;
1983 551445b9 2004-04-21 devnull }
1984 551445b9 2004-04-21 devnull break;
1985 551445b9 2004-04-21 devnull }
1986 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirWcc");
1987 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->dirWcc);
1988 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
1989 551445b9 2004-04-21 devnull }
1990 551445b9 2004-04-21 devnull uint
1991 551445b9 2004-04-21 devnull nfs3rmkdirsize(Nfs3RMkdir *x)
1992 551445b9 2004-04-21 devnull {
1993 551445b9 2004-04-21 devnull uint a;
1994 551445b9 2004-04-21 devnull USED(x);
1995 551445b9 2004-04-21 devnull a = 0 + 4;
1996 551445b9 2004-04-21 devnull switch(x->status){
1997 551445b9 2004-04-21 devnull case Nfs3Ok:
1998 551445b9 2004-04-21 devnull a = a + 4;
1999 551445b9 2004-04-21 devnull switch(x->haveHandle){
2000 551445b9 2004-04-21 devnull case 1:
2001 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle);
2002 551445b9 2004-04-21 devnull break;
2003 551445b9 2004-04-21 devnull }
2004 551445b9 2004-04-21 devnull a = a + 4;
2005 551445b9 2004-04-21 devnull switch(x->haveAttr){
2006 551445b9 2004-04-21 devnull case 1:
2007 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
2008 551445b9 2004-04-21 devnull break;
2009 551445b9 2004-04-21 devnull }
2010 551445b9 2004-04-21 devnull break;
2011 551445b9 2004-04-21 devnull }
2012 551445b9 2004-04-21 devnull a = a + nfs3wccsize(&x->dirWcc);
2013 551445b9 2004-04-21 devnull return a;
2014 551445b9 2004-04-21 devnull }
2015 551445b9 2004-04-21 devnull int
2016 551445b9 2004-04-21 devnull nfs3rmkdirpack(uchar *a, uchar *ea, uchar **pa, Nfs3RMkdir *x)
2017 551445b9 2004-04-21 devnull {
2018 551445b9 2004-04-21 devnull int i;
2019 551445b9 2004-04-21 devnull
2020 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2021 551445b9 2004-04-21 devnull switch(x->status){
2022 551445b9 2004-04-21 devnull case Nfs3Ok:
2023 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2024 551445b9 2004-04-21 devnull switch(x->haveHandle){
2025 551445b9 2004-04-21 devnull case 1:
2026 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2027 551445b9 2004-04-21 devnull break;
2028 551445b9 2004-04-21 devnull }
2029 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2030 551445b9 2004-04-21 devnull switch(x->haveAttr){
2031 551445b9 2004-04-21 devnull case 1:
2032 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
2033 551445b9 2004-04-21 devnull break;
2034 551445b9 2004-04-21 devnull }
2035 551445b9 2004-04-21 devnull break;
2036 551445b9 2004-04-21 devnull }
2037 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2038 551445b9 2004-04-21 devnull *pa = a;
2039 551445b9 2004-04-21 devnull return 0;
2040 551445b9 2004-04-21 devnull Err:
2041 551445b9 2004-04-21 devnull *pa = ea;
2042 551445b9 2004-04-21 devnull return -1;
2043 551445b9 2004-04-21 devnull }
2044 551445b9 2004-04-21 devnull int
2045 551445b9 2004-04-21 devnull nfs3rmkdirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RMkdir *x)
2046 551445b9 2004-04-21 devnull {
2047 551445b9 2004-04-21 devnull int i;
2048 551445b9 2004-04-21 devnull
2049 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2050 551445b9 2004-04-21 devnull switch(x->status){
2051 551445b9 2004-04-21 devnull case Nfs3Ok:
2052 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2053 551445b9 2004-04-21 devnull switch(x->haveHandle){
2054 551445b9 2004-04-21 devnull case 1:
2055 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2056 551445b9 2004-04-21 devnull break;
2057 551445b9 2004-04-21 devnull }
2058 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2059 551445b9 2004-04-21 devnull switch(x->haveAttr){
2060 551445b9 2004-04-21 devnull case 1:
2061 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2062 551445b9 2004-04-21 devnull break;
2063 551445b9 2004-04-21 devnull }
2064 551445b9 2004-04-21 devnull break;
2065 551445b9 2004-04-21 devnull }
2066 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2067 551445b9 2004-04-21 devnull *pa = a;
2068 551445b9 2004-04-21 devnull return 0;
2069 551445b9 2004-04-21 devnull Err:
2070 551445b9 2004-04-21 devnull *pa = ea;
2071 551445b9 2004-04-21 devnull return -1;
2072 551445b9 2004-04-21 devnull }
2073 551445b9 2004-04-21 devnull void
2074 551445b9 2004-04-21 devnull nfs3tsymlinkprint(Fmt *fmt, Nfs3TSymlink *x)
2075 551445b9 2004-04-21 devnull {
2076 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TSymlink");
2077 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2078 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2079 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2080 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
2081 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
2082 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2083 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2084 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
2085 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2086 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "data");
2087 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->data);
2088 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2089 551445b9 2004-04-21 devnull }
2090 551445b9 2004-04-21 devnull uint
2091 551445b9 2004-04-21 devnull nfs3tsymlinksize(Nfs3TSymlink *x)
2092 551445b9 2004-04-21 devnull {
2093 551445b9 2004-04-21 devnull uint a;
2094 551445b9 2004-04-21 devnull USED(x);
2095 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name) + nfs3setattrsize(&x->attr) + sunstringsize(x->data);
2096 551445b9 2004-04-21 devnull return a;
2097 551445b9 2004-04-21 devnull }
2098 551445b9 2004-04-21 devnull int
2099 551445b9 2004-04-21 devnull nfs3tsymlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3TSymlink *x)
2100 551445b9 2004-04-21 devnull {
2101 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2102 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2103 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
2104 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->data, -1) < 0) goto Err;
2105 551445b9 2004-04-21 devnull *pa = a;
2106 551445b9 2004-04-21 devnull return 0;
2107 551445b9 2004-04-21 devnull Err:
2108 551445b9 2004-04-21 devnull *pa = ea;
2109 551445b9 2004-04-21 devnull return -1;
2110 551445b9 2004-04-21 devnull }
2111 551445b9 2004-04-21 devnull int
2112 551445b9 2004-04-21 devnull nfs3tsymlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TSymlink *x)
2113 551445b9 2004-04-21 devnull {
2114 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2115 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2116 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2117 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->data, -1) < 0) goto Err;
2118 551445b9 2004-04-21 devnull *pa = a;
2119 551445b9 2004-04-21 devnull return 0;
2120 551445b9 2004-04-21 devnull Err:
2121 551445b9 2004-04-21 devnull *pa = ea;
2122 551445b9 2004-04-21 devnull return -1;
2123 551445b9 2004-04-21 devnull }
2124 551445b9 2004-04-21 devnull void
2125 551445b9 2004-04-21 devnull nfs3rsymlinkprint(Fmt *fmt, Nfs3RSymlink *x)
2126 551445b9 2004-04-21 devnull {
2127 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RSymlink");
2128 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2129 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2130 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2131 551445b9 2004-04-21 devnull switch(x->status){
2132 551445b9 2004-04-21 devnull case Nfs3Ok:
2133 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveHandle");
2134 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveHandle);
2135 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2136 551445b9 2004-04-21 devnull switch(x->haveHandle){
2137 551445b9 2004-04-21 devnull case 1:
2138 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2139 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2140 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2141 551445b9 2004-04-21 devnull break;
2142 551445b9 2004-04-21 devnull }
2143 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
2144 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
2145 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2146 551445b9 2004-04-21 devnull switch(x->haveAttr){
2147 551445b9 2004-04-21 devnull case 1:
2148 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2149 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
2150 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2151 551445b9 2004-04-21 devnull break;
2152 551445b9 2004-04-21 devnull }
2153 551445b9 2004-04-21 devnull break;
2154 551445b9 2004-04-21 devnull }
2155 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirWcc");
2156 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->dirWcc);
2157 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2158 551445b9 2004-04-21 devnull }
2159 551445b9 2004-04-21 devnull uint
2160 551445b9 2004-04-21 devnull nfs3rsymlinksize(Nfs3RSymlink *x)
2161 551445b9 2004-04-21 devnull {
2162 551445b9 2004-04-21 devnull uint a;
2163 551445b9 2004-04-21 devnull USED(x);
2164 551445b9 2004-04-21 devnull a = 0 + 4;
2165 551445b9 2004-04-21 devnull switch(x->status){
2166 551445b9 2004-04-21 devnull case Nfs3Ok:
2167 551445b9 2004-04-21 devnull a = a + 4;
2168 551445b9 2004-04-21 devnull switch(x->haveHandle){
2169 551445b9 2004-04-21 devnull case 1:
2170 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle);
2171 551445b9 2004-04-21 devnull break;
2172 551445b9 2004-04-21 devnull }
2173 551445b9 2004-04-21 devnull a = a + 4;
2174 551445b9 2004-04-21 devnull switch(x->haveAttr){
2175 551445b9 2004-04-21 devnull case 1:
2176 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
2177 551445b9 2004-04-21 devnull break;
2178 551445b9 2004-04-21 devnull }
2179 551445b9 2004-04-21 devnull break;
2180 551445b9 2004-04-21 devnull }
2181 551445b9 2004-04-21 devnull a = a + nfs3wccsize(&x->dirWcc);
2182 551445b9 2004-04-21 devnull return a;
2183 551445b9 2004-04-21 devnull }
2184 551445b9 2004-04-21 devnull int
2185 551445b9 2004-04-21 devnull nfs3rsymlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3RSymlink *x)
2186 551445b9 2004-04-21 devnull {
2187 551445b9 2004-04-21 devnull int i;
2188 551445b9 2004-04-21 devnull
2189 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2190 551445b9 2004-04-21 devnull switch(x->status){
2191 551445b9 2004-04-21 devnull case Nfs3Ok:
2192 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2193 551445b9 2004-04-21 devnull switch(x->haveHandle){
2194 551445b9 2004-04-21 devnull case 1:
2195 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2196 551445b9 2004-04-21 devnull break;
2197 551445b9 2004-04-21 devnull }
2198 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2199 551445b9 2004-04-21 devnull switch(x->haveAttr){
2200 551445b9 2004-04-21 devnull case 1:
2201 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
2202 551445b9 2004-04-21 devnull break;
2203 551445b9 2004-04-21 devnull }
2204 551445b9 2004-04-21 devnull break;
2205 551445b9 2004-04-21 devnull }
2206 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2207 551445b9 2004-04-21 devnull *pa = a;
2208 551445b9 2004-04-21 devnull return 0;
2209 551445b9 2004-04-21 devnull Err:
2210 551445b9 2004-04-21 devnull *pa = ea;
2211 551445b9 2004-04-21 devnull return -1;
2212 551445b9 2004-04-21 devnull }
2213 551445b9 2004-04-21 devnull int
2214 551445b9 2004-04-21 devnull nfs3rsymlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RSymlink *x)
2215 551445b9 2004-04-21 devnull {
2216 551445b9 2004-04-21 devnull int i;
2217 551445b9 2004-04-21 devnull
2218 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2219 551445b9 2004-04-21 devnull switch(x->status){
2220 551445b9 2004-04-21 devnull case Nfs3Ok:
2221 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2222 551445b9 2004-04-21 devnull switch(x->haveHandle){
2223 551445b9 2004-04-21 devnull case 1:
2224 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2225 551445b9 2004-04-21 devnull break;
2226 551445b9 2004-04-21 devnull }
2227 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2228 551445b9 2004-04-21 devnull switch(x->haveAttr){
2229 551445b9 2004-04-21 devnull case 1:
2230 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2231 551445b9 2004-04-21 devnull break;
2232 551445b9 2004-04-21 devnull }
2233 551445b9 2004-04-21 devnull break;
2234 551445b9 2004-04-21 devnull }
2235 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2236 551445b9 2004-04-21 devnull *pa = a;
2237 551445b9 2004-04-21 devnull return 0;
2238 551445b9 2004-04-21 devnull Err:
2239 551445b9 2004-04-21 devnull *pa = ea;
2240 551445b9 2004-04-21 devnull return -1;
2241 551445b9 2004-04-21 devnull }
2242 551445b9 2004-04-21 devnull void
2243 551445b9 2004-04-21 devnull nfs3tmknodprint(Fmt *fmt, Nfs3TMknod *x)
2244 551445b9 2004-04-21 devnull {
2245 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TMknod");
2246 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2247 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2248 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2249 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
2250 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
2251 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2252 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "type");
2253 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3filetypestr(x->type));
2254 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2255 551445b9 2004-04-21 devnull switch(x->type){
2256 551445b9 2004-04-21 devnull case Nfs3FileChar:
2257 551445b9 2004-04-21 devnull case Nfs3FileBlock:
2258 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2259 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
2260 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2261 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "major");
2262 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->major);
2263 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2264 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "minor");
2265 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->minor);
2266 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2267 551445b9 2004-04-21 devnull break;
2268 551445b9 2004-04-21 devnull case Nfs3FileSocket:
2269 551445b9 2004-04-21 devnull case Nfs3FileFifo:
2270 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2271 551445b9 2004-04-21 devnull nfs3setattrprint(fmt, &x->attr);
2272 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2273 551445b9 2004-04-21 devnull break;
2274 551445b9 2004-04-21 devnull }
2275 551445b9 2004-04-21 devnull }
2276 551445b9 2004-04-21 devnull uint
2277 551445b9 2004-04-21 devnull nfs3tmknodsize(Nfs3TMknod *x)
2278 551445b9 2004-04-21 devnull {
2279 551445b9 2004-04-21 devnull uint a;
2280 551445b9 2004-04-21 devnull USED(x);
2281 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name) + 4;
2282 551445b9 2004-04-21 devnull switch(x->type){
2283 551445b9 2004-04-21 devnull case Nfs3FileChar:
2284 551445b9 2004-04-21 devnull case Nfs3FileBlock:
2285 551445b9 2004-04-21 devnull a = a + nfs3setattrsize(&x->attr) + 4 + 4;
2286 551445b9 2004-04-21 devnull break;
2287 551445b9 2004-04-21 devnull case Nfs3FileSocket:
2288 551445b9 2004-04-21 devnull case Nfs3FileFifo:
2289 551445b9 2004-04-21 devnull a = a + nfs3setattrsize(&x->attr);
2290 551445b9 2004-04-21 devnull break;
2291 551445b9 2004-04-21 devnull }
2292 551445b9 2004-04-21 devnull return a;
2293 551445b9 2004-04-21 devnull }
2294 551445b9 2004-04-21 devnull int
2295 551445b9 2004-04-21 devnull nfs3tmknodpack(uchar *a, uchar *ea, uchar **pa, Nfs3TMknod *x)
2296 551445b9 2004-04-21 devnull {
2297 551445b9 2004-04-21 devnull int i;
2298 551445b9 2004-04-21 devnull
2299 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2300 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2301 551445b9 2004-04-21 devnull if(i=x->type, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2302 551445b9 2004-04-21 devnull switch(x->type){
2303 551445b9 2004-04-21 devnull case Nfs3FileChar:
2304 551445b9 2004-04-21 devnull case Nfs3FileBlock:
2305 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
2306 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->major) < 0) goto Err;
2307 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->minor) < 0) goto Err;
2308 551445b9 2004-04-21 devnull break;
2309 551445b9 2004-04-21 devnull case Nfs3FileSocket:
2310 551445b9 2004-04-21 devnull case Nfs3FileFifo:
2311 551445b9 2004-04-21 devnull if(nfs3setattrpack(a, ea, &a, &x->attr) < 0) goto Err;
2312 551445b9 2004-04-21 devnull break;
2313 551445b9 2004-04-21 devnull }
2314 551445b9 2004-04-21 devnull *pa = a;
2315 551445b9 2004-04-21 devnull return 0;
2316 551445b9 2004-04-21 devnull Err:
2317 551445b9 2004-04-21 devnull *pa = ea;
2318 551445b9 2004-04-21 devnull return -1;
2319 551445b9 2004-04-21 devnull }
2320 551445b9 2004-04-21 devnull int
2321 551445b9 2004-04-21 devnull nfs3tmknodunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TMknod *x)
2322 551445b9 2004-04-21 devnull {
2323 551445b9 2004-04-21 devnull int i;
2324 551445b9 2004-04-21 devnull
2325 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2326 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2327 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->type = i;
2328 551445b9 2004-04-21 devnull switch(x->type){
2329 551445b9 2004-04-21 devnull case Nfs3FileChar:
2330 551445b9 2004-04-21 devnull case Nfs3FileBlock:
2331 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2332 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->major) < 0) goto Err;
2333 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->minor) < 0) goto Err;
2334 551445b9 2004-04-21 devnull break;
2335 551445b9 2004-04-21 devnull case Nfs3FileSocket:
2336 551445b9 2004-04-21 devnull case Nfs3FileFifo:
2337 551445b9 2004-04-21 devnull if(nfs3setattrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2338 551445b9 2004-04-21 devnull break;
2339 551445b9 2004-04-21 devnull }
2340 551445b9 2004-04-21 devnull *pa = a;
2341 551445b9 2004-04-21 devnull return 0;
2342 551445b9 2004-04-21 devnull Err:
2343 551445b9 2004-04-21 devnull *pa = ea;
2344 551445b9 2004-04-21 devnull return -1;
2345 551445b9 2004-04-21 devnull }
2346 551445b9 2004-04-21 devnull void
2347 551445b9 2004-04-21 devnull nfs3rmknodprint(Fmt *fmt, Nfs3RMknod *x)
2348 551445b9 2004-04-21 devnull {
2349 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RMknod");
2350 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2351 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2352 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2353 551445b9 2004-04-21 devnull switch(x->status){
2354 551445b9 2004-04-21 devnull case Nfs3Ok:
2355 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveHandle");
2356 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveHandle);
2357 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2358 551445b9 2004-04-21 devnull switch(x->haveHandle){
2359 551445b9 2004-04-21 devnull case 1:
2360 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2361 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2362 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2363 551445b9 2004-04-21 devnull break;
2364 551445b9 2004-04-21 devnull }
2365 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
2366 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
2367 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2368 551445b9 2004-04-21 devnull switch(x->haveAttr){
2369 551445b9 2004-04-21 devnull case 1:
2370 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2371 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
2372 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2373 551445b9 2004-04-21 devnull break;
2374 551445b9 2004-04-21 devnull }
2375 551445b9 2004-04-21 devnull break;
2376 551445b9 2004-04-21 devnull }
2377 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirWcc");
2378 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->dirWcc);
2379 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2380 551445b9 2004-04-21 devnull }
2381 551445b9 2004-04-21 devnull uint
2382 551445b9 2004-04-21 devnull nfs3rmknodsize(Nfs3RMknod *x)
2383 551445b9 2004-04-21 devnull {
2384 551445b9 2004-04-21 devnull uint a;
2385 551445b9 2004-04-21 devnull USED(x);
2386 551445b9 2004-04-21 devnull a = 0 + 4;
2387 551445b9 2004-04-21 devnull switch(x->status){
2388 551445b9 2004-04-21 devnull case Nfs3Ok:
2389 551445b9 2004-04-21 devnull a = a + 4;
2390 551445b9 2004-04-21 devnull switch(x->haveHandle){
2391 551445b9 2004-04-21 devnull case 1:
2392 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle);
2393 551445b9 2004-04-21 devnull break;
2394 551445b9 2004-04-21 devnull }
2395 551445b9 2004-04-21 devnull a = a + 4;
2396 551445b9 2004-04-21 devnull switch(x->haveAttr){
2397 551445b9 2004-04-21 devnull case 1:
2398 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
2399 551445b9 2004-04-21 devnull break;
2400 551445b9 2004-04-21 devnull }
2401 551445b9 2004-04-21 devnull break;
2402 551445b9 2004-04-21 devnull }
2403 551445b9 2004-04-21 devnull a = a + nfs3wccsize(&x->dirWcc);
2404 551445b9 2004-04-21 devnull return a;
2405 551445b9 2004-04-21 devnull }
2406 551445b9 2004-04-21 devnull int
2407 551445b9 2004-04-21 devnull nfs3rmknodpack(uchar *a, uchar *ea, uchar **pa, Nfs3RMknod *x)
2408 551445b9 2004-04-21 devnull {
2409 551445b9 2004-04-21 devnull int i;
2410 551445b9 2004-04-21 devnull
2411 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2412 551445b9 2004-04-21 devnull switch(x->status){
2413 551445b9 2004-04-21 devnull case Nfs3Ok:
2414 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2415 551445b9 2004-04-21 devnull switch(x->haveHandle){
2416 551445b9 2004-04-21 devnull case 1:
2417 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2418 551445b9 2004-04-21 devnull break;
2419 551445b9 2004-04-21 devnull }
2420 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2421 551445b9 2004-04-21 devnull switch(x->haveAttr){
2422 551445b9 2004-04-21 devnull case 1:
2423 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
2424 551445b9 2004-04-21 devnull break;
2425 551445b9 2004-04-21 devnull }
2426 551445b9 2004-04-21 devnull break;
2427 551445b9 2004-04-21 devnull }
2428 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2429 551445b9 2004-04-21 devnull *pa = a;
2430 551445b9 2004-04-21 devnull return 0;
2431 551445b9 2004-04-21 devnull Err:
2432 551445b9 2004-04-21 devnull *pa = ea;
2433 551445b9 2004-04-21 devnull return -1;
2434 551445b9 2004-04-21 devnull }
2435 551445b9 2004-04-21 devnull int
2436 551445b9 2004-04-21 devnull nfs3rmknodunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RMknod *x)
2437 551445b9 2004-04-21 devnull {
2438 551445b9 2004-04-21 devnull int i;
2439 551445b9 2004-04-21 devnull
2440 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2441 551445b9 2004-04-21 devnull switch(x->status){
2442 551445b9 2004-04-21 devnull case Nfs3Ok:
2443 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveHandle) < 0) goto Err;
2444 551445b9 2004-04-21 devnull switch(x->haveHandle){
2445 551445b9 2004-04-21 devnull case 1:
2446 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2447 551445b9 2004-04-21 devnull break;
2448 551445b9 2004-04-21 devnull }
2449 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2450 551445b9 2004-04-21 devnull switch(x->haveAttr){
2451 551445b9 2004-04-21 devnull case 1:
2452 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2453 551445b9 2004-04-21 devnull break;
2454 551445b9 2004-04-21 devnull }
2455 551445b9 2004-04-21 devnull break;
2456 551445b9 2004-04-21 devnull }
2457 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2458 551445b9 2004-04-21 devnull *pa = a;
2459 551445b9 2004-04-21 devnull return 0;
2460 551445b9 2004-04-21 devnull Err:
2461 551445b9 2004-04-21 devnull *pa = ea;
2462 551445b9 2004-04-21 devnull return -1;
2463 551445b9 2004-04-21 devnull }
2464 551445b9 2004-04-21 devnull void
2465 551445b9 2004-04-21 devnull nfs3tremoveprint(Fmt *fmt, Nfs3TRemove *x)
2466 551445b9 2004-04-21 devnull {
2467 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TRemove");
2468 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2469 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2470 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2471 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
2472 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
2473 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2474 551445b9 2004-04-21 devnull }
2475 551445b9 2004-04-21 devnull uint
2476 551445b9 2004-04-21 devnull nfs3tremovesize(Nfs3TRemove *x)
2477 551445b9 2004-04-21 devnull {
2478 551445b9 2004-04-21 devnull uint a;
2479 551445b9 2004-04-21 devnull USED(x);
2480 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name);
2481 551445b9 2004-04-21 devnull return a;
2482 551445b9 2004-04-21 devnull }
2483 551445b9 2004-04-21 devnull int
2484 551445b9 2004-04-21 devnull nfs3tremovepack(uchar *a, uchar *ea, uchar **pa, Nfs3TRemove *x)
2485 551445b9 2004-04-21 devnull {
2486 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2487 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2488 551445b9 2004-04-21 devnull *pa = a;
2489 551445b9 2004-04-21 devnull return 0;
2490 551445b9 2004-04-21 devnull Err:
2491 551445b9 2004-04-21 devnull *pa = ea;
2492 551445b9 2004-04-21 devnull return -1;
2493 551445b9 2004-04-21 devnull }
2494 551445b9 2004-04-21 devnull int
2495 551445b9 2004-04-21 devnull nfs3tremoveunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRemove *x)
2496 551445b9 2004-04-21 devnull {
2497 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2498 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2499 551445b9 2004-04-21 devnull *pa = a;
2500 551445b9 2004-04-21 devnull return 0;
2501 551445b9 2004-04-21 devnull Err:
2502 551445b9 2004-04-21 devnull *pa = ea;
2503 551445b9 2004-04-21 devnull return -1;
2504 551445b9 2004-04-21 devnull }
2505 551445b9 2004-04-21 devnull void
2506 551445b9 2004-04-21 devnull nfs3rremoveprint(Fmt *fmt, Nfs3RRemove *x)
2507 551445b9 2004-04-21 devnull {
2508 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RRemove");
2509 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2510 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2511 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2512 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wcc");
2513 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->wcc);
2514 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2515 551445b9 2004-04-21 devnull }
2516 551445b9 2004-04-21 devnull uint
2517 551445b9 2004-04-21 devnull nfs3rremovesize(Nfs3RRemove *x)
2518 551445b9 2004-04-21 devnull {
2519 551445b9 2004-04-21 devnull uint a;
2520 551445b9 2004-04-21 devnull USED(x);
2521 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->wcc);
2522 551445b9 2004-04-21 devnull return a;
2523 551445b9 2004-04-21 devnull }
2524 551445b9 2004-04-21 devnull int
2525 551445b9 2004-04-21 devnull nfs3rremovepack(uchar *a, uchar *ea, uchar **pa, Nfs3RRemove *x)
2526 551445b9 2004-04-21 devnull {
2527 551445b9 2004-04-21 devnull int i;
2528 551445b9 2004-04-21 devnull
2529 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2530 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->wcc) < 0) goto Err;
2531 551445b9 2004-04-21 devnull *pa = a;
2532 551445b9 2004-04-21 devnull return 0;
2533 551445b9 2004-04-21 devnull Err:
2534 551445b9 2004-04-21 devnull *pa = ea;
2535 551445b9 2004-04-21 devnull return -1;
2536 551445b9 2004-04-21 devnull }
2537 551445b9 2004-04-21 devnull int
2538 551445b9 2004-04-21 devnull nfs3rremoveunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRemove *x)
2539 551445b9 2004-04-21 devnull {
2540 551445b9 2004-04-21 devnull int i;
2541 551445b9 2004-04-21 devnull
2542 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2543 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->wcc) < 0) goto Err;
2544 551445b9 2004-04-21 devnull *pa = a;
2545 551445b9 2004-04-21 devnull return 0;
2546 551445b9 2004-04-21 devnull Err:
2547 551445b9 2004-04-21 devnull *pa = ea;
2548 551445b9 2004-04-21 devnull return -1;
2549 551445b9 2004-04-21 devnull }
2550 551445b9 2004-04-21 devnull void
2551 551445b9 2004-04-21 devnull nfs3trmdirprint(Fmt *fmt, Nfs3TRmdir *x)
2552 551445b9 2004-04-21 devnull {
2553 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TRmdir");
2554 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2555 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2556 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2557 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
2558 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
2559 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2560 551445b9 2004-04-21 devnull }
2561 551445b9 2004-04-21 devnull uint
2562 551445b9 2004-04-21 devnull nfs3trmdirsize(Nfs3TRmdir *x)
2563 551445b9 2004-04-21 devnull {
2564 551445b9 2004-04-21 devnull uint a;
2565 551445b9 2004-04-21 devnull USED(x);
2566 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + sunstringsize(x->name);
2567 551445b9 2004-04-21 devnull return a;
2568 551445b9 2004-04-21 devnull }
2569 551445b9 2004-04-21 devnull int
2570 551445b9 2004-04-21 devnull nfs3trmdirpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRmdir *x)
2571 551445b9 2004-04-21 devnull {
2572 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2573 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2574 551445b9 2004-04-21 devnull *pa = a;
2575 551445b9 2004-04-21 devnull return 0;
2576 551445b9 2004-04-21 devnull Err:
2577 551445b9 2004-04-21 devnull *pa = ea;
2578 551445b9 2004-04-21 devnull return -1;
2579 551445b9 2004-04-21 devnull }
2580 551445b9 2004-04-21 devnull int
2581 551445b9 2004-04-21 devnull nfs3trmdirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRmdir *x)
2582 551445b9 2004-04-21 devnull {
2583 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2584 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2585 551445b9 2004-04-21 devnull *pa = a;
2586 551445b9 2004-04-21 devnull return 0;
2587 551445b9 2004-04-21 devnull Err:
2588 551445b9 2004-04-21 devnull *pa = ea;
2589 551445b9 2004-04-21 devnull return -1;
2590 551445b9 2004-04-21 devnull }
2591 551445b9 2004-04-21 devnull void
2592 551445b9 2004-04-21 devnull nfs3rrmdirprint(Fmt *fmt, Nfs3RRmdir *x)
2593 551445b9 2004-04-21 devnull {
2594 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RRmdir");
2595 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2596 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2597 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2598 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wcc");
2599 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->wcc);
2600 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2601 551445b9 2004-04-21 devnull }
2602 551445b9 2004-04-21 devnull uint
2603 551445b9 2004-04-21 devnull nfs3rrmdirsize(Nfs3RRmdir *x)
2604 551445b9 2004-04-21 devnull {
2605 551445b9 2004-04-21 devnull uint a;
2606 551445b9 2004-04-21 devnull USED(x);
2607 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->wcc);
2608 551445b9 2004-04-21 devnull return a;
2609 551445b9 2004-04-21 devnull }
2610 551445b9 2004-04-21 devnull int
2611 551445b9 2004-04-21 devnull nfs3rrmdirpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRmdir *x)
2612 551445b9 2004-04-21 devnull {
2613 551445b9 2004-04-21 devnull int i;
2614 551445b9 2004-04-21 devnull
2615 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2616 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->wcc) < 0) goto Err;
2617 551445b9 2004-04-21 devnull *pa = a;
2618 551445b9 2004-04-21 devnull return 0;
2619 551445b9 2004-04-21 devnull Err:
2620 551445b9 2004-04-21 devnull *pa = ea;
2621 551445b9 2004-04-21 devnull return -1;
2622 551445b9 2004-04-21 devnull }
2623 551445b9 2004-04-21 devnull int
2624 551445b9 2004-04-21 devnull nfs3rrmdirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRmdir *x)
2625 551445b9 2004-04-21 devnull {
2626 551445b9 2004-04-21 devnull int i;
2627 551445b9 2004-04-21 devnull
2628 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2629 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->wcc) < 0) goto Err;
2630 551445b9 2004-04-21 devnull *pa = a;
2631 551445b9 2004-04-21 devnull return 0;
2632 551445b9 2004-04-21 devnull Err:
2633 551445b9 2004-04-21 devnull *pa = ea;
2634 551445b9 2004-04-21 devnull return -1;
2635 551445b9 2004-04-21 devnull }
2636 551445b9 2004-04-21 devnull void
2637 551445b9 2004-04-21 devnull nfs3trenameprint(Fmt *fmt, Nfs3TRename *x)
2638 551445b9 2004-04-21 devnull {
2639 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TRename");
2640 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "from");
2641 551445b9 2004-04-21 devnull fmtprint(fmt, "{\n");
2642 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "handle");
2643 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->from.handle);
2644 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2645 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "name");
2646 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->from.name);
2647 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2648 551445b9 2004-04-21 devnull fmtprint(fmt, "\t}");
2649 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2650 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "to");
2651 551445b9 2004-04-21 devnull fmtprint(fmt, "{\n");
2652 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "handle");
2653 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->to.handle);
2654 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2655 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "name");
2656 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->to.name);
2657 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2658 551445b9 2004-04-21 devnull fmtprint(fmt, "\t}");
2659 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2660 551445b9 2004-04-21 devnull }
2661 551445b9 2004-04-21 devnull uint
2662 551445b9 2004-04-21 devnull nfs3trenamesize(Nfs3TRename *x)
2663 551445b9 2004-04-21 devnull {
2664 551445b9 2004-04-21 devnull uint a;
2665 551445b9 2004-04-21 devnull USED(x);
2666 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->from.handle) + sunstringsize(x->from.name) + nfs3handlesize(&x->to.handle) + sunstringsize(x->to.name);
2667 551445b9 2004-04-21 devnull return a;
2668 551445b9 2004-04-21 devnull }
2669 551445b9 2004-04-21 devnull int
2670 551445b9 2004-04-21 devnull nfs3trenamepack(uchar *a, uchar *ea, uchar **pa, Nfs3TRename *x)
2671 551445b9 2004-04-21 devnull {
2672 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->from.handle) < 0) goto Err;
2673 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->from.name, -1) < 0) goto Err;
2674 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->to.handle) < 0) goto Err;
2675 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->to.name, -1) < 0) goto Err;
2676 551445b9 2004-04-21 devnull *pa = a;
2677 551445b9 2004-04-21 devnull return 0;
2678 551445b9 2004-04-21 devnull Err:
2679 551445b9 2004-04-21 devnull *pa = ea;
2680 551445b9 2004-04-21 devnull return -1;
2681 551445b9 2004-04-21 devnull }
2682 551445b9 2004-04-21 devnull int
2683 551445b9 2004-04-21 devnull nfs3trenameunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TRename *x)
2684 551445b9 2004-04-21 devnull {
2685 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->from.handle) < 0) goto Err;
2686 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->from.name, -1) < 0) goto Err;
2687 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->to.handle) < 0) goto Err;
2688 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->to.name, -1) < 0) goto Err;
2689 551445b9 2004-04-21 devnull *pa = a;
2690 551445b9 2004-04-21 devnull return 0;
2691 551445b9 2004-04-21 devnull Err:
2692 551445b9 2004-04-21 devnull *pa = ea;
2693 551445b9 2004-04-21 devnull return -1;
2694 551445b9 2004-04-21 devnull }
2695 551445b9 2004-04-21 devnull void
2696 551445b9 2004-04-21 devnull nfs3rrenameprint(Fmt *fmt, Nfs3RRename *x)
2697 551445b9 2004-04-21 devnull {
2698 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RRename");
2699 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2700 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2701 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2702 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "fromWcc");
2703 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->fromWcc);
2704 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2705 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "toWcc");
2706 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->toWcc);
2707 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2708 551445b9 2004-04-21 devnull }
2709 551445b9 2004-04-21 devnull uint
2710 551445b9 2004-04-21 devnull nfs3rrenamesize(Nfs3RRename *x)
2711 551445b9 2004-04-21 devnull {
2712 551445b9 2004-04-21 devnull uint a;
2713 551445b9 2004-04-21 devnull USED(x);
2714 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->fromWcc) + nfs3wccsize(&x->toWcc);
2715 551445b9 2004-04-21 devnull return a;
2716 551445b9 2004-04-21 devnull }
2717 551445b9 2004-04-21 devnull int
2718 551445b9 2004-04-21 devnull nfs3rrenamepack(uchar *a, uchar *ea, uchar **pa, Nfs3RRename *x)
2719 551445b9 2004-04-21 devnull {
2720 551445b9 2004-04-21 devnull int i;
2721 551445b9 2004-04-21 devnull
2722 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2723 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->fromWcc) < 0) goto Err;
2724 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->toWcc) < 0) goto Err;
2725 551445b9 2004-04-21 devnull *pa = a;
2726 551445b9 2004-04-21 devnull return 0;
2727 551445b9 2004-04-21 devnull Err:
2728 551445b9 2004-04-21 devnull *pa = ea;
2729 551445b9 2004-04-21 devnull return -1;
2730 551445b9 2004-04-21 devnull }
2731 551445b9 2004-04-21 devnull int
2732 551445b9 2004-04-21 devnull nfs3rrenameunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RRename *x)
2733 551445b9 2004-04-21 devnull {
2734 551445b9 2004-04-21 devnull int i;
2735 551445b9 2004-04-21 devnull
2736 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2737 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->fromWcc) < 0) goto Err;
2738 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->toWcc) < 0) goto Err;
2739 551445b9 2004-04-21 devnull *pa = a;
2740 551445b9 2004-04-21 devnull return 0;
2741 551445b9 2004-04-21 devnull Err:
2742 551445b9 2004-04-21 devnull *pa = ea;
2743 551445b9 2004-04-21 devnull return -1;
2744 551445b9 2004-04-21 devnull }
2745 551445b9 2004-04-21 devnull void
2746 551445b9 2004-04-21 devnull nfs3tlinkprint(Fmt *fmt, Nfs3TLink *x)
2747 551445b9 2004-04-21 devnull {
2748 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TLink");
2749 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2750 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2751 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2752 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "link");
2753 551445b9 2004-04-21 devnull fmtprint(fmt, "{\n");
2754 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "handle");
2755 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->link.handle);
2756 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2757 551445b9 2004-04-21 devnull fmtprint(fmt, "\t\t%s=", "name");
2758 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->link.name);
2759 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2760 551445b9 2004-04-21 devnull fmtprint(fmt, "\t}");
2761 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2762 551445b9 2004-04-21 devnull }
2763 551445b9 2004-04-21 devnull uint
2764 551445b9 2004-04-21 devnull nfs3tlinksize(Nfs3TLink *x)
2765 551445b9 2004-04-21 devnull {
2766 551445b9 2004-04-21 devnull uint a;
2767 551445b9 2004-04-21 devnull USED(x);
2768 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + nfs3handlesize(&x->link.handle) + sunstringsize(x->link.name);
2769 551445b9 2004-04-21 devnull return a;
2770 551445b9 2004-04-21 devnull }
2771 551445b9 2004-04-21 devnull int
2772 551445b9 2004-04-21 devnull nfs3tlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3TLink *x)
2773 551445b9 2004-04-21 devnull {
2774 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2775 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->link.handle) < 0) goto Err;
2776 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->link.name, -1) < 0) goto Err;
2777 551445b9 2004-04-21 devnull *pa = a;
2778 551445b9 2004-04-21 devnull return 0;
2779 551445b9 2004-04-21 devnull Err:
2780 551445b9 2004-04-21 devnull *pa = ea;
2781 551445b9 2004-04-21 devnull return -1;
2782 551445b9 2004-04-21 devnull }
2783 551445b9 2004-04-21 devnull int
2784 551445b9 2004-04-21 devnull nfs3tlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TLink *x)
2785 551445b9 2004-04-21 devnull {
2786 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2787 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->link.handle) < 0) goto Err;
2788 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->link.name, -1) < 0) goto Err;
2789 551445b9 2004-04-21 devnull *pa = a;
2790 551445b9 2004-04-21 devnull return 0;
2791 551445b9 2004-04-21 devnull Err:
2792 551445b9 2004-04-21 devnull *pa = ea;
2793 551445b9 2004-04-21 devnull return -1;
2794 551445b9 2004-04-21 devnull }
2795 551445b9 2004-04-21 devnull void
2796 551445b9 2004-04-21 devnull nfs3rlinkprint(Fmt *fmt, Nfs3RLink *x)
2797 551445b9 2004-04-21 devnull {
2798 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RLink");
2799 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2800 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2801 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2802 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
2803 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
2804 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2805 551445b9 2004-04-21 devnull switch(x->haveAttr){
2806 551445b9 2004-04-21 devnull case 1:
2807 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2808 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
2809 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2810 551445b9 2004-04-21 devnull break;
2811 551445b9 2004-04-21 devnull }
2812 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirWcc");
2813 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->dirWcc);
2814 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2815 551445b9 2004-04-21 devnull }
2816 551445b9 2004-04-21 devnull uint
2817 551445b9 2004-04-21 devnull nfs3rlinksize(Nfs3RLink *x)
2818 551445b9 2004-04-21 devnull {
2819 551445b9 2004-04-21 devnull uint a;
2820 551445b9 2004-04-21 devnull USED(x);
2821 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
2822 551445b9 2004-04-21 devnull switch(x->haveAttr){
2823 551445b9 2004-04-21 devnull case 1:
2824 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
2825 551445b9 2004-04-21 devnull break;
2826 551445b9 2004-04-21 devnull }
2827 551445b9 2004-04-21 devnull a = a + nfs3wccsize(&x->dirWcc);
2828 551445b9 2004-04-21 devnull return a;
2829 551445b9 2004-04-21 devnull }
2830 551445b9 2004-04-21 devnull int
2831 551445b9 2004-04-21 devnull nfs3rlinkpack(uchar *a, uchar *ea, uchar **pa, Nfs3RLink *x)
2832 551445b9 2004-04-21 devnull {
2833 551445b9 2004-04-21 devnull int i;
2834 551445b9 2004-04-21 devnull
2835 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
2836 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2837 551445b9 2004-04-21 devnull switch(x->haveAttr){
2838 551445b9 2004-04-21 devnull case 1:
2839 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
2840 551445b9 2004-04-21 devnull break;
2841 551445b9 2004-04-21 devnull }
2842 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2843 551445b9 2004-04-21 devnull *pa = a;
2844 551445b9 2004-04-21 devnull return 0;
2845 551445b9 2004-04-21 devnull Err:
2846 551445b9 2004-04-21 devnull *pa = ea;
2847 551445b9 2004-04-21 devnull return -1;
2848 551445b9 2004-04-21 devnull }
2849 551445b9 2004-04-21 devnull int
2850 551445b9 2004-04-21 devnull nfs3rlinkunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RLink *x)
2851 551445b9 2004-04-21 devnull {
2852 551445b9 2004-04-21 devnull int i;
2853 551445b9 2004-04-21 devnull
2854 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
2855 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
2856 551445b9 2004-04-21 devnull switch(x->haveAttr){
2857 551445b9 2004-04-21 devnull case 1:
2858 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
2859 551445b9 2004-04-21 devnull break;
2860 551445b9 2004-04-21 devnull }
2861 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->dirWcc) < 0) goto Err;
2862 551445b9 2004-04-21 devnull *pa = a;
2863 551445b9 2004-04-21 devnull return 0;
2864 551445b9 2004-04-21 devnull Err:
2865 551445b9 2004-04-21 devnull *pa = ea;
2866 551445b9 2004-04-21 devnull return -1;
2867 551445b9 2004-04-21 devnull }
2868 551445b9 2004-04-21 devnull void
2869 551445b9 2004-04-21 devnull nfs3treaddirprint(Fmt *fmt, Nfs3TReadDir *x)
2870 551445b9 2004-04-21 devnull {
2871 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TReadDir");
2872 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
2873 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
2874 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2875 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "cookie");
2876 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->cookie);
2877 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2878 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
2879 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3CookieVerfSize, x->verf);
2880 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2881 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
2882 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
2883 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2884 551445b9 2004-04-21 devnull }
2885 551445b9 2004-04-21 devnull uint
2886 551445b9 2004-04-21 devnull nfs3treaddirsize(Nfs3TReadDir *x)
2887 551445b9 2004-04-21 devnull {
2888 551445b9 2004-04-21 devnull uint a;
2889 551445b9 2004-04-21 devnull USED(x);
2890 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 8 + Nfs3CookieVerfSize + 4;
2891 551445b9 2004-04-21 devnull return a;
2892 551445b9 2004-04-21 devnull }
2893 551445b9 2004-04-21 devnull int
2894 551445b9 2004-04-21 devnull nfs3treaddirpack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadDir *x)
2895 551445b9 2004-04-21 devnull {
2896 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
2897 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->cookie) < 0) goto Err;
2898 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
2899 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
2900 551445b9 2004-04-21 devnull *pa = a;
2901 551445b9 2004-04-21 devnull return 0;
2902 551445b9 2004-04-21 devnull Err:
2903 551445b9 2004-04-21 devnull *pa = ea;
2904 551445b9 2004-04-21 devnull return -1;
2905 551445b9 2004-04-21 devnull }
2906 551445b9 2004-04-21 devnull int
2907 551445b9 2004-04-21 devnull nfs3treaddirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadDir *x)
2908 551445b9 2004-04-21 devnull {
2909 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
2910 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->cookie) < 0) goto Err;
2911 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
2912 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
2913 551445b9 2004-04-21 devnull *pa = a;
2914 551445b9 2004-04-21 devnull return 0;
2915 551445b9 2004-04-21 devnull Err:
2916 551445b9 2004-04-21 devnull *pa = ea;
2917 551445b9 2004-04-21 devnull return -1;
2918 551445b9 2004-04-21 devnull }
2919 551445b9 2004-04-21 devnull void
2920 551445b9 2004-04-21 devnull nfs3entryprint(Fmt *fmt, Nfs3Entry *x)
2921 551445b9 2004-04-21 devnull {
2922 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3Entry");
2923 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "fileid");
2924 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->fileid);
2925 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2926 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
2927 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
2928 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2929 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "cookie");
2930 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->cookie);
2931 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2932 551445b9 2004-04-21 devnull }
2933 551445b9 2004-04-21 devnull uint
2934 551445b9 2004-04-21 devnull nfs3entrysize(Nfs3Entry *x)
2935 551445b9 2004-04-21 devnull {
2936 551445b9 2004-04-21 devnull uint a;
2937 551445b9 2004-04-21 devnull USED(x);
2938 551445b9 2004-04-21 devnull a = 0 + 4 + 8 + sunstringsize(x->name) + 8;
2939 551445b9 2004-04-21 devnull return a;
2940 886a6f6c 2006-05-04 devnull }
2941 886a6f6c 2006-05-04 devnull static int
2942 886a6f6c 2006-05-04 devnull sunstringvpack(uchar *a, uchar *ea, uchar **pa, char **s, u32int n)
2943 886a6f6c 2006-05-04 devnull {
2944 d7f59903 2006-05-10 devnull return sunvaropaquepack(a, ea, pa, (uchar**)(void*)s, &n, -1);
2945 551445b9 2004-04-21 devnull }
2946 551445b9 2004-04-21 devnull int
2947 551445b9 2004-04-21 devnull nfs3entrypack(uchar *a, uchar *ea, uchar **pa, Nfs3Entry *x)
2948 551445b9 2004-04-21 devnull {
2949 551445b9 2004-04-21 devnull u1int one;
2950 551445b9 2004-04-21 devnull
2951 551445b9 2004-04-21 devnull one = 1;
2952 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &one) < 0) goto Err;
2953 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->fileid) < 0) goto Err;
2954 886a6f6c 2006-05-04 devnull if(sunstringvpack(a, ea, &a, &x->name, x->namelen) < 0) goto Err;
2955 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->cookie) < 0) goto Err;
2956 551445b9 2004-04-21 devnull *pa = a;
2957 551445b9 2004-04-21 devnull return 0;
2958 551445b9 2004-04-21 devnull Err:
2959 551445b9 2004-04-21 devnull *pa = ea;
2960 551445b9 2004-04-21 devnull return -1;
2961 551445b9 2004-04-21 devnull }
2962 551445b9 2004-04-21 devnull int
2963 551445b9 2004-04-21 devnull nfs3entryunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Entry *x)
2964 551445b9 2004-04-21 devnull {
2965 551445b9 2004-04-21 devnull u1int one;
2966 551445b9 2004-04-21 devnull
2967 551445b9 2004-04-21 devnull memset(x, 0, sizeof *x);
2968 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &one) < 0 || one != 1) goto Err;
2969 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->fileid) < 0) goto Err;
2970 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
2971 886a6f6c 2006-05-04 devnull x->namelen = strlen(x->name);
2972 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->cookie) < 0) goto Err;
2973 551445b9 2004-04-21 devnull *pa = a;
2974 551445b9 2004-04-21 devnull return 0;
2975 551445b9 2004-04-21 devnull Err:
2976 551445b9 2004-04-21 devnull *pa = ea;
2977 551445b9 2004-04-21 devnull return -1;
2978 551445b9 2004-04-21 devnull }
2979 551445b9 2004-04-21 devnull void
2980 551445b9 2004-04-21 devnull nfs3rreaddirprint(Fmt *fmt, Nfs3RReadDir *x)
2981 551445b9 2004-04-21 devnull {
2982 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RReadDir");
2983 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
2984 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
2985 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2986 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
2987 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
2988 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2989 551445b9 2004-04-21 devnull switch(x->haveAttr){
2990 551445b9 2004-04-21 devnull case 1:
2991 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
2992 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
2993 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
2994 551445b9 2004-04-21 devnull break;
2995 551445b9 2004-04-21 devnull }
2996 551445b9 2004-04-21 devnull switch(x->status){
2997 551445b9 2004-04-21 devnull case Nfs3Ok:
2998 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
2999 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3CookieVerfSize, x->verf);
3000 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3001 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=%ud\n", "count", x->count);
3002 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "eof");
3003 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->eof);
3004 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3005 551445b9 2004-04-21 devnull break;
3006 551445b9 2004-04-21 devnull }
3007 551445b9 2004-04-21 devnull }
3008 551445b9 2004-04-21 devnull uint
3009 551445b9 2004-04-21 devnull nfs3rreaddirsize(Nfs3RReadDir *x)
3010 551445b9 2004-04-21 devnull {
3011 551445b9 2004-04-21 devnull uint a;
3012 551445b9 2004-04-21 devnull USED(x);
3013 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
3014 551445b9 2004-04-21 devnull switch(x->haveAttr){
3015 551445b9 2004-04-21 devnull case 1:
3016 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3017 551445b9 2004-04-21 devnull break;
3018 551445b9 2004-04-21 devnull }
3019 551445b9 2004-04-21 devnull switch(x->status){
3020 551445b9 2004-04-21 devnull case Nfs3Ok:
3021 551445b9 2004-04-21 devnull a = a + Nfs3CookieVerfSize;
3022 551445b9 2004-04-21 devnull a += x->count;
3023 551445b9 2004-04-21 devnull a += 4 + 4;
3024 551445b9 2004-04-21 devnull break;
3025 551445b9 2004-04-21 devnull }
3026 551445b9 2004-04-21 devnull return a;
3027 551445b9 2004-04-21 devnull }
3028 551445b9 2004-04-21 devnull int
3029 551445b9 2004-04-21 devnull nfs3rreaddirpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadDir *x)
3030 551445b9 2004-04-21 devnull {
3031 551445b9 2004-04-21 devnull int i;
3032 551445b9 2004-04-21 devnull u1int zero;
3033 551445b9 2004-04-21 devnull
3034 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3035 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3036 551445b9 2004-04-21 devnull switch(x->haveAttr){
3037 551445b9 2004-04-21 devnull case 1:
3038 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3039 551445b9 2004-04-21 devnull break;
3040 551445b9 2004-04-21 devnull }
3041 551445b9 2004-04-21 devnull switch(x->status){
3042 551445b9 2004-04-21 devnull case Nfs3Ok:
3043 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3044 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->data, x->count) < 0) goto Err;
3045 551445b9 2004-04-21 devnull zero = 0;
3046 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &zero) < 0) goto Err;
3047 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->eof) < 0) goto Err;
3048 551445b9 2004-04-21 devnull break;
3049 551445b9 2004-04-21 devnull }
3050 551445b9 2004-04-21 devnull *pa = a;
3051 551445b9 2004-04-21 devnull return 0;
3052 551445b9 2004-04-21 devnull Err:
3053 551445b9 2004-04-21 devnull *pa = ea;
3054 551445b9 2004-04-21 devnull return -1;
3055 551445b9 2004-04-21 devnull }
3056 551445b9 2004-04-21 devnull static int
3057 551445b9 2004-04-21 devnull countEntry(uchar *a, uchar *ea, uchar **pa, u32int *n)
3058 551445b9 2004-04-21 devnull {
3059 551445b9 2004-04-21 devnull uchar *oa;
3060 551445b9 2004-04-21 devnull u64int u64;
3061 551445b9 2004-04-21 devnull u32int u32;
3062 551445b9 2004-04-21 devnull u1int u1;
3063 551445b9 2004-04-21 devnull
3064 551445b9 2004-04-21 devnull oa = a;
3065 551445b9 2004-04-21 devnull for(;;){
3066 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &u1) < 0)
3067 551445b9 2004-04-21 devnull return -1;
3068 551445b9 2004-04-21 devnull if(u1 == 0)
3069 551445b9 2004-04-21 devnull break;
3070 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &u64) < 0
3071 551445b9 2004-04-21 devnull || sunuint32unpack(a, ea, &a, &u32) < 0)
3072 551445b9 2004-04-21 devnull return -1;
3073 551445b9 2004-04-21 devnull a += (u32+3)&~3;
3074 551445b9 2004-04-21 devnull if(a >= ea)
3075 551445b9 2004-04-21 devnull return -1;
3076 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &u64) < 0)
3077 551445b9 2004-04-21 devnull return -1;
3078 551445b9 2004-04-21 devnull }
3079 551445b9 2004-04-21 devnull *n = (a-4) - oa;
3080 551445b9 2004-04-21 devnull *pa = a;
3081 551445b9 2004-04-21 devnull return 0;
3082 551445b9 2004-04-21 devnull }
3083 551445b9 2004-04-21 devnull int
3084 551445b9 2004-04-21 devnull nfs3rreaddirunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadDir *x)
3085 551445b9 2004-04-21 devnull {
3086 551445b9 2004-04-21 devnull int i;
3087 551445b9 2004-04-21 devnull
3088 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3089 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3090 551445b9 2004-04-21 devnull switch(x->haveAttr){
3091 551445b9 2004-04-21 devnull case 1:
3092 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3093 551445b9 2004-04-21 devnull break;
3094 551445b9 2004-04-21 devnull }
3095 551445b9 2004-04-21 devnull if(x->status == Nfs3Ok){
3096 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3097 551445b9 2004-04-21 devnull x->data = a;
3098 551445b9 2004-04-21 devnull if(countEntry(a, ea, &a, &x->count) < 0) goto Err;
3099 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->eof) < 0) goto Err;
3100 551445b9 2004-04-21 devnull }
3101 551445b9 2004-04-21 devnull *pa = a;
3102 551445b9 2004-04-21 devnull return 0;
3103 551445b9 2004-04-21 devnull Err:
3104 551445b9 2004-04-21 devnull *pa = ea;
3105 551445b9 2004-04-21 devnull return -1;
3106 551445b9 2004-04-21 devnull }
3107 551445b9 2004-04-21 devnull void
3108 551445b9 2004-04-21 devnull nfs3treaddirplusprint(Fmt *fmt, Nfs3TReadDirPlus *x)
3109 551445b9 2004-04-21 devnull {
3110 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TReadDirPlus");
3111 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3112 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3113 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3114 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "cookie");
3115 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->cookie);
3116 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3117 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
3118 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3CookieVerfSize, x->verf);
3119 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3120 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "dirCount");
3121 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->dirCount);
3122 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3123 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "maxCount");
3124 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->maxCount);
3125 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3126 551445b9 2004-04-21 devnull }
3127 551445b9 2004-04-21 devnull uint
3128 551445b9 2004-04-21 devnull nfs3treaddirplussize(Nfs3TReadDirPlus *x)
3129 551445b9 2004-04-21 devnull {
3130 551445b9 2004-04-21 devnull uint a;
3131 551445b9 2004-04-21 devnull USED(x);
3132 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 8 + Nfs3CookieVerfSize + 4 + 4;
3133 551445b9 2004-04-21 devnull return a;
3134 551445b9 2004-04-21 devnull }
3135 551445b9 2004-04-21 devnull int
3136 551445b9 2004-04-21 devnull nfs3treaddirpluspack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadDirPlus *x)
3137 551445b9 2004-04-21 devnull {
3138 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3139 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->cookie) < 0) goto Err;
3140 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3141 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->dirCount) < 0) goto Err;
3142 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->maxCount) < 0) goto Err;
3143 551445b9 2004-04-21 devnull *pa = a;
3144 551445b9 2004-04-21 devnull return 0;
3145 551445b9 2004-04-21 devnull Err:
3146 551445b9 2004-04-21 devnull *pa = ea;
3147 551445b9 2004-04-21 devnull return -1;
3148 551445b9 2004-04-21 devnull }
3149 551445b9 2004-04-21 devnull int
3150 551445b9 2004-04-21 devnull nfs3treaddirplusunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TReadDirPlus *x)
3151 551445b9 2004-04-21 devnull {
3152 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3153 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->cookie) < 0) goto Err;
3154 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3155 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->dirCount) < 0) goto Err;
3156 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->maxCount) < 0) goto Err;
3157 551445b9 2004-04-21 devnull *pa = a;
3158 551445b9 2004-04-21 devnull return 0;
3159 551445b9 2004-04-21 devnull Err:
3160 551445b9 2004-04-21 devnull *pa = ea;
3161 551445b9 2004-04-21 devnull return -1;
3162 551445b9 2004-04-21 devnull }
3163 551445b9 2004-04-21 devnull void
3164 551445b9 2004-04-21 devnull nfs3entryplusprint(Fmt *fmt, Nfs3Entry *x)
3165 551445b9 2004-04-21 devnull {
3166 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3EntryPlus");
3167 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "fileid");
3168 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->fileid);
3169 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3170 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "name");
3171 551445b9 2004-04-21 devnull fmtprint(fmt, "\"%s\"", x->name);
3172 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3173 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "cookie");
3174 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->cookie);
3175 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3176 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
3177 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
3178 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3179 551445b9 2004-04-21 devnull switch(x->haveAttr){
3180 551445b9 2004-04-21 devnull case 1:
3181 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
3182 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
3183 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3184 551445b9 2004-04-21 devnull break;
3185 551445b9 2004-04-21 devnull }
3186 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveHandle");
3187 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveHandle);
3188 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3189 551445b9 2004-04-21 devnull switch(x->haveHandle){
3190 551445b9 2004-04-21 devnull case 1:
3191 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3192 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3193 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3194 551445b9 2004-04-21 devnull break;
3195 551445b9 2004-04-21 devnull }
3196 551445b9 2004-04-21 devnull }
3197 551445b9 2004-04-21 devnull uint
3198 551445b9 2004-04-21 devnull nfs3entryplussize(Nfs3Entry *x)
3199 551445b9 2004-04-21 devnull {
3200 551445b9 2004-04-21 devnull uint a;
3201 551445b9 2004-04-21 devnull USED(x);
3202 551445b9 2004-04-21 devnull a = 0 + 8 + sunstringsize(x->name) + 8 + 4;
3203 551445b9 2004-04-21 devnull switch(x->haveAttr){
3204 551445b9 2004-04-21 devnull case 1:
3205 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3206 551445b9 2004-04-21 devnull break;
3207 551445b9 2004-04-21 devnull }
3208 551445b9 2004-04-21 devnull a = a + 4;
3209 551445b9 2004-04-21 devnull switch(x->haveHandle){
3210 551445b9 2004-04-21 devnull case 1:
3211 551445b9 2004-04-21 devnull a = a + nfs3handlesize(&x->handle);
3212 551445b9 2004-04-21 devnull break;
3213 551445b9 2004-04-21 devnull }
3214 551445b9 2004-04-21 devnull return a;
3215 551445b9 2004-04-21 devnull }
3216 551445b9 2004-04-21 devnull int
3217 551445b9 2004-04-21 devnull nfs3entrypluspack(uchar *a, uchar *ea, uchar **pa, Nfs3Entry *x)
3218 551445b9 2004-04-21 devnull {
3219 551445b9 2004-04-21 devnull u1int u1;
3220 551445b9 2004-04-21 devnull
3221 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &u1) < 0) goto Err;
3222 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->fileid) < 0) goto Err;
3223 551445b9 2004-04-21 devnull if(sunstringpack(a, ea, &a, &x->name, -1) < 0) goto Err;
3224 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->cookie) < 0) goto Err;
3225 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3226 551445b9 2004-04-21 devnull switch(x->haveAttr){
3227 551445b9 2004-04-21 devnull case 1:
3228 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3229 551445b9 2004-04-21 devnull break;
3230 551445b9 2004-04-21 devnull }
3231 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveHandle) < 0) goto Err;
3232 551445b9 2004-04-21 devnull switch(x->haveHandle){
3233 551445b9 2004-04-21 devnull case 1:
3234 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3235 551445b9 2004-04-21 devnull break;
3236 551445b9 2004-04-21 devnull }
3237 551445b9 2004-04-21 devnull *pa = a;
3238 551445b9 2004-04-21 devnull return 0;
3239 551445b9 2004-04-21 devnull Err:
3240 551445b9 2004-04-21 devnull *pa = ea;
3241 551445b9 2004-04-21 devnull return -1;
3242 551445b9 2004-04-21 devnull }
3243 551445b9 2004-04-21 devnull int
3244 551445b9 2004-04-21 devnull nfs3entryplusunpack(uchar *a, uchar *ea, uchar **pa, Nfs3Entry *x)
3245 551445b9 2004-04-21 devnull {
3246 551445b9 2004-04-21 devnull u1int u1;
3247 551445b9 2004-04-21 devnull
3248 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &u1) < 0 || u1 != 1) goto Err;
3249 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->fileid) < 0) goto Err;
3250 551445b9 2004-04-21 devnull if(sunstringunpack(a, ea, &a, &x->name, -1) < 0) goto Err;
3251 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->cookie) < 0) goto Err;
3252 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3253 551445b9 2004-04-21 devnull switch(x->haveAttr){
3254 551445b9 2004-04-21 devnull case 1:
3255 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3256 551445b9 2004-04-21 devnull break;
3257 551445b9 2004-04-21 devnull }
3258 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveHandle) < 0) goto Err;
3259 551445b9 2004-04-21 devnull switch(x->haveHandle){
3260 551445b9 2004-04-21 devnull case 1:
3261 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3262 551445b9 2004-04-21 devnull break;
3263 551445b9 2004-04-21 devnull }
3264 551445b9 2004-04-21 devnull *pa = a;
3265 551445b9 2004-04-21 devnull return 0;
3266 551445b9 2004-04-21 devnull Err:
3267 551445b9 2004-04-21 devnull *pa = ea;
3268 551445b9 2004-04-21 devnull return -1;
3269 551445b9 2004-04-21 devnull }
3270 551445b9 2004-04-21 devnull void
3271 551445b9 2004-04-21 devnull nfs3rreaddirplusprint(Fmt *fmt, Nfs3RReadDirPlus *x)
3272 551445b9 2004-04-21 devnull {
3273 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RReadDirPlus");
3274 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
3275 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
3276 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3277 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
3278 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
3279 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3280 551445b9 2004-04-21 devnull switch(x->haveAttr){
3281 551445b9 2004-04-21 devnull case 1:
3282 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
3283 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
3284 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3285 551445b9 2004-04-21 devnull break;
3286 551445b9 2004-04-21 devnull }
3287 551445b9 2004-04-21 devnull switch(x->status){
3288 551445b9 2004-04-21 devnull case Nfs3Ok:
3289 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
3290 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3CookieVerfSize, x->verf);
3291 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3292 551445b9 2004-04-21 devnull fmtprint(fmt, "\tcount=%ud\n", x->count);
3293 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "eof");
3294 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->eof);
3295 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3296 551445b9 2004-04-21 devnull break;
3297 551445b9 2004-04-21 devnull }
3298 551445b9 2004-04-21 devnull }
3299 551445b9 2004-04-21 devnull uint
3300 551445b9 2004-04-21 devnull nfs3rreaddirplussize(Nfs3RReadDirPlus *x)
3301 551445b9 2004-04-21 devnull {
3302 551445b9 2004-04-21 devnull uint a;
3303 551445b9 2004-04-21 devnull USED(x);
3304 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
3305 551445b9 2004-04-21 devnull switch(x->haveAttr){
3306 551445b9 2004-04-21 devnull case 1:
3307 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3308 551445b9 2004-04-21 devnull break;
3309 551445b9 2004-04-21 devnull }
3310 551445b9 2004-04-21 devnull switch(x->status){
3311 551445b9 2004-04-21 devnull case Nfs3Ok:
3312 551445b9 2004-04-21 devnull a = a + Nfs3CookieVerfSize;
3313 551445b9 2004-04-21 devnull a += x->count;
3314 551445b9 2004-04-21 devnull a += 4 + 4;
3315 551445b9 2004-04-21 devnull break;
3316 551445b9 2004-04-21 devnull }
3317 551445b9 2004-04-21 devnull return a;
3318 551445b9 2004-04-21 devnull }
3319 551445b9 2004-04-21 devnull int
3320 551445b9 2004-04-21 devnull nfs3rreaddirpluspack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadDirPlus *x)
3321 551445b9 2004-04-21 devnull {
3322 551445b9 2004-04-21 devnull int i;
3323 551445b9 2004-04-21 devnull u1int zero;
3324 551445b9 2004-04-21 devnull
3325 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3326 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3327 551445b9 2004-04-21 devnull switch(x->haveAttr){
3328 551445b9 2004-04-21 devnull case 1:
3329 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3330 551445b9 2004-04-21 devnull break;
3331 551445b9 2004-04-21 devnull }
3332 551445b9 2004-04-21 devnull switch(x->status){
3333 551445b9 2004-04-21 devnull case Nfs3Ok:
3334 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3335 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->data, x->count) < 0) goto Err;
3336 551445b9 2004-04-21 devnull zero = 0;
3337 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &zero) < 0) goto Err;
3338 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->eof) < 0) goto Err;
3339 551445b9 2004-04-21 devnull break;
3340 551445b9 2004-04-21 devnull }
3341 551445b9 2004-04-21 devnull *pa = a;
3342 551445b9 2004-04-21 devnull return 0;
3343 551445b9 2004-04-21 devnull Err:
3344 551445b9 2004-04-21 devnull *pa = ea;
3345 551445b9 2004-04-21 devnull return -1;
3346 551445b9 2004-04-21 devnull }
3347 551445b9 2004-04-21 devnull static int
3348 551445b9 2004-04-21 devnull countEntryPlus(uchar *a, uchar *ea, uchar **pa, u32int *n)
3349 551445b9 2004-04-21 devnull {
3350 551445b9 2004-04-21 devnull uchar *oa;
3351 551445b9 2004-04-21 devnull u64int u64;
3352 551445b9 2004-04-21 devnull u32int u32;
3353 551445b9 2004-04-21 devnull u1int u1;
3354 551445b9 2004-04-21 devnull Nfs3Handle h;
3355 551445b9 2004-04-21 devnull Nfs3Attr attr;
3356 551445b9 2004-04-21 devnull
3357 551445b9 2004-04-21 devnull oa = a;
3358 551445b9 2004-04-21 devnull for(;;){
3359 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &u1) < 0)
3360 551445b9 2004-04-21 devnull return -1;
3361 551445b9 2004-04-21 devnull if(u1 == 0)
3362 551445b9 2004-04-21 devnull break;
3363 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &u64) < 0
3364 551445b9 2004-04-21 devnull || sunuint32unpack(a, ea, &a, &u32) < 0)
3365 551445b9 2004-04-21 devnull return -1;
3366 551445b9 2004-04-21 devnull a += (u32+3)&~3;
3367 551445b9 2004-04-21 devnull if(a >= ea)
3368 551445b9 2004-04-21 devnull return -1;
3369 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &u64) < 0
3370 551445b9 2004-04-21 devnull || sunuint1unpack(a, ea, &a, &u1) < 0
3371 551445b9 2004-04-21 devnull || (u1 && nfs3attrunpack(a, ea, &a, &attr) < 0)
3372 551445b9 2004-04-21 devnull || sunuint1unpack(a, ea, &a, &u1) < 0
3373 551445b9 2004-04-21 devnull || (u1 && nfs3handleunpack(a, ea, &a, &h) < 0))
3374 551445b9 2004-04-21 devnull return -1;
3375 551445b9 2004-04-21 devnull }
3376 551445b9 2004-04-21 devnull *n = (a-4) - oa;
3377 551445b9 2004-04-21 devnull *pa = a;
3378 551445b9 2004-04-21 devnull return 0;
3379 551445b9 2004-04-21 devnull }
3380 fa325e9b 2020-01-10 cross
3381 551445b9 2004-04-21 devnull int
3382 551445b9 2004-04-21 devnull nfs3rreaddirplusunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RReadDirPlus *x)
3383 551445b9 2004-04-21 devnull {
3384 551445b9 2004-04-21 devnull int i;
3385 551445b9 2004-04-21 devnull
3386 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3387 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3388 551445b9 2004-04-21 devnull switch(x->haveAttr){
3389 551445b9 2004-04-21 devnull case 1:
3390 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3391 551445b9 2004-04-21 devnull break;
3392 551445b9 2004-04-21 devnull }
3393 551445b9 2004-04-21 devnull if(x->status == Nfs3Ok){
3394 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3CookieVerfSize) < 0) goto Err;
3395 551445b9 2004-04-21 devnull x->data = a;
3396 551445b9 2004-04-21 devnull if(countEntryPlus(a, ea, &a, &x->count) < 0) goto Err;
3397 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->eof) < 0) goto Err;
3398 551445b9 2004-04-21 devnull }
3399 551445b9 2004-04-21 devnull *pa = a;
3400 551445b9 2004-04-21 devnull return 0;
3401 551445b9 2004-04-21 devnull Err:
3402 551445b9 2004-04-21 devnull *pa = ea;
3403 551445b9 2004-04-21 devnull return -1;
3404 551445b9 2004-04-21 devnull }
3405 551445b9 2004-04-21 devnull void
3406 551445b9 2004-04-21 devnull nfs3tfsstatprint(Fmt *fmt, Nfs3TFsStat *x)
3407 551445b9 2004-04-21 devnull {
3408 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TFsStat");
3409 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3410 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3411 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3412 551445b9 2004-04-21 devnull }
3413 551445b9 2004-04-21 devnull uint
3414 551445b9 2004-04-21 devnull nfs3tfsstatsize(Nfs3TFsStat *x)
3415 551445b9 2004-04-21 devnull {
3416 551445b9 2004-04-21 devnull uint a;
3417 551445b9 2004-04-21 devnull USED(x);
3418 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle);
3419 551445b9 2004-04-21 devnull return a;
3420 551445b9 2004-04-21 devnull }
3421 551445b9 2004-04-21 devnull int
3422 551445b9 2004-04-21 devnull nfs3tfsstatpack(uchar *a, uchar *ea, uchar **pa, Nfs3TFsStat *x)
3423 551445b9 2004-04-21 devnull {
3424 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3425 551445b9 2004-04-21 devnull *pa = a;
3426 551445b9 2004-04-21 devnull return 0;
3427 551445b9 2004-04-21 devnull Err:
3428 551445b9 2004-04-21 devnull *pa = ea;
3429 551445b9 2004-04-21 devnull return -1;
3430 551445b9 2004-04-21 devnull }
3431 551445b9 2004-04-21 devnull int
3432 551445b9 2004-04-21 devnull nfs3tfsstatunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TFsStat *x)
3433 551445b9 2004-04-21 devnull {
3434 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3435 551445b9 2004-04-21 devnull *pa = a;
3436 551445b9 2004-04-21 devnull return 0;
3437 551445b9 2004-04-21 devnull Err:
3438 551445b9 2004-04-21 devnull *pa = ea;
3439 551445b9 2004-04-21 devnull return -1;
3440 551445b9 2004-04-21 devnull }
3441 551445b9 2004-04-21 devnull void
3442 551445b9 2004-04-21 devnull nfs3rfsstatprint(Fmt *fmt, Nfs3RFsStat *x)
3443 551445b9 2004-04-21 devnull {
3444 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RFsStat");
3445 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
3446 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
3447 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3448 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
3449 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
3450 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3451 551445b9 2004-04-21 devnull switch(x->haveAttr){
3452 551445b9 2004-04-21 devnull case 1:
3453 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
3454 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
3455 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3456 551445b9 2004-04-21 devnull break;
3457 551445b9 2004-04-21 devnull }
3458 551445b9 2004-04-21 devnull switch(x->status){
3459 551445b9 2004-04-21 devnull case Nfs3Ok:
3460 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "totalBytes");
3461 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->totalBytes);
3462 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3463 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "freeBytes");
3464 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->freeBytes);
3465 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3466 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "availBytes");
3467 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->availBytes);
3468 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3469 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "totalFiles");
3470 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->totalFiles);
3471 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3472 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "freeFiles");
3473 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->freeFiles);
3474 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3475 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "availFiles");
3476 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->availFiles);
3477 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3478 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "invarSec");
3479 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->invarSec);
3480 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3481 551445b9 2004-04-21 devnull break;
3482 551445b9 2004-04-21 devnull }
3483 551445b9 2004-04-21 devnull }
3484 551445b9 2004-04-21 devnull uint
3485 551445b9 2004-04-21 devnull nfs3rfsstatsize(Nfs3RFsStat *x)
3486 551445b9 2004-04-21 devnull {
3487 551445b9 2004-04-21 devnull uint a;
3488 551445b9 2004-04-21 devnull USED(x);
3489 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
3490 551445b9 2004-04-21 devnull switch(x->haveAttr){
3491 551445b9 2004-04-21 devnull case 1:
3492 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3493 551445b9 2004-04-21 devnull break;
3494 551445b9 2004-04-21 devnull }
3495 551445b9 2004-04-21 devnull switch(x->status){
3496 551445b9 2004-04-21 devnull case Nfs3Ok:
3497 551445b9 2004-04-21 devnull a = a + 8 + 8 + 8 + 8 + 8 + 8 + 4;
3498 551445b9 2004-04-21 devnull break;
3499 551445b9 2004-04-21 devnull }
3500 551445b9 2004-04-21 devnull return a;
3501 551445b9 2004-04-21 devnull }
3502 551445b9 2004-04-21 devnull int
3503 551445b9 2004-04-21 devnull nfs3rfsstatpack(uchar *a, uchar *ea, uchar **pa, Nfs3RFsStat *x)
3504 551445b9 2004-04-21 devnull {
3505 551445b9 2004-04-21 devnull int i;
3506 551445b9 2004-04-21 devnull
3507 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3508 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3509 551445b9 2004-04-21 devnull switch(x->haveAttr){
3510 551445b9 2004-04-21 devnull case 1:
3511 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3512 551445b9 2004-04-21 devnull break;
3513 551445b9 2004-04-21 devnull }
3514 551445b9 2004-04-21 devnull switch(x->status){
3515 551445b9 2004-04-21 devnull case Nfs3Ok:
3516 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->totalBytes) < 0) goto Err;
3517 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->freeBytes) < 0) goto Err;
3518 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->availBytes) < 0) goto Err;
3519 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->totalFiles) < 0) goto Err;
3520 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->freeFiles) < 0) goto Err;
3521 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->availFiles) < 0) goto Err;
3522 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->invarSec) < 0) goto Err;
3523 551445b9 2004-04-21 devnull break;
3524 551445b9 2004-04-21 devnull }
3525 551445b9 2004-04-21 devnull *pa = a;
3526 551445b9 2004-04-21 devnull return 0;
3527 551445b9 2004-04-21 devnull Err:
3528 551445b9 2004-04-21 devnull *pa = ea;
3529 551445b9 2004-04-21 devnull return -1;
3530 551445b9 2004-04-21 devnull }
3531 551445b9 2004-04-21 devnull int
3532 551445b9 2004-04-21 devnull nfs3rfsstatunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RFsStat *x)
3533 551445b9 2004-04-21 devnull {
3534 551445b9 2004-04-21 devnull int i;
3535 551445b9 2004-04-21 devnull
3536 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3537 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3538 551445b9 2004-04-21 devnull switch(x->haveAttr){
3539 551445b9 2004-04-21 devnull case 1:
3540 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3541 551445b9 2004-04-21 devnull break;
3542 551445b9 2004-04-21 devnull }
3543 551445b9 2004-04-21 devnull switch(x->status){
3544 551445b9 2004-04-21 devnull case Nfs3Ok:
3545 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->totalBytes) < 0) goto Err;
3546 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->freeBytes) < 0) goto Err;
3547 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->availBytes) < 0) goto Err;
3548 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->totalFiles) < 0) goto Err;
3549 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->freeFiles) < 0) goto Err;
3550 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->availFiles) < 0) goto Err;
3551 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->invarSec) < 0) goto Err;
3552 551445b9 2004-04-21 devnull break;
3553 551445b9 2004-04-21 devnull }
3554 551445b9 2004-04-21 devnull *pa = a;
3555 551445b9 2004-04-21 devnull return 0;
3556 551445b9 2004-04-21 devnull Err:
3557 551445b9 2004-04-21 devnull *pa = ea;
3558 551445b9 2004-04-21 devnull return -1;
3559 551445b9 2004-04-21 devnull }
3560 551445b9 2004-04-21 devnull void
3561 551445b9 2004-04-21 devnull nfs3tfsinfoprint(Fmt *fmt, Nfs3TFsInfo *x)
3562 551445b9 2004-04-21 devnull {
3563 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TFsInfo");
3564 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3565 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3566 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3567 551445b9 2004-04-21 devnull }
3568 551445b9 2004-04-21 devnull uint
3569 551445b9 2004-04-21 devnull nfs3tfsinfosize(Nfs3TFsInfo *x)
3570 551445b9 2004-04-21 devnull {
3571 551445b9 2004-04-21 devnull uint a;
3572 551445b9 2004-04-21 devnull USED(x);
3573 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle);
3574 551445b9 2004-04-21 devnull return a;
3575 551445b9 2004-04-21 devnull }
3576 551445b9 2004-04-21 devnull int
3577 551445b9 2004-04-21 devnull nfs3tfsinfopack(uchar *a, uchar *ea, uchar **pa, Nfs3TFsInfo *x)
3578 551445b9 2004-04-21 devnull {
3579 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3580 551445b9 2004-04-21 devnull *pa = a;
3581 551445b9 2004-04-21 devnull return 0;
3582 551445b9 2004-04-21 devnull Err:
3583 551445b9 2004-04-21 devnull *pa = ea;
3584 551445b9 2004-04-21 devnull return -1;
3585 551445b9 2004-04-21 devnull }
3586 551445b9 2004-04-21 devnull int
3587 551445b9 2004-04-21 devnull nfs3tfsinfounpack(uchar *a, uchar *ea, uchar **pa, Nfs3TFsInfo *x)
3588 551445b9 2004-04-21 devnull {
3589 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3590 551445b9 2004-04-21 devnull *pa = a;
3591 551445b9 2004-04-21 devnull return 0;
3592 551445b9 2004-04-21 devnull Err:
3593 551445b9 2004-04-21 devnull *pa = ea;
3594 551445b9 2004-04-21 devnull return -1;
3595 551445b9 2004-04-21 devnull }
3596 551445b9 2004-04-21 devnull void
3597 551445b9 2004-04-21 devnull nfs3rfsinfoprint(Fmt *fmt, Nfs3RFsInfo *x)
3598 551445b9 2004-04-21 devnull {
3599 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RFsInfo");
3600 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
3601 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
3602 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3603 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
3604 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
3605 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3606 551445b9 2004-04-21 devnull switch(x->haveAttr){
3607 551445b9 2004-04-21 devnull case 1:
3608 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
3609 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
3610 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3611 551445b9 2004-04-21 devnull break;
3612 551445b9 2004-04-21 devnull }
3613 551445b9 2004-04-21 devnull switch(x->status){
3614 551445b9 2004-04-21 devnull case Nfs3Ok:
3615 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "readMax");
3616 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->readMax);
3617 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3618 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "readPref");
3619 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->readPref);
3620 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3621 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "readMult");
3622 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->readMult);
3623 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3624 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "writeMax");
3625 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->writeMax);
3626 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3627 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "writePref");
3628 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->writePref);
3629 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3630 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "writeMult");
3631 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->writeMult);
3632 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3633 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "readDirPref");
3634 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->readDirPref);
3635 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3636 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "maxFileSize");
3637 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->maxFileSize);
3638 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3639 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "timePrec");
3640 551445b9 2004-04-21 devnull nfs3timeprint(fmt, &x->timePrec);
3641 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3642 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "flags");
3643 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->flags);
3644 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3645 551445b9 2004-04-21 devnull break;
3646 551445b9 2004-04-21 devnull }
3647 551445b9 2004-04-21 devnull }
3648 551445b9 2004-04-21 devnull uint
3649 551445b9 2004-04-21 devnull nfs3rfsinfosize(Nfs3RFsInfo *x)
3650 551445b9 2004-04-21 devnull {
3651 551445b9 2004-04-21 devnull uint a;
3652 551445b9 2004-04-21 devnull USED(x);
3653 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
3654 551445b9 2004-04-21 devnull switch(x->haveAttr){
3655 551445b9 2004-04-21 devnull case 1:
3656 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3657 551445b9 2004-04-21 devnull break;
3658 551445b9 2004-04-21 devnull }
3659 551445b9 2004-04-21 devnull switch(x->status){
3660 551445b9 2004-04-21 devnull case Nfs3Ok:
3661 551445b9 2004-04-21 devnull a = a + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 8 + nfs3timesize(&x->timePrec) + 4;
3662 551445b9 2004-04-21 devnull break;
3663 551445b9 2004-04-21 devnull }
3664 551445b9 2004-04-21 devnull return a;
3665 551445b9 2004-04-21 devnull }
3666 551445b9 2004-04-21 devnull int
3667 551445b9 2004-04-21 devnull nfs3rfsinfopack(uchar *a, uchar *ea, uchar **pa, Nfs3RFsInfo *x)
3668 551445b9 2004-04-21 devnull {
3669 551445b9 2004-04-21 devnull int i;
3670 551445b9 2004-04-21 devnull
3671 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3672 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3673 551445b9 2004-04-21 devnull switch(x->haveAttr){
3674 551445b9 2004-04-21 devnull case 1:
3675 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3676 551445b9 2004-04-21 devnull break;
3677 551445b9 2004-04-21 devnull }
3678 551445b9 2004-04-21 devnull switch(x->status){
3679 551445b9 2004-04-21 devnull case Nfs3Ok:
3680 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->readMax) < 0) goto Err;
3681 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->readPref) < 0) goto Err;
3682 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->readMult) < 0) goto Err;
3683 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->writeMax) < 0) goto Err;
3684 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->writePref) < 0) goto Err;
3685 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->writeMult) < 0) goto Err;
3686 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->readDirPref) < 0) goto Err;
3687 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->maxFileSize) < 0) goto Err;
3688 551445b9 2004-04-21 devnull if(nfs3timepack(a, ea, &a, &x->timePrec) < 0) goto Err;
3689 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->flags) < 0) goto Err;
3690 551445b9 2004-04-21 devnull break;
3691 551445b9 2004-04-21 devnull }
3692 551445b9 2004-04-21 devnull *pa = a;
3693 551445b9 2004-04-21 devnull return 0;
3694 551445b9 2004-04-21 devnull Err:
3695 551445b9 2004-04-21 devnull *pa = ea;
3696 551445b9 2004-04-21 devnull return -1;
3697 551445b9 2004-04-21 devnull }
3698 551445b9 2004-04-21 devnull int
3699 551445b9 2004-04-21 devnull nfs3rfsinfounpack(uchar *a, uchar *ea, uchar **pa, Nfs3RFsInfo *x)
3700 551445b9 2004-04-21 devnull {
3701 551445b9 2004-04-21 devnull int i;
3702 551445b9 2004-04-21 devnull
3703 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3704 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3705 551445b9 2004-04-21 devnull switch(x->haveAttr){
3706 551445b9 2004-04-21 devnull case 1:
3707 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3708 551445b9 2004-04-21 devnull break;
3709 551445b9 2004-04-21 devnull }
3710 551445b9 2004-04-21 devnull switch(x->status){
3711 551445b9 2004-04-21 devnull case Nfs3Ok:
3712 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->readMax) < 0) goto Err;
3713 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->readPref) < 0) goto Err;
3714 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->readMult) < 0) goto Err;
3715 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->writeMax) < 0) goto Err;
3716 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->writePref) < 0) goto Err;
3717 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->writeMult) < 0) goto Err;
3718 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->readDirPref) < 0) goto Err;
3719 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->maxFileSize) < 0) goto Err;
3720 551445b9 2004-04-21 devnull if(nfs3timeunpack(a, ea, &a, &x->timePrec) < 0) goto Err;
3721 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->flags) < 0) goto Err;
3722 551445b9 2004-04-21 devnull break;
3723 551445b9 2004-04-21 devnull }
3724 551445b9 2004-04-21 devnull *pa = a;
3725 551445b9 2004-04-21 devnull return 0;
3726 551445b9 2004-04-21 devnull Err:
3727 551445b9 2004-04-21 devnull *pa = ea;
3728 551445b9 2004-04-21 devnull return -1;
3729 551445b9 2004-04-21 devnull }
3730 551445b9 2004-04-21 devnull void
3731 551445b9 2004-04-21 devnull nfs3tpathconfprint(Fmt *fmt, Nfs3TPathconf *x)
3732 551445b9 2004-04-21 devnull {
3733 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TPathconf");
3734 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3735 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3736 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3737 551445b9 2004-04-21 devnull }
3738 551445b9 2004-04-21 devnull uint
3739 551445b9 2004-04-21 devnull nfs3tpathconfsize(Nfs3TPathconf *x)
3740 551445b9 2004-04-21 devnull {
3741 551445b9 2004-04-21 devnull uint a;
3742 551445b9 2004-04-21 devnull USED(x);
3743 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle);
3744 551445b9 2004-04-21 devnull return a;
3745 551445b9 2004-04-21 devnull }
3746 551445b9 2004-04-21 devnull int
3747 551445b9 2004-04-21 devnull nfs3tpathconfpack(uchar *a, uchar *ea, uchar **pa, Nfs3TPathconf *x)
3748 551445b9 2004-04-21 devnull {
3749 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3750 551445b9 2004-04-21 devnull *pa = a;
3751 551445b9 2004-04-21 devnull return 0;
3752 551445b9 2004-04-21 devnull Err:
3753 551445b9 2004-04-21 devnull *pa = ea;
3754 551445b9 2004-04-21 devnull return -1;
3755 551445b9 2004-04-21 devnull }
3756 551445b9 2004-04-21 devnull int
3757 551445b9 2004-04-21 devnull nfs3tpathconfunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TPathconf *x)
3758 551445b9 2004-04-21 devnull {
3759 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3760 551445b9 2004-04-21 devnull *pa = a;
3761 551445b9 2004-04-21 devnull return 0;
3762 551445b9 2004-04-21 devnull Err:
3763 551445b9 2004-04-21 devnull *pa = ea;
3764 551445b9 2004-04-21 devnull return -1;
3765 551445b9 2004-04-21 devnull }
3766 551445b9 2004-04-21 devnull void
3767 551445b9 2004-04-21 devnull nfs3rpathconfprint(Fmt *fmt, Nfs3RPathconf *x)
3768 551445b9 2004-04-21 devnull {
3769 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RPathconf");
3770 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
3771 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
3772 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3773 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "haveAttr");
3774 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->haveAttr);
3775 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3776 551445b9 2004-04-21 devnull switch(x->haveAttr){
3777 551445b9 2004-04-21 devnull case 1:
3778 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "attr");
3779 551445b9 2004-04-21 devnull nfs3attrprint(fmt, &x->attr);
3780 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3781 551445b9 2004-04-21 devnull break;
3782 551445b9 2004-04-21 devnull }
3783 551445b9 2004-04-21 devnull switch(x->status){
3784 551445b9 2004-04-21 devnull case Nfs3Ok:
3785 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "maxLink");
3786 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->maxLink);
3787 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3788 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "maxName");
3789 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->maxName);
3790 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3791 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "noTrunc");
3792 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->noTrunc);
3793 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3794 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "chownRestricted");
3795 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->chownRestricted);
3796 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3797 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "caseInsensitive");
3798 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->caseInsensitive);
3799 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3800 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "casePreserving");
3801 551445b9 2004-04-21 devnull fmtprint(fmt, "%d", x->casePreserving);
3802 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3803 551445b9 2004-04-21 devnull break;
3804 551445b9 2004-04-21 devnull }
3805 551445b9 2004-04-21 devnull }
3806 551445b9 2004-04-21 devnull uint
3807 551445b9 2004-04-21 devnull nfs3rpathconfsize(Nfs3RPathconf *x)
3808 551445b9 2004-04-21 devnull {
3809 551445b9 2004-04-21 devnull uint a;
3810 551445b9 2004-04-21 devnull USED(x);
3811 551445b9 2004-04-21 devnull a = 0 + 4 + 4;
3812 551445b9 2004-04-21 devnull switch(x->haveAttr){
3813 551445b9 2004-04-21 devnull case 1:
3814 551445b9 2004-04-21 devnull a = a + nfs3attrsize(&x->attr);
3815 551445b9 2004-04-21 devnull break;
3816 551445b9 2004-04-21 devnull }
3817 551445b9 2004-04-21 devnull switch(x->status){
3818 551445b9 2004-04-21 devnull case Nfs3Ok:
3819 551445b9 2004-04-21 devnull a = a + 4 + 4 + 4 + 4 + 4 + 4;
3820 551445b9 2004-04-21 devnull break;
3821 551445b9 2004-04-21 devnull }
3822 551445b9 2004-04-21 devnull return a;
3823 551445b9 2004-04-21 devnull }
3824 551445b9 2004-04-21 devnull int
3825 551445b9 2004-04-21 devnull nfs3rpathconfpack(uchar *a, uchar *ea, uchar **pa, Nfs3RPathconf *x)
3826 551445b9 2004-04-21 devnull {
3827 551445b9 2004-04-21 devnull int i;
3828 551445b9 2004-04-21 devnull
3829 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3830 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3831 551445b9 2004-04-21 devnull switch(x->haveAttr){
3832 551445b9 2004-04-21 devnull case 1:
3833 551445b9 2004-04-21 devnull if(nfs3attrpack(a, ea, &a, &x->attr) < 0) goto Err;
3834 551445b9 2004-04-21 devnull break;
3835 551445b9 2004-04-21 devnull }
3836 551445b9 2004-04-21 devnull switch(x->status){
3837 551445b9 2004-04-21 devnull case Nfs3Ok:
3838 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->maxLink) < 0) goto Err;
3839 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->maxName) < 0) goto Err;
3840 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->noTrunc) < 0) goto Err;
3841 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->chownRestricted) < 0) goto Err;
3842 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->caseInsensitive) < 0) goto Err;
3843 551445b9 2004-04-21 devnull if(sunuint1pack(a, ea, &a, &x->casePreserving) < 0) goto Err;
3844 551445b9 2004-04-21 devnull break;
3845 551445b9 2004-04-21 devnull }
3846 551445b9 2004-04-21 devnull *pa = a;
3847 551445b9 2004-04-21 devnull return 0;
3848 551445b9 2004-04-21 devnull Err:
3849 551445b9 2004-04-21 devnull *pa = ea;
3850 551445b9 2004-04-21 devnull return -1;
3851 551445b9 2004-04-21 devnull }
3852 551445b9 2004-04-21 devnull int
3853 551445b9 2004-04-21 devnull nfs3rpathconfunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RPathconf *x)
3854 551445b9 2004-04-21 devnull {
3855 551445b9 2004-04-21 devnull int i;
3856 551445b9 2004-04-21 devnull
3857 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3858 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->haveAttr) < 0) goto Err;
3859 551445b9 2004-04-21 devnull switch(x->haveAttr){
3860 551445b9 2004-04-21 devnull case 1:
3861 551445b9 2004-04-21 devnull if(nfs3attrunpack(a, ea, &a, &x->attr) < 0) goto Err;
3862 551445b9 2004-04-21 devnull break;
3863 551445b9 2004-04-21 devnull }
3864 551445b9 2004-04-21 devnull switch(x->status){
3865 551445b9 2004-04-21 devnull case Nfs3Ok:
3866 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->maxLink) < 0) goto Err;
3867 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->maxName) < 0) goto Err;
3868 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->noTrunc) < 0) goto Err;
3869 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->chownRestricted) < 0) goto Err;
3870 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->caseInsensitive) < 0) goto Err;
3871 551445b9 2004-04-21 devnull if(sunuint1unpack(a, ea, &a, &x->casePreserving) < 0) goto Err;
3872 551445b9 2004-04-21 devnull break;
3873 551445b9 2004-04-21 devnull }
3874 551445b9 2004-04-21 devnull *pa = a;
3875 551445b9 2004-04-21 devnull return 0;
3876 551445b9 2004-04-21 devnull Err:
3877 551445b9 2004-04-21 devnull *pa = ea;
3878 551445b9 2004-04-21 devnull return -1;
3879 551445b9 2004-04-21 devnull }
3880 551445b9 2004-04-21 devnull void
3881 551445b9 2004-04-21 devnull nfs3tcommitprint(Fmt *fmt, Nfs3TCommit *x)
3882 551445b9 2004-04-21 devnull {
3883 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3TCommit");
3884 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "handle");
3885 551445b9 2004-04-21 devnull nfs3handleprint(fmt, &x->handle);
3886 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3887 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "offset");
3888 551445b9 2004-04-21 devnull fmtprint(fmt, "%llud", x->offset);
3889 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3890 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "count");
3891 551445b9 2004-04-21 devnull fmtprint(fmt, "%ud", x->count);
3892 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3893 551445b9 2004-04-21 devnull }
3894 551445b9 2004-04-21 devnull uint
3895 551445b9 2004-04-21 devnull nfs3tcommitsize(Nfs3TCommit *x)
3896 551445b9 2004-04-21 devnull {
3897 551445b9 2004-04-21 devnull uint a;
3898 551445b9 2004-04-21 devnull USED(x);
3899 551445b9 2004-04-21 devnull a = 0 + nfs3handlesize(&x->handle) + 8 + 4;
3900 551445b9 2004-04-21 devnull return a;
3901 551445b9 2004-04-21 devnull }
3902 551445b9 2004-04-21 devnull int
3903 551445b9 2004-04-21 devnull nfs3tcommitpack(uchar *a, uchar *ea, uchar **pa, Nfs3TCommit *x)
3904 551445b9 2004-04-21 devnull {
3905 551445b9 2004-04-21 devnull if(nfs3handlepack(a, ea, &a, &x->handle) < 0) goto Err;
3906 551445b9 2004-04-21 devnull if(sunuint64pack(a, ea, &a, &x->offset) < 0) goto Err;
3907 551445b9 2004-04-21 devnull if(sunuint32pack(a, ea, &a, &x->count) < 0) goto Err;
3908 551445b9 2004-04-21 devnull *pa = a;
3909 551445b9 2004-04-21 devnull return 0;
3910 551445b9 2004-04-21 devnull Err:
3911 551445b9 2004-04-21 devnull *pa = ea;
3912 551445b9 2004-04-21 devnull return -1;
3913 551445b9 2004-04-21 devnull }
3914 551445b9 2004-04-21 devnull int
3915 551445b9 2004-04-21 devnull nfs3tcommitunpack(uchar *a, uchar *ea, uchar **pa, Nfs3TCommit *x)
3916 551445b9 2004-04-21 devnull {
3917 551445b9 2004-04-21 devnull if(nfs3handleunpack(a, ea, &a, &x->handle) < 0) goto Err;
3918 551445b9 2004-04-21 devnull if(sunuint64unpack(a, ea, &a, &x->offset) < 0) goto Err;
3919 551445b9 2004-04-21 devnull if(sunuint32unpack(a, ea, &a, &x->count) < 0) goto Err;
3920 551445b9 2004-04-21 devnull *pa = a;
3921 551445b9 2004-04-21 devnull return 0;
3922 551445b9 2004-04-21 devnull Err:
3923 551445b9 2004-04-21 devnull *pa = ea;
3924 551445b9 2004-04-21 devnull return -1;
3925 551445b9 2004-04-21 devnull }
3926 551445b9 2004-04-21 devnull void
3927 551445b9 2004-04-21 devnull nfs3rcommitprint(Fmt *fmt, Nfs3RCommit *x)
3928 551445b9 2004-04-21 devnull {
3929 551445b9 2004-04-21 devnull fmtprint(fmt, "%s\n", "Nfs3RCommit");
3930 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "status");
3931 551445b9 2004-04-21 devnull fmtprint(fmt, "%s", nfs3statusstr(x->status));
3932 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3933 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "wcc");
3934 551445b9 2004-04-21 devnull nfs3wccprint(fmt, &x->wcc);
3935 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3936 551445b9 2004-04-21 devnull switch(x->status){
3937 551445b9 2004-04-21 devnull case Nfs3Ok:
3938 551445b9 2004-04-21 devnull fmtprint(fmt, "\t%s=", "verf");
3939 551445b9 2004-04-21 devnull fmtprint(fmt, "%.*H", Nfs3WriteVerfSize, x->verf);
3940 551445b9 2004-04-21 devnull fmtprint(fmt, "\n");
3941 551445b9 2004-04-21 devnull break;
3942 551445b9 2004-04-21 devnull }
3943 551445b9 2004-04-21 devnull }
3944 551445b9 2004-04-21 devnull uint
3945 551445b9 2004-04-21 devnull nfs3rcommitsize(Nfs3RCommit *x)
3946 551445b9 2004-04-21 devnull {
3947 551445b9 2004-04-21 devnull uint a;
3948 551445b9 2004-04-21 devnull USED(x);
3949 551445b9 2004-04-21 devnull a = 0 + 4 + nfs3wccsize(&x->wcc);
3950 551445b9 2004-04-21 devnull switch(x->status){
3951 551445b9 2004-04-21 devnull case Nfs3Ok:
3952 551445b9 2004-04-21 devnull a = a + Nfs3WriteVerfSize;
3953 551445b9 2004-04-21 devnull break;
3954 551445b9 2004-04-21 devnull }
3955 551445b9 2004-04-21 devnull return a;
3956 551445b9 2004-04-21 devnull }
3957 551445b9 2004-04-21 devnull int
3958 551445b9 2004-04-21 devnull nfs3rcommitpack(uchar *a, uchar *ea, uchar **pa, Nfs3RCommit *x)
3959 551445b9 2004-04-21 devnull {
3960 551445b9 2004-04-21 devnull int i;
3961 551445b9 2004-04-21 devnull
3962 551445b9 2004-04-21 devnull if(i=x->status, sunenumpack(a, ea, &a, &i) < 0) goto Err;
3963 551445b9 2004-04-21 devnull if(nfs3wccpack(a, ea, &a, &x->wcc) < 0) goto Err;
3964 551445b9 2004-04-21 devnull switch(x->status){
3965 551445b9 2004-04-21 devnull case Nfs3Ok:
3966 551445b9 2004-04-21 devnull if(sunfixedopaquepack(a, ea, &a, x->verf, Nfs3WriteVerfSize) < 0) goto Err;
3967 551445b9 2004-04-21 devnull break;
3968 551445b9 2004-04-21 devnull }
3969 551445b9 2004-04-21 devnull *pa = a;
3970 551445b9 2004-04-21 devnull return 0;
3971 551445b9 2004-04-21 devnull Err:
3972 551445b9 2004-04-21 devnull *pa = ea;
3973 551445b9 2004-04-21 devnull return -1;
3974 551445b9 2004-04-21 devnull }
3975 551445b9 2004-04-21 devnull int
3976 551445b9 2004-04-21 devnull nfs3rcommitunpack(uchar *a, uchar *ea, uchar **pa, Nfs3RCommit *x)
3977 551445b9 2004-04-21 devnull {
3978 551445b9 2004-04-21 devnull int i;
3979 551445b9 2004-04-21 devnull
3980 551445b9 2004-04-21 devnull if(sunenumunpack(a, ea, &a, &i) < 0) goto Err; x->status = i;
3981 551445b9 2004-04-21 devnull if(nfs3wccunpack(a, ea, &a, &x->wcc) < 0) goto Err;
3982 551445b9 2004-04-21 devnull switch(x->status){
3983 551445b9 2004-04-21 devnull case Nfs3Ok:
3984 551445b9 2004-04-21 devnull if(sunfixedopaqueunpack(a, ea, &a, x->verf, Nfs3WriteVerfSize) < 0) goto Err;
3985 551445b9 2004-04-21 devnull break;
3986 551445b9 2004-04-21 devnull }
3987 551445b9 2004-04-21 devnull *pa = a;
3988 551445b9 2004-04-21 devnull return 0;
3989 551445b9 2004-04-21 devnull Err:
3990 551445b9 2004-04-21 devnull *pa = ea;
3991 551445b9 2004-04-21 devnull return -1;
3992 551445b9 2004-04-21 devnull }
3993 551445b9 2004-04-21 devnull
3994 551445b9 2004-04-21 devnull typedef int (*P)(uchar*, uchar*, uchar**, SunCall*);
3995 551445b9 2004-04-21 devnull typedef void (*F)(Fmt*, SunCall*);
3996 551445b9 2004-04-21 devnull typedef uint (*S)(SunCall*);
3997 551445b9 2004-04-21 devnull
3998 551445b9 2004-04-21 devnull static SunProc proc[] = {
3999 551445b9 2004-04-21 devnull (P)nfs3tnullpack, (P)nfs3tnullunpack, (S)nfs3tnullsize, (F)nfs3tnullprint, sizeof(Nfs3TNull),
4000 551445b9 2004-04-21 devnull (P)nfs3rnullpack, (P)nfs3rnullunpack, (S)nfs3rnullsize, (F)nfs3rnullprint, sizeof(Nfs3RNull),
4001 551445b9 2004-04-21 devnull (P)nfs3tgetattrpack, (P)nfs3tgetattrunpack, (S)nfs3tgetattrsize, (F)nfs3tgetattrprint, sizeof(Nfs3TGetattr),
4002 551445b9 2004-04-21 devnull (P)nfs3rgetattrpack, (P)nfs3rgetattrunpack, (S)nfs3rgetattrsize, (F)nfs3rgetattrprint, sizeof(Nfs3RGetattr),
4003 551445b9 2004-04-21 devnull (P)nfs3tsetattrpack, (P)nfs3tsetattrunpack, (S)nfs3tsetattrsize, (F)nfs3tsetattrprint, sizeof(Nfs3TSetattr),
4004 551445b9 2004-04-21 devnull (P)nfs3rsetattrpack, (P)nfs3rsetattrunpack, (S)nfs3rsetattrsize, (F)nfs3rsetattrprint, sizeof(Nfs3RSetattr),
4005 551445b9 2004-04-21 devnull (P)nfs3tlookuppack, (P)nfs3tlookupunpack, (S)nfs3tlookupsize, (F)nfs3tlookupprint, sizeof(Nfs3TLookup),
4006 551445b9 2004-04-21 devnull (P)nfs3rlookuppack, (P)nfs3rlookupunpack, (S)nfs3rlookupsize, (F)nfs3rlookupprint, sizeof(Nfs3RLookup),
4007 551445b9 2004-04-21 devnull (P)nfs3taccesspack, (P)nfs3taccessunpack, (S)nfs3taccesssize, (F)nfs3taccessprint, sizeof(Nfs3TAccess),
4008 551445b9 2004-04-21 devnull (P)nfs3raccesspack, (P)nfs3raccessunpack, (S)nfs3raccesssize, (F)nfs3raccessprint, sizeof(Nfs3RAccess),
4009 551445b9 2004-04-21 devnull (P)nfs3treadlinkpack, (P)nfs3treadlinkunpack, (S)nfs3treadlinksize, (F)nfs3treadlinkprint, sizeof(Nfs3TReadlink),
4010 551445b9 2004-04-21 devnull (P)nfs3rreadlinkpack, (P)nfs3rreadlinkunpack, (S)nfs3rreadlinksize, (F)nfs3rreadlinkprint, sizeof(Nfs3RReadlink),
4011 551445b9 2004-04-21 devnull (P)nfs3treadpack, (P)nfs3treadunpack, (S)nfs3treadsize, (F)nfs3treadprint, sizeof(Nfs3TRead),
4012 551445b9 2004-04-21 devnull (P)nfs3rreadpack, (P)nfs3rreadunpack, (S)nfs3rreadsize, (F)nfs3rreadprint, sizeof(Nfs3RRead),
4013 551445b9 2004-04-21 devnull (P)nfs3twritepack, (P)nfs3twriteunpack, (S)nfs3twritesize, (F)nfs3twriteprint, sizeof(Nfs3TWrite),
4014 551445b9 2004-04-21 devnull (P)nfs3rwritepack, (P)nfs3rwriteunpack, (S)nfs3rwritesize, (F)nfs3rwriteprint, sizeof(Nfs3RWrite),
4015 551445b9 2004-04-21 devnull (P)nfs3tcreatepack, (P)nfs3tcreateunpack, (S)nfs3tcreatesize, (F)nfs3tcreateprint, sizeof(Nfs3TCreate),
4016 551445b9 2004-04-21 devnull (P)nfs3rcreatepack, (P)nfs3rcreateunpack, (S)nfs3rcreatesize, (F)nfs3rcreateprint, sizeof(Nfs3RCreate),
4017 551445b9 2004-04-21 devnull (P)nfs3tmkdirpack, (P)nfs3tmkdirunpack, (S)nfs3tmkdirsize, (F)nfs3tmkdirprint, sizeof(Nfs3TMkdir),
4018 551445b9 2004-04-21 devnull (P)nfs3rmkdirpack, (P)nfs3rmkdirunpack, (S)nfs3rmkdirsize, (F)nfs3rmkdirprint, sizeof(Nfs3RMkdir),
4019 551445b9 2004-04-21 devnull (P)nfs3tsymlinkpack, (P)nfs3tsymlinkunpack, (S)nfs3tsymlinksize, (F)nfs3tsymlinkprint, sizeof(Nfs3TSymlink),
4020 551445b9 2004-04-21 devnull (P)nfs3rsymlinkpack, (P)nfs3rsymlinkunpack, (S)nfs3rsymlinksize, (F)nfs3rsymlinkprint, sizeof(Nfs3RSymlink),
4021 551445b9 2004-04-21 devnull (P)nfs3tmknodpack, (P)nfs3tmknodunpack, (S)nfs3tmknodsize, (F)nfs3tmknodprint, sizeof(Nfs3TMknod),
4022 551445b9 2004-04-21 devnull (P)nfs3rmknodpack, (P)nfs3rmknodunpack, (S)nfs3rmknodsize, (F)nfs3rmknodprint, sizeof(Nfs3RMknod),
4023 551445b9 2004-04-21 devnull (P)nfs3tremovepack, (P)nfs3tremoveunpack, (S)nfs3tremovesize, (F)nfs3tremoveprint, sizeof(Nfs3TRemove),
4024 551445b9 2004-04-21 devnull (P)nfs3rremovepack, (P)nfs3rremoveunpack, (S)nfs3rremovesize, (F)nfs3rremoveprint, sizeof(Nfs3RRemove),
4025 551445b9 2004-04-21 devnull (P)nfs3trmdirpack, (P)nfs3trmdirunpack, (S)nfs3trmdirsize, (F)nfs3trmdirprint, sizeof(Nfs3TRmdir),
4026 551445b9 2004-04-21 devnull (P)nfs3rrmdirpack, (P)nfs3rrmdirunpack, (S)nfs3rrmdirsize, (F)nfs3rrmdirprint, sizeof(Nfs3RRmdir),
4027 551445b9 2004-04-21 devnull (P)nfs3trenamepack, (P)nfs3trenameunpack, (S)nfs3trenamesize, (F)nfs3trenameprint, sizeof(Nfs3TRename),
4028 551445b9 2004-04-21 devnull (P)nfs3rrenamepack, (P)nfs3rrenameunpack, (S)nfs3rrenamesize, (F)nfs3rrenameprint, sizeof(Nfs3RRename),
4029 551445b9 2004-04-21 devnull (P)nfs3tlinkpack, (P)nfs3tlinkunpack, (S)nfs3tlinksize, (F)nfs3tlinkprint, sizeof(Nfs3TLink),
4030 551445b9 2004-04-21 devnull (P)nfs3rlinkpack, (P)nfs3rlinkunpack, (S)nfs3rlinksize, (F)nfs3rlinkprint, sizeof(Nfs3RLink),
4031 551445b9 2004-04-21 devnull (P)nfs3treaddirpack, (P)nfs3treaddirunpack, (S)nfs3treaddirsize, (F)nfs3treaddirprint, sizeof(Nfs3TReadDir),
4032 551445b9 2004-04-21 devnull (P)nfs3rreaddirpack, (P)nfs3rreaddirunpack, (S)nfs3rreaddirsize, (F)nfs3rreaddirprint, sizeof(Nfs3RReadDir),
4033 551445b9 2004-04-21 devnull (P)nfs3treaddirpluspack, (P)nfs3treaddirplusunpack, (S)nfs3treaddirplussize, (F)nfs3treaddirplusprint, sizeof(Nfs3TReadDirPlus),
4034 551445b9 2004-04-21 devnull (P)nfs3rreaddirpluspack, (P)nfs3rreaddirplusunpack, (S)nfs3rreaddirplussize, (F)nfs3rreaddirplusprint, sizeof(Nfs3RReadDirPlus),
4035 551445b9 2004-04-21 devnull (P)nfs3tfsstatpack, (P)nfs3tfsstatunpack, (S)nfs3tfsstatsize, (F)nfs3tfsstatprint, sizeof(Nfs3TFsStat),
4036 551445b9 2004-04-21 devnull (P)nfs3rfsstatpack, (P)nfs3rfsstatunpack, (S)nfs3rfsstatsize, (F)nfs3rfsstatprint, sizeof(Nfs3RFsStat),
4037 551445b9 2004-04-21 devnull (P)nfs3tfsinfopack, (P)nfs3tfsinfounpack, (S)nfs3tfsinfosize, (F)nfs3tfsinfoprint, sizeof(Nfs3TFsInfo),
4038 551445b9 2004-04-21 devnull (P)nfs3rfsinfopack, (P)nfs3rfsinfounpack, (S)nfs3rfsinfosize, (F)nfs3rfsinfoprint, sizeof(Nfs3RFsInfo),
4039 551445b9 2004-04-21 devnull (P)nfs3tpathconfpack, (P)nfs3tpathconfunpack, (S)nfs3tpathconfsize, (F)nfs3tpathconfprint, sizeof(Nfs3TPathconf),
4040 551445b9 2004-04-21 devnull (P)nfs3rpathconfpack, (P)nfs3rpathconfunpack, (S)nfs3rpathconfsize, (F)nfs3rpathconfprint, sizeof(Nfs3RPathconf),
4041 551445b9 2004-04-21 devnull (P)nfs3tcommitpack, (P)nfs3tcommitunpack, (S)nfs3tcommitsize, (F)nfs3tcommitprint, sizeof(Nfs3TCommit),
4042 551445b9 2004-04-21 devnull (P)nfs3rcommitpack, (P)nfs3rcommitunpack, (S)nfs3rcommitsize, (F)nfs3rcommitprint, sizeof(Nfs3RCommit)
4043 551445b9 2004-04-21 devnull };
4044 551445b9 2004-04-21 devnull
4045 fa325e9b 2020-01-10 cross SunProg nfs3prog =
4046 551445b9 2004-04-21 devnull {
4047 551445b9 2004-04-21 devnull Nfs3Program,
4048 551445b9 2004-04-21 devnull Nfs3Version,
4049 551445b9 2004-04-21 devnull proc,
4050 551445b9 2004-04-21 devnull nelem(proc),
4051 551445b9 2004-04-21 devnull };