1 /*
2 Copyright (c) 2014, Ronnie Sahlberg
3 All rights reserved.
4
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7
8 1. Redistributions of source code must retain the above copyright notice, this
9 list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright notice,
11 this list of conditions and the following disclaimer in the documentation
12 and/or other materials provided with the distribution.
13
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
25 The views and conclusions contained in the software and documentation are those
26 of the authors and should not be interpreted as representing official policies,
27 either expressed or implied, of the FreeBSD Project.
28 */
29
30 /*
31 * Please do not edit this file.
32 * It was generated using rpcgen.
33 */
34
35 #include "libnfs-zdr.h"
36 #include "libnfs-raw-nfs.h"
37
38 uint32_t
zdr_cookieverf3(ZDR * zdrs,cookieverf3 objp)39 zdr_cookieverf3 (ZDR *zdrs, cookieverf3 objp)
40 {
41 if (!zdr_opaque (zdrs, objp, NFS3_COOKIEVERFSIZE))
42 return FALSE;
43 return TRUE;
44 }
45
46 uint32_t
zdr_cookie3(ZDR * zdrs,cookie3 * objp)47 zdr_cookie3 (ZDR *zdrs, cookie3 *objp)
48 {
49 if (!zdr_uint64_t (zdrs, objp))
50 return FALSE;
51 return TRUE;
52 }
53
54 uint32_t
zdr_nfs_fh3(ZDR * zdrs,nfs_fh3 * objp)55 zdr_nfs_fh3 (ZDR *zdrs, nfs_fh3 *objp)
56 {
57 if (!zdr_bytes (zdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS3_FHSIZE))
58 return FALSE;
59 return TRUE;
60 }
61
62 uint32_t
zdr_filename3(ZDR * zdrs,filename3 * objp)63 zdr_filename3 (ZDR *zdrs, filename3 *objp)
64 {
65 if (!zdr_string (zdrs, objp, ~0))
66 return FALSE;
67 return TRUE;
68 }
69
70 uint32_t
zdr_diropargs3(ZDR * zdrs,diropargs3 * objp)71 zdr_diropargs3 (ZDR *zdrs, diropargs3 *objp)
72 {
73 if (!zdr_nfs_fh3 (zdrs, &objp->dir))
74 return FALSE;
75 if (!zdr_filename3 (zdrs, &objp->name))
76 return FALSE;
77 return TRUE;
78 }
79
80 uint32_t
zdr_ftype3(ZDR * zdrs,ftype3 * objp)81 zdr_ftype3 (ZDR *zdrs, ftype3 *objp)
82 {
83 if (!zdr_enum (zdrs, (enum_t *) objp))
84 return FALSE;
85 return TRUE;
86 }
87
88 uint32_t
zdr_mode3(ZDR * zdrs,mode3 * objp)89 zdr_mode3 (ZDR *zdrs, mode3 *objp)
90 {
91 if (!zdr_u_int (zdrs, objp))
92 return FALSE;
93 return TRUE;
94 }
95
96 uint32_t
zdr_uid3(ZDR * zdrs,uid3 * objp)97 zdr_uid3 (ZDR *zdrs, uid3 *objp)
98 {
99 if (!zdr_u_int (zdrs, objp))
100 return FALSE;
101 return TRUE;
102 }
103
104 uint32_t
zdr_gid3(ZDR * zdrs,gid3 * objp)105 zdr_gid3 (ZDR *zdrs, gid3 *objp)
106 {
107 if (!zdr_u_int (zdrs, objp))
108 return FALSE;
109 return TRUE;
110 }
111
112 uint32_t
zdr_size3(ZDR * zdrs,size3 * objp)113 zdr_size3 (ZDR *zdrs, size3 *objp)
114 {
115 if (!zdr_uint64_t (zdrs, objp))
116 return FALSE;
117 return TRUE;
118 }
119
120 uint32_t
zdr_fileid3(ZDR * zdrs,fileid3 * objp)121 zdr_fileid3 (ZDR *zdrs, fileid3 *objp)
122 {
123 if (!zdr_uint64_t (zdrs, objp))
124 return FALSE;
125 return TRUE;
126 }
127
128 uint32_t
zdr_specdata3(ZDR * zdrs,specdata3 * objp)129 zdr_specdata3 (ZDR *zdrs, specdata3 *objp)
130 {
131 if (!zdr_u_int (zdrs, &objp->specdata1))
132 return FALSE;
133 if (!zdr_u_int (zdrs, &objp->specdata2))
134 return FALSE;
135 return TRUE;
136 }
137
138 uint32_t
zdr_nfstime3(ZDR * zdrs,nfstime3 * objp)139 zdr_nfstime3 (ZDR *zdrs, nfstime3 *objp)
140 {
141 if (!zdr_u_int (zdrs, &objp->seconds))
142 return FALSE;
143 if (!zdr_u_int (zdrs, &objp->nseconds))
144 return FALSE;
145 return TRUE;
146 }
147
148 uint32_t
zdr_fattr3(ZDR * zdrs,fattr3 * objp)149 zdr_fattr3 (ZDR *zdrs, fattr3 *objp)
150 {
151 if (!zdr_ftype3 (zdrs, &objp->type))
152 return FALSE;
153 if (!zdr_mode3 (zdrs, &objp->mode))
154 return FALSE;
155 if (!zdr_u_int (zdrs, &objp->nlink))
156 return FALSE;
157 if (!zdr_uid3 (zdrs, &objp->uid))
158 return FALSE;
159 if (!zdr_gid3 (zdrs, &objp->gid))
160 return FALSE;
161 if (!zdr_size3 (zdrs, &objp->size))
162 return FALSE;
163 if (!zdr_size3 (zdrs, &objp->used))
164 return FALSE;
165 if (!zdr_specdata3 (zdrs, &objp->rdev))
166 return FALSE;
167 if (!zdr_uint64_t (zdrs, &objp->fsid))
168 return FALSE;
169 if (!zdr_fileid3 (zdrs, &objp->fileid))
170 return FALSE;
171 if (!zdr_nfstime3 (zdrs, &objp->atime))
172 return FALSE;
173 if (!zdr_nfstime3 (zdrs, &objp->mtime))
174 return FALSE;
175 if (!zdr_nfstime3 (zdrs, &objp->ctime))
176 return FALSE;
177 return TRUE;
178 }
179
180 uint32_t
zdr_post_op_attr(ZDR * zdrs,post_op_attr * objp)181 zdr_post_op_attr (ZDR *zdrs, post_op_attr *objp)
182 {
183 if (!zdr_bool (zdrs, &objp->attributes_follow))
184 return FALSE;
185 switch (objp->attributes_follow) {
186 case TRUE:
187 if (!zdr_fattr3 (zdrs, &objp->post_op_attr_u.attributes))
188 return FALSE;
189 break;
190 case FALSE:
191 break;
192 default:
193 return FALSE;
194 }
195 return TRUE;
196 }
197
198 uint32_t
zdr_nfsstat3(ZDR * zdrs,nfsstat3 * objp)199 zdr_nfsstat3 (ZDR *zdrs, nfsstat3 *objp)
200 {
201 if (!zdr_enum (zdrs, (enum_t *) objp))
202 return FALSE;
203 return TRUE;
204 }
205
206 uint32_t
zdr_stable_how(ZDR * zdrs,stable_how * objp)207 zdr_stable_how (ZDR *zdrs, stable_how *objp)
208 {
209 if (!zdr_enum (zdrs, (enum_t *) objp))
210 return FALSE;
211 return TRUE;
212 }
213
214 uint32_t
zdr_offset3(ZDR * zdrs,offset3 * objp)215 zdr_offset3 (ZDR *zdrs, offset3 *objp)
216 {
217 if (!zdr_uint64_t (zdrs, objp))
218 return FALSE;
219 return TRUE;
220 }
221
222 uint32_t
zdr_count3(ZDR * zdrs,count3 * objp)223 zdr_count3 (ZDR *zdrs, count3 *objp)
224 {
225 if (!zdr_u_int (zdrs, objp))
226 return FALSE;
227 return TRUE;
228 }
229
230 uint32_t
zdr_wcc_attr(ZDR * zdrs,wcc_attr * objp)231 zdr_wcc_attr (ZDR *zdrs, wcc_attr *objp)
232 {
233 if (!zdr_size3 (zdrs, &objp->size))
234 return FALSE;
235 if (!zdr_nfstime3 (zdrs, &objp->mtime))
236 return FALSE;
237 if (!zdr_nfstime3 (zdrs, &objp->ctime))
238 return FALSE;
239 return TRUE;
240 }
241
242 uint32_t
zdr_pre_op_attr(ZDR * zdrs,pre_op_attr * objp)243 zdr_pre_op_attr (ZDR *zdrs, pre_op_attr *objp)
244 {
245 if (!zdr_bool (zdrs, &objp->attributes_follow))
246 return FALSE;
247 switch (objp->attributes_follow) {
248 case TRUE:
249 if (!zdr_wcc_attr (zdrs, &objp->pre_op_attr_u.attributes))
250 return FALSE;
251 break;
252 case FALSE:
253 break;
254 default:
255 return FALSE;
256 }
257 return TRUE;
258 }
259
260 uint32_t
zdr_wcc_data(ZDR * zdrs,wcc_data * objp)261 zdr_wcc_data (ZDR *zdrs, wcc_data *objp)
262 {
263 if (!zdr_pre_op_attr (zdrs, &objp->before))
264 return FALSE;
265 if (!zdr_post_op_attr (zdrs, &objp->after))
266 return FALSE;
267 return TRUE;
268 }
269
270 uint32_t
zdr_WRITE3args(ZDR * zdrs,WRITE3args * objp)271 zdr_WRITE3args (ZDR *zdrs, WRITE3args *objp)
272 {
273 if (!zdr_nfs_fh3 (zdrs, &objp->file))
274 return FALSE;
275 if (!zdr_offset3 (zdrs, &objp->offset))
276 return FALSE;
277 if (!zdr_count3 (zdrs, &objp->count))
278 return FALSE;
279 if (!zdr_stable_how (zdrs, &objp->stable))
280 return FALSE;
281 if (!zdr_bytes (zdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0))
282 return FALSE;
283 return TRUE;
284 }
285
286 uint32_t
zdr_writeverf3(ZDR * zdrs,writeverf3 objp)287 zdr_writeverf3 (ZDR *zdrs, writeverf3 objp)
288 {
289 if (!zdr_opaque (zdrs, objp, NFS3_WRITEVERFSIZE))
290 return FALSE;
291 return TRUE;
292 }
293
294 uint32_t
zdr_WRITE3resok(ZDR * zdrs,WRITE3resok * objp)295 zdr_WRITE3resok (ZDR *zdrs, WRITE3resok *objp)
296 {
297 if (!zdr_wcc_data (zdrs, &objp->file_wcc))
298 return FALSE;
299 if (!zdr_count3 (zdrs, &objp->count))
300 return FALSE;
301 if (!zdr_stable_how (zdrs, &objp->committed))
302 return FALSE;
303 if (!zdr_writeverf3 (zdrs, objp->verf))
304 return FALSE;
305 return TRUE;
306 }
307
308 uint32_t
zdr_WRITE3resfail(ZDR * zdrs,WRITE3resfail * objp)309 zdr_WRITE3resfail (ZDR *zdrs, WRITE3resfail *objp)
310 {
311 if (!zdr_wcc_data (zdrs, &objp->file_wcc))
312 return FALSE;
313 return TRUE;
314 }
315
316 uint32_t
zdr_WRITE3res(ZDR * zdrs,WRITE3res * objp)317 zdr_WRITE3res (ZDR *zdrs, WRITE3res *objp)
318 {
319 if (!zdr_nfsstat3 (zdrs, &objp->status))
320 return FALSE;
321 switch (objp->status) {
322 case NFS3_OK:
323 if (!zdr_WRITE3resok (zdrs, &objp->WRITE3res_u.resok))
324 return FALSE;
325 break;
326 default:
327 if (!zdr_WRITE3resfail (zdrs, &objp->WRITE3res_u.resfail))
328 return FALSE;
329 break;
330 }
331 return TRUE;
332 }
333
334 uint32_t
zdr_LOOKUP3args(ZDR * zdrs,LOOKUP3args * objp)335 zdr_LOOKUP3args (ZDR *zdrs, LOOKUP3args *objp)
336 {
337 if (!zdr_diropargs3 (zdrs, &objp->what))
338 return FALSE;
339 return TRUE;
340 }
341
342 uint32_t
zdr_LOOKUP3resok(ZDR * zdrs,LOOKUP3resok * objp)343 zdr_LOOKUP3resok (ZDR *zdrs, LOOKUP3resok *objp)
344 {
345 if (!zdr_nfs_fh3 (zdrs, &objp->object))
346 return FALSE;
347 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
348 return FALSE;
349 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
350 return FALSE;
351 return TRUE;
352 }
353
354 uint32_t
zdr_LOOKUP3resfail(ZDR * zdrs,LOOKUP3resfail * objp)355 zdr_LOOKUP3resfail (ZDR *zdrs, LOOKUP3resfail *objp)
356 {
357 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
358 return FALSE;
359 return TRUE;
360 }
361
362 uint32_t
zdr_LOOKUP3res(ZDR * zdrs,LOOKUP3res * objp)363 zdr_LOOKUP3res (ZDR *zdrs, LOOKUP3res *objp)
364 {
365 if (!zdr_nfsstat3 (zdrs, &objp->status))
366 return FALSE;
367 switch (objp->status) {
368 case NFS3_OK:
369 if (!zdr_LOOKUP3resok (zdrs, &objp->LOOKUP3res_u.resok))
370 return FALSE;
371 break;
372 default:
373 if (!zdr_LOOKUP3resfail (zdrs, &objp->LOOKUP3res_u.resfail))
374 return FALSE;
375 break;
376 }
377 return TRUE;
378 }
379
380 uint32_t
zdr_COMMIT3args(ZDR * zdrs,COMMIT3args * objp)381 zdr_COMMIT3args (ZDR *zdrs, COMMIT3args *objp)
382 {
383 if (!zdr_nfs_fh3 (zdrs, &objp->file))
384 return FALSE;
385 if (!zdr_offset3 (zdrs, &objp->offset))
386 return FALSE;
387 if (!zdr_count3 (zdrs, &objp->count))
388 return FALSE;
389 return TRUE;
390 }
391
392 uint32_t
zdr_COMMIT3resok(ZDR * zdrs,COMMIT3resok * objp)393 zdr_COMMIT3resok (ZDR *zdrs, COMMIT3resok *objp)
394 {
395 if (!zdr_wcc_data (zdrs, &objp->file_wcc))
396 return FALSE;
397 if (!zdr_writeverf3 (zdrs, objp->verf))
398 return FALSE;
399 return TRUE;
400 }
401
402 uint32_t
zdr_COMMIT3resfail(ZDR * zdrs,COMMIT3resfail * objp)403 zdr_COMMIT3resfail (ZDR *zdrs, COMMIT3resfail *objp)
404 {
405 if (!zdr_wcc_data (zdrs, &objp->file_wcc))
406 return FALSE;
407 return TRUE;
408 }
409
410 uint32_t
zdr_COMMIT3res(ZDR * zdrs,COMMIT3res * objp)411 zdr_COMMIT3res (ZDR *zdrs, COMMIT3res *objp)
412 {
413 if (!zdr_nfsstat3 (zdrs, &objp->status))
414 return FALSE;
415 switch (objp->status) {
416 case NFS3_OK:
417 if (!zdr_COMMIT3resok (zdrs, &objp->COMMIT3res_u.resok))
418 return FALSE;
419 break;
420 default:
421 if (!zdr_COMMIT3resfail (zdrs, &objp->COMMIT3res_u.resfail))
422 return FALSE;
423 break;
424 }
425 return TRUE;
426 }
427
428 uint32_t
zdr_ACCESS3args(ZDR * zdrs,ACCESS3args * objp)429 zdr_ACCESS3args (ZDR *zdrs, ACCESS3args *objp)
430 {
431 if (!zdr_nfs_fh3 (zdrs, &objp->object))
432 return FALSE;
433 if (!zdr_u_int (zdrs, &objp->access))
434 return FALSE;
435 return TRUE;
436 }
437
438 uint32_t
zdr_ACCESS3resok(ZDR * zdrs,ACCESS3resok * objp)439 zdr_ACCESS3resok (ZDR *zdrs, ACCESS3resok *objp)
440 {
441 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
442 return FALSE;
443 if (!zdr_u_int (zdrs, &objp->access))
444 return FALSE;
445 return TRUE;
446 }
447
448 uint32_t
zdr_ACCESS3resfail(ZDR * zdrs,ACCESS3resfail * objp)449 zdr_ACCESS3resfail (ZDR *zdrs, ACCESS3resfail *objp)
450 {
451 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
452 return FALSE;
453 return TRUE;
454 }
455
456 uint32_t
zdr_ACCESS3res(ZDR * zdrs,ACCESS3res * objp)457 zdr_ACCESS3res (ZDR *zdrs, ACCESS3res *objp)
458 {
459 if (!zdr_nfsstat3 (zdrs, &objp->status))
460 return FALSE;
461 switch (objp->status) {
462 case NFS3_OK:
463 if (!zdr_ACCESS3resok (zdrs, &objp->ACCESS3res_u.resok))
464 return FALSE;
465 break;
466 default:
467 if (!zdr_ACCESS3resfail (zdrs, &objp->ACCESS3res_u.resfail))
468 return FALSE;
469 break;
470 }
471 return TRUE;
472 }
473
474 uint32_t
zdr_GETATTR3args(ZDR * zdrs,GETATTR3args * objp)475 zdr_GETATTR3args (ZDR *zdrs, GETATTR3args *objp)
476 {
477 if (!zdr_nfs_fh3 (zdrs, &objp->object))
478 return FALSE;
479 return TRUE;
480 }
481
482 uint32_t
zdr_GETATTR3resok(ZDR * zdrs,GETATTR3resok * objp)483 zdr_GETATTR3resok (ZDR *zdrs, GETATTR3resok *objp)
484 {
485 if (!zdr_fattr3 (zdrs, &objp->obj_attributes))
486 return FALSE;
487 return TRUE;
488 }
489
490 uint32_t
zdr_GETATTR3res(ZDR * zdrs,GETATTR3res * objp)491 zdr_GETATTR3res (ZDR *zdrs, GETATTR3res *objp)
492 {
493 if (!zdr_nfsstat3 (zdrs, &objp->status))
494 return FALSE;
495 switch (objp->status) {
496 case NFS3_OK:
497 if (!zdr_GETATTR3resok (zdrs, &objp->GETATTR3res_u.resok))
498 return FALSE;
499 break;
500 default:
501 break;
502 }
503 return TRUE;
504 }
505
506 uint32_t
zdr_time_how(ZDR * zdrs,time_how * objp)507 zdr_time_how (ZDR *zdrs, time_how *objp)
508 {
509 if (!zdr_enum (zdrs, (enum_t *) objp))
510 return FALSE;
511 return TRUE;
512 }
513
514 uint32_t
zdr_set_mode3(ZDR * zdrs,set_mode3 * objp)515 zdr_set_mode3 (ZDR *zdrs, set_mode3 *objp)
516 {
517 if (!zdr_bool (zdrs, &objp->set_it))
518 return FALSE;
519 switch (objp->set_it) {
520 case TRUE:
521 if (!zdr_mode3 (zdrs, &objp->set_mode3_u.mode))
522 return FALSE;
523 break;
524 default:
525 break;
526 }
527 return TRUE;
528 }
529
530 uint32_t
zdr_set_uid3(ZDR * zdrs,set_uid3 * objp)531 zdr_set_uid3 (ZDR *zdrs, set_uid3 *objp)
532 {
533 if (!zdr_bool (zdrs, &objp->set_it))
534 return FALSE;
535 switch (objp->set_it) {
536 case TRUE:
537 if (!zdr_uid3 (zdrs, &objp->set_uid3_u.uid))
538 return FALSE;
539 break;
540 default:
541 break;
542 }
543 return TRUE;
544 }
545
546 uint32_t
zdr_set_gid3(ZDR * zdrs,set_gid3 * objp)547 zdr_set_gid3 (ZDR *zdrs, set_gid3 *objp)
548 {
549 if (!zdr_bool (zdrs, &objp->set_it))
550 return FALSE;
551 switch (objp->set_it) {
552 case TRUE:
553 if (!zdr_gid3 (zdrs, &objp->set_gid3_u.gid))
554 return FALSE;
555 break;
556 default:
557 break;
558 }
559 return TRUE;
560 }
561
562 uint32_t
zdr_set_size3(ZDR * zdrs,set_size3 * objp)563 zdr_set_size3 (ZDR *zdrs, set_size3 *objp)
564 {
565 if (!zdr_bool (zdrs, &objp->set_it))
566 return FALSE;
567 switch (objp->set_it) {
568 case TRUE:
569 if (!zdr_size3 (zdrs, &objp->set_size3_u.size))
570 return FALSE;
571 break;
572 default:
573 break;
574 }
575 return TRUE;
576 }
577
578 uint32_t
zdr_set_atime(ZDR * zdrs,set_atime * objp)579 zdr_set_atime (ZDR *zdrs, set_atime *objp)
580 {
581 if (!zdr_time_how (zdrs, &objp->set_it))
582 return FALSE;
583 switch (objp->set_it) {
584 case SET_TO_CLIENT_TIME:
585 if (!zdr_nfstime3 (zdrs, &objp->set_atime_u.atime))
586 return FALSE;
587 break;
588 default:
589 break;
590 }
591 return TRUE;
592 }
593
594 uint32_t
zdr_set_mtime(ZDR * zdrs,set_mtime * objp)595 zdr_set_mtime (ZDR *zdrs, set_mtime *objp)
596 {
597 if (!zdr_time_how (zdrs, &objp->set_it))
598 return FALSE;
599 switch (objp->set_it) {
600 case SET_TO_CLIENT_TIME:
601 if (!zdr_nfstime3 (zdrs, &objp->set_mtime_u.mtime))
602 return FALSE;
603 break;
604 default:
605 break;
606 }
607 return TRUE;
608 }
609
610 uint32_t
zdr_sattr3(ZDR * zdrs,sattr3 * objp)611 zdr_sattr3 (ZDR *zdrs, sattr3 *objp)
612 {
613 if (!zdr_set_mode3 (zdrs, &objp->mode))
614 return FALSE;
615 if (!zdr_set_uid3 (zdrs, &objp->uid))
616 return FALSE;
617 if (!zdr_set_gid3 (zdrs, &objp->gid))
618 return FALSE;
619 if (!zdr_set_size3 (zdrs, &objp->size))
620 return FALSE;
621 if (!zdr_set_atime (zdrs, &objp->atime))
622 return FALSE;
623 if (!zdr_set_mtime (zdrs, &objp->mtime))
624 return FALSE;
625 return TRUE;
626 }
627
628 uint32_t
zdr_createmode3(ZDR * zdrs,createmode3 * objp)629 zdr_createmode3 (ZDR *zdrs, createmode3 *objp)
630 {
631 if (!zdr_enum (zdrs, (enum_t *) objp))
632 return FALSE;
633 return TRUE;
634 }
635
636 uint32_t
zdr_createverf3(ZDR * zdrs,createverf3 objp)637 zdr_createverf3 (ZDR *zdrs, createverf3 objp)
638 {
639 if (!zdr_opaque (zdrs, objp, NFS3_CREATEVERFSIZE))
640 return FALSE;
641 return TRUE;
642 }
643
644 uint32_t
zdr_createhow3(ZDR * zdrs,createhow3 * objp)645 zdr_createhow3 (ZDR *zdrs, createhow3 *objp)
646 {
647 if (!zdr_createmode3 (zdrs, &objp->mode))
648 return FALSE;
649 switch (objp->mode) {
650 case UNCHECKED:
651 if (!zdr_sattr3 (zdrs, &objp->createhow3_u.obj_attributes))
652 return FALSE;
653 break;
654 case GUARDED:
655 if (!zdr_sattr3 (zdrs, &objp->createhow3_u.g_obj_attributes))
656 return FALSE;
657 break;
658 case EXCLUSIVE:
659 if (!zdr_createverf3 (zdrs, objp->createhow3_u.verf))
660 return FALSE;
661 break;
662 default:
663 return FALSE;
664 }
665 return TRUE;
666 }
667
668 uint32_t
zdr_CREATE3args(ZDR * zdrs,CREATE3args * objp)669 zdr_CREATE3args (ZDR *zdrs, CREATE3args *objp)
670 {
671 if (!zdr_diropargs3 (zdrs, &objp->where))
672 return FALSE;
673 if (!zdr_createhow3 (zdrs, &objp->how))
674 return FALSE;
675 return TRUE;
676 }
677
678 uint32_t
zdr_post_op_fh3(ZDR * zdrs,post_op_fh3 * objp)679 zdr_post_op_fh3 (ZDR *zdrs, post_op_fh3 *objp)
680 {
681 if (!zdr_bool (zdrs, &objp->handle_follows))
682 return FALSE;
683 switch (objp->handle_follows) {
684 case TRUE:
685 if (!zdr_nfs_fh3 (zdrs, &objp->post_op_fh3_u.handle))
686 return FALSE;
687 break;
688 case FALSE:
689 break;
690 default:
691 return FALSE;
692 }
693 return TRUE;
694 }
695
696 uint32_t
zdr_CREATE3resok(ZDR * zdrs,CREATE3resok * objp)697 zdr_CREATE3resok (ZDR *zdrs, CREATE3resok *objp)
698 {
699 if (!zdr_post_op_fh3 (zdrs, &objp->obj))
700 return FALSE;
701 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
702 return FALSE;
703 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
704 return FALSE;
705 return TRUE;
706 }
707
708 uint32_t
zdr_CREATE3resfail(ZDR * zdrs,CREATE3resfail * objp)709 zdr_CREATE3resfail (ZDR *zdrs, CREATE3resfail *objp)
710 {
711 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
712 return FALSE;
713 return TRUE;
714 }
715
716 uint32_t
zdr_CREATE3res(ZDR * zdrs,CREATE3res * objp)717 zdr_CREATE3res (ZDR *zdrs, CREATE3res *objp)
718 {
719 if (!zdr_nfsstat3 (zdrs, &objp->status))
720 return FALSE;
721 switch (objp->status) {
722 case NFS3_OK:
723 if (!zdr_CREATE3resok (zdrs, &objp->CREATE3res_u.resok))
724 return FALSE;
725 break;
726 default:
727 if (!zdr_CREATE3resfail (zdrs, &objp->CREATE3res_u.resfail))
728 return FALSE;
729 break;
730 }
731 return TRUE;
732 }
733
734 uint32_t
zdr_REMOVE3args(ZDR * zdrs,REMOVE3args * objp)735 zdr_REMOVE3args (ZDR *zdrs, REMOVE3args *objp)
736 {
737 if (!zdr_diropargs3 (zdrs, &objp->object))
738 return FALSE;
739 return TRUE;
740 }
741
742 uint32_t
zdr_REMOVE3resok(ZDR * zdrs,REMOVE3resok * objp)743 zdr_REMOVE3resok (ZDR *zdrs, REMOVE3resok *objp)
744 {
745 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
746 return FALSE;
747 return TRUE;
748 }
749
750 uint32_t
zdr_REMOVE3resfail(ZDR * zdrs,REMOVE3resfail * objp)751 zdr_REMOVE3resfail (ZDR *zdrs, REMOVE3resfail *objp)
752 {
753 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
754 return FALSE;
755 return TRUE;
756 }
757
758 uint32_t
zdr_REMOVE3res(ZDR * zdrs,REMOVE3res * objp)759 zdr_REMOVE3res (ZDR *zdrs, REMOVE3res *objp)
760 {
761 if (!zdr_nfsstat3 (zdrs, &objp->status))
762 return FALSE;
763 switch (objp->status) {
764 case NFS3_OK:
765 if (!zdr_REMOVE3resok (zdrs, &objp->REMOVE3res_u.resok))
766 return FALSE;
767 break;
768 default:
769 if (!zdr_REMOVE3resfail (zdrs, &objp->REMOVE3res_u.resfail))
770 return FALSE;
771 break;
772 }
773 return TRUE;
774 }
775
776 uint32_t
zdr_READ3args(ZDR * zdrs,READ3args * objp)777 zdr_READ3args (ZDR *zdrs, READ3args *objp)
778 {
779 if (!zdr_nfs_fh3 (zdrs, &objp->file))
780 return FALSE;
781 if (!zdr_offset3 (zdrs, &objp->offset))
782 return FALSE;
783 if (!zdr_count3 (zdrs, &objp->count))
784 return FALSE;
785 return TRUE;
786 }
787
788 uint32_t
zdr_READ3resok(ZDR * zdrs,READ3resok * objp)789 zdr_READ3resok (ZDR *zdrs, READ3resok *objp)
790 {
791 if (!zdr_post_op_attr (zdrs, &objp->file_attributes))
792 return FALSE;
793 if (!zdr_count3 (zdrs, &objp->count))
794 return FALSE;
795 if (!zdr_bool (zdrs, &objp->eof))
796 return FALSE;
797 if (!zdr_bytes (zdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0))
798 return FALSE;
799 return TRUE;
800 }
801
802 uint32_t
zdr_READ3resfail(ZDR * zdrs,READ3resfail * objp)803 zdr_READ3resfail (ZDR *zdrs, READ3resfail *objp)
804 {
805 if (!zdr_post_op_attr (zdrs, &objp->file_attributes))
806 return FALSE;
807 return TRUE;
808 }
809
810 uint32_t
zdr_READ3res(ZDR * zdrs,READ3res * objp)811 zdr_READ3res (ZDR *zdrs, READ3res *objp)
812 {
813 if (!zdr_nfsstat3 (zdrs, &objp->status))
814 return FALSE;
815 switch (objp->status) {
816 case NFS3_OK:
817 if (!zdr_READ3resok (zdrs, &objp->READ3res_u.resok))
818 return FALSE;
819 break;
820 default:
821 if (!zdr_READ3resfail (zdrs, &objp->READ3res_u.resfail))
822 return FALSE;
823 break;
824 }
825 return TRUE;
826 }
827
828 uint32_t
zdr_FSINFO3args(ZDR * zdrs,FSINFO3args * objp)829 zdr_FSINFO3args (ZDR *zdrs, FSINFO3args *objp)
830 {
831 if (!zdr_nfs_fh3 (zdrs, &objp->fsroot))
832 return FALSE;
833 return TRUE;
834 }
835
836 uint32_t
zdr_FSINFO3resok(ZDR * zdrs,FSINFO3resok * objp)837 zdr_FSINFO3resok (ZDR *zdrs, FSINFO3resok *objp)
838 {
839 register int32_t *buf;
840 buf = NULL;
841
842 if (zdrs->x_op == ZDR_ENCODE) {
843 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
844 return FALSE;
845 buf = ZDR_INLINE (zdrs, 7 * BYTES_PER_ZDR_UNIT);
846 if (buf == NULL) {
847 if (!zdr_u_int (zdrs, &objp->rtmax))
848 return FALSE;
849 if (!zdr_u_int (zdrs, &objp->rtpref))
850 return FALSE;
851 if (!zdr_u_int (zdrs, &objp->rtmult))
852 return FALSE;
853 if (!zdr_u_int (zdrs, &objp->wtmax))
854 return FALSE;
855 if (!zdr_u_int (zdrs, &objp->wtpref))
856 return FALSE;
857 if (!zdr_u_int (zdrs, &objp->wtmult))
858 return FALSE;
859 if (!zdr_u_int (zdrs, &objp->dtpref))
860 return FALSE;
861
862 } else {
863 IZDR_PUT_U_LONG(buf, objp->rtmax);
864 IZDR_PUT_U_LONG(buf, objp->rtpref);
865 IZDR_PUT_U_LONG(buf, objp->rtmult);
866 IZDR_PUT_U_LONG(buf, objp->wtmax);
867 IZDR_PUT_U_LONG(buf, objp->wtpref);
868 IZDR_PUT_U_LONG(buf, objp->wtmult);
869 IZDR_PUT_U_LONG(buf, objp->dtpref);
870 }
871 if (!zdr_size3 (zdrs, &objp->maxfilesize))
872 return FALSE;
873 if (!zdr_nfstime3 (zdrs, &objp->time_delta))
874 return FALSE;
875 if (!zdr_u_int (zdrs, &objp->properties))
876 return FALSE;
877 return TRUE;
878 } else if (zdrs->x_op == ZDR_DECODE) {
879 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
880 return FALSE;
881 buf = ZDR_INLINE (zdrs, 7 * BYTES_PER_ZDR_UNIT);
882 if (buf == NULL) {
883 if (!zdr_u_int (zdrs, &objp->rtmax))
884 return FALSE;
885 if (!zdr_u_int (zdrs, &objp->rtpref))
886 return FALSE;
887 if (!zdr_u_int (zdrs, &objp->rtmult))
888 return FALSE;
889 if (!zdr_u_int (zdrs, &objp->wtmax))
890 return FALSE;
891 if (!zdr_u_int (zdrs, &objp->wtpref))
892 return FALSE;
893 if (!zdr_u_int (zdrs, &objp->wtmult))
894 return FALSE;
895 if (!zdr_u_int (zdrs, &objp->dtpref))
896 return FALSE;
897
898 } else {
899 objp->rtmax = IZDR_GET_U_LONG(buf);
900 objp->rtpref = IZDR_GET_U_LONG(buf);
901 objp->rtmult = IZDR_GET_U_LONG(buf);
902 objp->wtmax = IZDR_GET_U_LONG(buf);
903 objp->wtpref = IZDR_GET_U_LONG(buf);
904 objp->wtmult = IZDR_GET_U_LONG(buf);
905 objp->dtpref = IZDR_GET_U_LONG(buf);
906 }
907 if (!zdr_size3 (zdrs, &objp->maxfilesize))
908 return FALSE;
909 if (!zdr_nfstime3 (zdrs, &objp->time_delta))
910 return FALSE;
911 if (!zdr_u_int (zdrs, &objp->properties))
912 return FALSE;
913 return TRUE;
914 }
915
916 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
917 return FALSE;
918 if (!zdr_u_int (zdrs, &objp->rtmax))
919 return FALSE;
920 if (!zdr_u_int (zdrs, &objp->rtpref))
921 return FALSE;
922 if (!zdr_u_int (zdrs, &objp->rtmult))
923 return FALSE;
924 if (!zdr_u_int (zdrs, &objp->wtmax))
925 return FALSE;
926 if (!zdr_u_int (zdrs, &objp->wtpref))
927 return FALSE;
928 if (!zdr_u_int (zdrs, &objp->wtmult))
929 return FALSE;
930 if (!zdr_u_int (zdrs, &objp->dtpref))
931 return FALSE;
932 if (!zdr_size3 (zdrs, &objp->maxfilesize))
933 return FALSE;
934 if (!zdr_nfstime3 (zdrs, &objp->time_delta))
935 return FALSE;
936 if (!zdr_u_int (zdrs, &objp->properties))
937 return FALSE;
938 return TRUE;
939 }
940
941 uint32_t
zdr_FSINFO3resfail(ZDR * zdrs,FSINFO3resfail * objp)942 zdr_FSINFO3resfail (ZDR *zdrs, FSINFO3resfail *objp)
943 {
944 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
945 return FALSE;
946 return TRUE;
947 }
948
949 uint32_t
zdr_FSINFO3res(ZDR * zdrs,FSINFO3res * objp)950 zdr_FSINFO3res (ZDR *zdrs, FSINFO3res *objp)
951 {
952 if (!zdr_nfsstat3 (zdrs, &objp->status))
953 return FALSE;
954 switch (objp->status) {
955 case NFS3_OK:
956 if (!zdr_FSINFO3resok (zdrs, &objp->FSINFO3res_u.resok))
957 return FALSE;
958 break;
959 default:
960 if (!zdr_FSINFO3resfail (zdrs, &objp->FSINFO3res_u.resfail))
961 return FALSE;
962 break;
963 }
964 return TRUE;
965 }
966
967 uint32_t
zdr_FSSTAT3args(ZDR * zdrs,FSSTAT3args * objp)968 zdr_FSSTAT3args (ZDR *zdrs, FSSTAT3args *objp)
969 {
970 if (!zdr_nfs_fh3 (zdrs, &objp->fsroot))
971 return FALSE;
972 return TRUE;
973 }
974
975 uint32_t
zdr_FSSTAT3resok(ZDR * zdrs,FSSTAT3resok * objp)976 zdr_FSSTAT3resok (ZDR *zdrs, FSSTAT3resok *objp)
977 {
978 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
979 return FALSE;
980 if (!zdr_size3 (zdrs, &objp->tbytes))
981 return FALSE;
982 if (!zdr_size3 (zdrs, &objp->fbytes))
983 return FALSE;
984 if (!zdr_size3 (zdrs, &objp->abytes))
985 return FALSE;
986 if (!zdr_size3 (zdrs, &objp->tfiles))
987 return FALSE;
988 if (!zdr_size3 (zdrs, &objp->ffiles))
989 return FALSE;
990 if (!zdr_size3 (zdrs, &objp->afiles))
991 return FALSE;
992 if (!zdr_u_int (zdrs, &objp->invarsec))
993 return FALSE;
994 return TRUE;
995 }
996
997 uint32_t
zdr_FSSTAT3resfail(ZDR * zdrs,FSSTAT3resfail * objp)998 zdr_FSSTAT3resfail (ZDR *zdrs, FSSTAT3resfail *objp)
999 {
1000 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1001 return FALSE;
1002 return TRUE;
1003 }
1004
1005 uint32_t
zdr_FSSTAT3res(ZDR * zdrs,FSSTAT3res * objp)1006 zdr_FSSTAT3res (ZDR *zdrs, FSSTAT3res *objp)
1007 {
1008 if (!zdr_nfsstat3 (zdrs, &objp->status))
1009 return FALSE;
1010 switch (objp->status) {
1011 case NFS3_OK:
1012 if (!zdr_FSSTAT3resok (zdrs, &objp->FSSTAT3res_u.resok))
1013 return FALSE;
1014 break;
1015 default:
1016 if (!zdr_FSSTAT3resfail (zdrs, &objp->FSSTAT3res_u.resfail))
1017 return FALSE;
1018 break;
1019 }
1020 return TRUE;
1021 }
1022
1023 uint32_t
zdr_PATHCONF3args(ZDR * zdrs,PATHCONF3args * objp)1024 zdr_PATHCONF3args (ZDR *zdrs, PATHCONF3args *objp)
1025 {
1026 if (!zdr_nfs_fh3 (zdrs, &objp->object))
1027 return FALSE;
1028 return TRUE;
1029 }
1030
1031 uint32_t
zdr_PATHCONF3resok(ZDR * zdrs,PATHCONF3resok * objp)1032 zdr_PATHCONF3resok (ZDR *zdrs, PATHCONF3resok *objp)
1033 {
1034 register int32_t *buf;
1035 buf = NULL;
1036
1037 if (zdrs->x_op == ZDR_ENCODE) {
1038 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1039 return FALSE;
1040 buf = ZDR_INLINE (zdrs, 6 * BYTES_PER_ZDR_UNIT);
1041 if (buf == NULL) {
1042 if (!zdr_u_int (zdrs, &objp->linkmax))
1043 return FALSE;
1044 if (!zdr_u_int (zdrs, &objp->name_max))
1045 return FALSE;
1046 if (!zdr_bool (zdrs, &objp->no_trunc))
1047 return FALSE;
1048 if (!zdr_bool (zdrs, &objp->chown_restricted))
1049 return FALSE;
1050 if (!zdr_bool (zdrs, &objp->case_insensitive))
1051 return FALSE;
1052 if (!zdr_bool (zdrs, &objp->case_preserving))
1053 return FALSE;
1054 } else {
1055 IZDR_PUT_U_LONG(buf, objp->linkmax);
1056 IZDR_PUT_U_LONG(buf, objp->name_max);
1057 IZDR_PUT_BOOL(buf, objp->no_trunc);
1058 IZDR_PUT_BOOL(buf, objp->chown_restricted);
1059 IZDR_PUT_BOOL(buf, objp->case_insensitive);
1060 IZDR_PUT_BOOL(buf, objp->case_preserving);
1061 }
1062 return TRUE;
1063 } else if (zdrs->x_op == ZDR_DECODE) {
1064 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1065 return FALSE;
1066 buf = ZDR_INLINE (zdrs, 6 * BYTES_PER_ZDR_UNIT);
1067 if (buf == NULL) {
1068 if (!zdr_u_int (zdrs, &objp->linkmax))
1069 return FALSE;
1070 if (!zdr_u_int (zdrs, &objp->name_max))
1071 return FALSE;
1072 if (!zdr_bool (zdrs, &objp->no_trunc))
1073 return FALSE;
1074 if (!zdr_bool (zdrs, &objp->chown_restricted))
1075 return FALSE;
1076 if (!zdr_bool (zdrs, &objp->case_insensitive))
1077 return FALSE;
1078 if (!zdr_bool (zdrs, &objp->case_preserving))
1079 return FALSE;
1080 } else {
1081 objp->linkmax = IZDR_GET_U_LONG(buf);
1082 objp->name_max = IZDR_GET_U_LONG(buf);
1083 objp->no_trunc = IZDR_GET_BOOL(buf);
1084 objp->chown_restricted = IZDR_GET_BOOL(buf);
1085 objp->case_insensitive = IZDR_GET_BOOL(buf);
1086 objp->case_preserving = IZDR_GET_BOOL(buf);
1087 }
1088 return TRUE;
1089 }
1090
1091 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1092 return FALSE;
1093 if (!zdr_u_int (zdrs, &objp->linkmax))
1094 return FALSE;
1095 if (!zdr_u_int (zdrs, &objp->name_max))
1096 return FALSE;
1097 if (!zdr_bool (zdrs, &objp->no_trunc))
1098 return FALSE;
1099 if (!zdr_bool (zdrs, &objp->chown_restricted))
1100 return FALSE;
1101 if (!zdr_bool (zdrs, &objp->case_insensitive))
1102 return FALSE;
1103 if (!zdr_bool (zdrs, &objp->case_preserving))
1104 return FALSE;
1105 return TRUE;
1106 }
1107
1108 uint32_t
zdr_PATHCONF3resfail(ZDR * zdrs,PATHCONF3resfail * objp)1109 zdr_PATHCONF3resfail (ZDR *zdrs, PATHCONF3resfail *objp)
1110 {
1111 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1112 return FALSE;
1113 return TRUE;
1114 }
1115
1116 uint32_t
zdr_PATHCONF3res(ZDR * zdrs,PATHCONF3res * objp)1117 zdr_PATHCONF3res (ZDR *zdrs, PATHCONF3res *objp)
1118 {
1119 if (!zdr_nfsstat3 (zdrs, &objp->status))
1120 return FALSE;
1121 switch (objp->status) {
1122 case NFS3_OK:
1123 if (!zdr_PATHCONF3resok (zdrs, &objp->PATHCONF3res_u.resok))
1124 return FALSE;
1125 break;
1126 default:
1127 if (!zdr_PATHCONF3resfail (zdrs, &objp->PATHCONF3res_u.resfail))
1128 return FALSE;
1129 break;
1130 }
1131 return TRUE;
1132 }
1133
1134 uint32_t
zdr_nfspath3(ZDR * zdrs,nfspath3 * objp)1135 zdr_nfspath3 (ZDR *zdrs, nfspath3 *objp)
1136 {
1137 if (!zdr_string (zdrs, objp, ~0))
1138 return FALSE;
1139 return TRUE;
1140 }
1141
1142 uint32_t
zdr_symlinkdata3(ZDR * zdrs,symlinkdata3 * objp)1143 zdr_symlinkdata3 (ZDR *zdrs, symlinkdata3 *objp)
1144 {
1145 if (!zdr_sattr3 (zdrs, &objp->symlink_attributes))
1146 return FALSE;
1147 if (!zdr_nfspath3 (zdrs, &objp->symlink_data))
1148 return FALSE;
1149 return TRUE;
1150 }
1151
1152 uint32_t
zdr_SYMLINK3args(ZDR * zdrs,SYMLINK3args * objp)1153 zdr_SYMLINK3args (ZDR *zdrs, SYMLINK3args *objp)
1154 {
1155 if (!zdr_diropargs3 (zdrs, &objp->where))
1156 return FALSE;
1157 if (!zdr_symlinkdata3 (zdrs, &objp->symlink))
1158 return FALSE;
1159 return TRUE;
1160 }
1161
1162 uint32_t
zdr_SYMLINK3resok(ZDR * zdrs,SYMLINK3resok * objp)1163 zdr_SYMLINK3resok (ZDR *zdrs, SYMLINK3resok *objp)
1164 {
1165 if (!zdr_post_op_fh3 (zdrs, &objp->obj))
1166 return FALSE;
1167 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1168 return FALSE;
1169 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1170 return FALSE;
1171 return TRUE;
1172 }
1173
1174 uint32_t
zdr_SYMLINK3resfail(ZDR * zdrs,SYMLINK3resfail * objp)1175 zdr_SYMLINK3resfail (ZDR *zdrs, SYMLINK3resfail *objp)
1176 {
1177 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1178 return FALSE;
1179 return TRUE;
1180 }
1181
1182 uint32_t
zdr_SYMLINK3res(ZDR * zdrs,SYMLINK3res * objp)1183 zdr_SYMLINK3res (ZDR *zdrs, SYMLINK3res *objp)
1184 {
1185 if (!zdr_nfsstat3 (zdrs, &objp->status))
1186 return FALSE;
1187 switch (objp->status) {
1188 case NFS3_OK:
1189 if (!zdr_SYMLINK3resok (zdrs, &objp->SYMLINK3res_u.resok))
1190 return FALSE;
1191 break;
1192 default:
1193 if (!zdr_SYMLINK3resfail (zdrs, &objp->SYMLINK3res_u.resfail))
1194 return FALSE;
1195 break;
1196 }
1197 return TRUE;
1198 }
1199
1200 uint32_t
zdr_READLINK3args(ZDR * zdrs,READLINK3args * objp)1201 zdr_READLINK3args (ZDR *zdrs, READLINK3args *objp)
1202 {
1203 if (!zdr_nfs_fh3 (zdrs, &objp->symlink))
1204 return FALSE;
1205 return TRUE;
1206 }
1207
1208 uint32_t
zdr_READLINK3resok(ZDR * zdrs,READLINK3resok * objp)1209 zdr_READLINK3resok (ZDR *zdrs, READLINK3resok *objp)
1210 {
1211 if (!zdr_post_op_attr (zdrs, &objp->symlink_attributes))
1212 return FALSE;
1213 if (!zdr_nfspath3 (zdrs, &objp->data))
1214 return FALSE;
1215 return TRUE;
1216 }
1217
1218 uint32_t
zdr_READLINK3resfail(ZDR * zdrs,READLINK3resfail * objp)1219 zdr_READLINK3resfail (ZDR *zdrs, READLINK3resfail *objp)
1220 {
1221 if (!zdr_post_op_attr (zdrs, &objp->symlink_attributes))
1222 return FALSE;
1223 return TRUE;
1224 }
1225
1226 uint32_t
zdr_READLINK3res(ZDR * zdrs,READLINK3res * objp)1227 zdr_READLINK3res (ZDR *zdrs, READLINK3res *objp)
1228 {
1229 if (!zdr_nfsstat3 (zdrs, &objp->status))
1230 return FALSE;
1231 switch (objp->status) {
1232 case NFS3_OK:
1233 if (!zdr_READLINK3resok (zdrs, &objp->READLINK3res_u.resok))
1234 return FALSE;
1235 break;
1236 default:
1237 if (!zdr_READLINK3resfail (zdrs, &objp->READLINK3res_u.resfail))
1238 return FALSE;
1239 break;
1240 }
1241 return TRUE;
1242 }
1243
1244 uint32_t
zdr_devicedata3(ZDR * zdrs,devicedata3 * objp)1245 zdr_devicedata3 (ZDR *zdrs, devicedata3 *objp)
1246 {
1247 if (!zdr_sattr3 (zdrs, &objp->dev_attributes))
1248 return FALSE;
1249 if (!zdr_specdata3 (zdrs, &objp->spec))
1250 return FALSE;
1251 return TRUE;
1252 }
1253
1254 uint32_t
zdr_mknoddata3(ZDR * zdrs,mknoddata3 * objp)1255 zdr_mknoddata3 (ZDR *zdrs, mknoddata3 *objp)
1256 {
1257 if (!zdr_ftype3 (zdrs, &objp->type))
1258 return FALSE;
1259 switch (objp->type) {
1260 case NF3CHR:
1261 if (!zdr_devicedata3 (zdrs, &objp->mknoddata3_u.chr_device))
1262 return FALSE;
1263 break;
1264 case NF3BLK:
1265 if (!zdr_devicedata3 (zdrs, &objp->mknoddata3_u.blk_device))
1266 return FALSE;
1267 break;
1268 case NF3SOCK:
1269 if (!zdr_sattr3 (zdrs, &objp->mknoddata3_u.sock_attributes))
1270 return FALSE;
1271 break;
1272 case NF3FIFO:
1273 if (!zdr_sattr3 (zdrs, &objp->mknoddata3_u.pipe_attributes))
1274 return FALSE;
1275 break;
1276 default:
1277 break;
1278 }
1279 return TRUE;
1280 }
1281
1282 uint32_t
zdr_MKNOD3args(ZDR * zdrs,MKNOD3args * objp)1283 zdr_MKNOD3args (ZDR *zdrs, MKNOD3args *objp)
1284 {
1285 if (!zdr_diropargs3 (zdrs, &objp->where))
1286 return FALSE;
1287 if (!zdr_mknoddata3 (zdrs, &objp->what))
1288 return FALSE;
1289 return TRUE;
1290 }
1291
1292 uint32_t
zdr_MKNOD3resok(ZDR * zdrs,MKNOD3resok * objp)1293 zdr_MKNOD3resok (ZDR *zdrs, MKNOD3resok *objp)
1294 {
1295 if (!zdr_post_op_fh3 (zdrs, &objp->obj))
1296 return FALSE;
1297 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1298 return FALSE;
1299 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1300 return FALSE;
1301 return TRUE;
1302 }
1303
1304 uint32_t
zdr_MKNOD3resfail(ZDR * zdrs,MKNOD3resfail * objp)1305 zdr_MKNOD3resfail (ZDR *zdrs, MKNOD3resfail *objp)
1306 {
1307 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1308 return FALSE;
1309 return TRUE;
1310 }
1311
1312 uint32_t
zdr_MKNOD3res(ZDR * zdrs,MKNOD3res * objp)1313 zdr_MKNOD3res (ZDR *zdrs, MKNOD3res *objp)
1314 {
1315 if (!zdr_nfsstat3 (zdrs, &objp->status))
1316 return FALSE;
1317 switch (objp->status) {
1318 case NFS3_OK:
1319 if (!zdr_MKNOD3resok (zdrs, &objp->MKNOD3res_u.resok))
1320 return FALSE;
1321 break;
1322 default:
1323 if (!zdr_MKNOD3resfail (zdrs, &objp->MKNOD3res_u.resfail))
1324 return FALSE;
1325 break;
1326 }
1327 return TRUE;
1328 }
1329
1330 uint32_t
zdr_MKDIR3args(ZDR * zdrs,MKDIR3args * objp)1331 zdr_MKDIR3args (ZDR *zdrs, MKDIR3args *objp)
1332 {
1333 if (!zdr_diropargs3 (zdrs, &objp->where))
1334 return FALSE;
1335 if (!zdr_sattr3 (zdrs, &objp->attributes))
1336 return FALSE;
1337 return TRUE;
1338 }
1339
1340 uint32_t
zdr_MKDIR3resok(ZDR * zdrs,MKDIR3resok * objp)1341 zdr_MKDIR3resok (ZDR *zdrs, MKDIR3resok *objp)
1342 {
1343 if (!zdr_post_op_fh3 (zdrs, &objp->obj))
1344 return FALSE;
1345 if (!zdr_post_op_attr (zdrs, &objp->obj_attributes))
1346 return FALSE;
1347 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1348 return FALSE;
1349 return TRUE;
1350 }
1351
1352 uint32_t
zdr_MKDIR3resfail(ZDR * zdrs,MKDIR3resfail * objp)1353 zdr_MKDIR3resfail (ZDR *zdrs, MKDIR3resfail *objp)
1354 {
1355 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1356 return FALSE;
1357 return TRUE;
1358 }
1359
1360 uint32_t
zdr_MKDIR3res(ZDR * zdrs,MKDIR3res * objp)1361 zdr_MKDIR3res (ZDR *zdrs, MKDIR3res *objp)
1362 {
1363 if (!zdr_nfsstat3 (zdrs, &objp->status))
1364 return FALSE;
1365 switch (objp->status) {
1366 case NFS3_OK:
1367 if (!zdr_MKDIR3resok (zdrs, &objp->MKDIR3res_u.resok))
1368 return FALSE;
1369 break;
1370 default:
1371 if (!zdr_MKDIR3resfail (zdrs, &objp->MKDIR3res_u.resfail))
1372 return FALSE;
1373 break;
1374 }
1375 return TRUE;
1376 }
1377
1378 uint32_t
zdr_RMDIR3args(ZDR * zdrs,RMDIR3args * objp)1379 zdr_RMDIR3args (ZDR *zdrs, RMDIR3args *objp)
1380 {
1381 if (!zdr_diropargs3 (zdrs, &objp->object))
1382 return FALSE;
1383 return TRUE;
1384 }
1385
1386 uint32_t
zdr_RMDIR3resok(ZDR * zdrs,RMDIR3resok * objp)1387 zdr_RMDIR3resok (ZDR *zdrs, RMDIR3resok *objp)
1388 {
1389 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1390 return FALSE;
1391 return TRUE;
1392 }
1393
1394 uint32_t
zdr_RMDIR3resfail(ZDR * zdrs,RMDIR3resfail * objp)1395 zdr_RMDIR3resfail (ZDR *zdrs, RMDIR3resfail *objp)
1396 {
1397 if (!zdr_wcc_data (zdrs, &objp->dir_wcc))
1398 return FALSE;
1399 return TRUE;
1400 }
1401
1402 uint32_t
zdr_RMDIR3res(ZDR * zdrs,RMDIR3res * objp)1403 zdr_RMDIR3res (ZDR *zdrs, RMDIR3res *objp)
1404 {
1405 if (!zdr_nfsstat3 (zdrs, &objp->status))
1406 return FALSE;
1407 switch (objp->status) {
1408 case NFS3_OK:
1409 if (!zdr_RMDIR3resok (zdrs, &objp->RMDIR3res_u.resok))
1410 return FALSE;
1411 break;
1412 default:
1413 if (!zdr_RMDIR3resfail (zdrs, &objp->RMDIR3res_u.resfail))
1414 return FALSE;
1415 break;
1416 }
1417 return TRUE;
1418 }
1419
1420 uint32_t
zdr_RENAME3args(ZDR * zdrs,RENAME3args * objp)1421 zdr_RENAME3args (ZDR *zdrs, RENAME3args *objp)
1422 {
1423 if (!zdr_diropargs3 (zdrs, &objp->from))
1424 return FALSE;
1425 if (!zdr_diropargs3 (zdrs, &objp->to))
1426 return FALSE;
1427 return TRUE;
1428 }
1429
1430 uint32_t
zdr_RENAME3resok(ZDR * zdrs,RENAME3resok * objp)1431 zdr_RENAME3resok (ZDR *zdrs, RENAME3resok *objp)
1432 {
1433 if (!zdr_wcc_data (zdrs, &objp->fromdir_wcc))
1434 return FALSE;
1435 if (!zdr_wcc_data (zdrs, &objp->todir_wcc))
1436 return FALSE;
1437 return TRUE;
1438 }
1439
1440 uint32_t
zdr_RENAME3resfail(ZDR * zdrs,RENAME3resfail * objp)1441 zdr_RENAME3resfail (ZDR *zdrs, RENAME3resfail *objp)
1442 {
1443 if (!zdr_wcc_data (zdrs, &objp->fromdir_wcc))
1444 return FALSE;
1445 if (!zdr_wcc_data (zdrs, &objp->todir_wcc))
1446 return FALSE;
1447 return TRUE;
1448 }
1449
1450 uint32_t
zdr_RENAME3res(ZDR * zdrs,RENAME3res * objp)1451 zdr_RENAME3res (ZDR *zdrs, RENAME3res *objp)
1452 {
1453 if (!zdr_nfsstat3 (zdrs, &objp->status))
1454 return FALSE;
1455 switch (objp->status) {
1456 case NFS3_OK:
1457 if (!zdr_RENAME3resok (zdrs, &objp->RENAME3res_u.resok))
1458 return FALSE;
1459 break;
1460 default:
1461 if (!zdr_RENAME3resfail (zdrs, &objp->RENAME3res_u.resfail))
1462 return FALSE;
1463 break;
1464 }
1465 return TRUE;
1466 }
1467
1468 uint32_t
zdr_READDIRPLUS3args(ZDR * zdrs,READDIRPLUS3args * objp)1469 zdr_READDIRPLUS3args (ZDR *zdrs, READDIRPLUS3args *objp)
1470 {
1471 if (!zdr_nfs_fh3 (zdrs, &objp->dir))
1472 return FALSE;
1473 if (!zdr_cookie3 (zdrs, &objp->cookie))
1474 return FALSE;
1475 if (!zdr_cookieverf3 (zdrs, objp->cookieverf))
1476 return FALSE;
1477 if (!zdr_count3 (zdrs, &objp->dircount))
1478 return FALSE;
1479 if (!zdr_count3 (zdrs, &objp->maxcount))
1480 return FALSE;
1481 return TRUE;
1482 }
1483
1484 uint32_t
zdr_entryplus3(ZDR * zdrs,entryplus3 * objp)1485 zdr_entryplus3 (ZDR *zdrs, entryplus3 *objp)
1486 {
1487 if (!zdr_fileid3 (zdrs, &objp->fileid))
1488 return FALSE;
1489 if (!zdr_filename3 (zdrs, &objp->name))
1490 return FALSE;
1491 if (!zdr_cookie3 (zdrs, &objp->cookie))
1492 return FALSE;
1493 if (!zdr_post_op_attr (zdrs, &objp->name_attributes))
1494 return FALSE;
1495 if (!zdr_post_op_fh3 (zdrs, &objp->name_handle))
1496 return FALSE;
1497 if (!zdr_pointer (zdrs, (char **)&objp->nextentry, sizeof (entryplus3), (zdrproc_t) zdr_entryplus3))
1498 return FALSE;
1499 return TRUE;
1500 }
1501
1502 uint32_t
zdr_dirlistplus3(ZDR * zdrs,dirlistplus3 * objp)1503 zdr_dirlistplus3 (ZDR *zdrs, dirlistplus3 *objp)
1504 {
1505 if (!zdr_pointer (zdrs, (char **)&objp->entries, sizeof (entryplus3), (zdrproc_t) zdr_entryplus3))
1506 return FALSE;
1507 if (!zdr_bool (zdrs, &objp->eof))
1508 return FALSE;
1509 return TRUE;
1510 }
1511
1512 uint32_t
zdr_READDIRPLUS3resok(ZDR * zdrs,READDIRPLUS3resok * objp)1513 zdr_READDIRPLUS3resok (ZDR *zdrs, READDIRPLUS3resok *objp)
1514 {
1515 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
1516 return FALSE;
1517 if (!zdr_cookieverf3 (zdrs, objp->cookieverf))
1518 return FALSE;
1519 if (!zdr_dirlistplus3 (zdrs, &objp->reply))
1520 return FALSE;
1521 return TRUE;
1522 }
1523
1524 uint32_t
zdr_READDIRPLUS3resfail(ZDR * zdrs,READDIRPLUS3resfail * objp)1525 zdr_READDIRPLUS3resfail (ZDR *zdrs, READDIRPLUS3resfail *objp)
1526 {
1527 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
1528 return FALSE;
1529 return TRUE;
1530 }
1531
1532 uint32_t
zdr_READDIRPLUS3res(ZDR * zdrs,READDIRPLUS3res * objp)1533 zdr_READDIRPLUS3res (ZDR *zdrs, READDIRPLUS3res *objp)
1534 {
1535 if (!zdr_nfsstat3 (zdrs, &objp->status))
1536 return FALSE;
1537 switch (objp->status) {
1538 case NFS3_OK:
1539 if (!zdr_READDIRPLUS3resok (zdrs, &objp->READDIRPLUS3res_u.resok))
1540 return FALSE;
1541 break;
1542 default:
1543 if (!zdr_READDIRPLUS3resfail (zdrs, &objp->READDIRPLUS3res_u.resfail))
1544 return FALSE;
1545 break;
1546 }
1547 return TRUE;
1548 }
1549
1550 uint32_t
zdr_READDIR3args(ZDR * zdrs,READDIR3args * objp)1551 zdr_READDIR3args (ZDR *zdrs, READDIR3args *objp)
1552 {
1553 if (!zdr_nfs_fh3 (zdrs, &objp->dir))
1554 return FALSE;
1555 if (!zdr_cookie3 (zdrs, &objp->cookie))
1556 return FALSE;
1557 if (!zdr_cookieverf3 (zdrs, objp->cookieverf))
1558 return FALSE;
1559 if (!zdr_count3 (zdrs, &objp->count))
1560 return FALSE;
1561 return TRUE;
1562 }
1563
1564 uint32_t
zdr_entry3(ZDR * zdrs,entry3 * objp)1565 zdr_entry3 (ZDR *zdrs, entry3 *objp)
1566 {
1567 if (!zdr_fileid3 (zdrs, &objp->fileid))
1568 return FALSE;
1569 if (!zdr_filename3 (zdrs, &objp->name))
1570 return FALSE;
1571 if (!zdr_cookie3 (zdrs, &objp->cookie))
1572 return FALSE;
1573 if (!zdr_pointer (zdrs, (char **)&objp->nextentry, sizeof (entry3), (zdrproc_t) zdr_entry3))
1574 return FALSE;
1575 return TRUE;
1576 }
1577
1578 uint32_t
zdr_dirlist3(ZDR * zdrs,dirlist3 * objp)1579 zdr_dirlist3 (ZDR *zdrs, dirlist3 *objp)
1580 {
1581 if (!zdr_pointer (zdrs, (char **)&objp->entries, sizeof (entry3), (zdrproc_t) zdr_entry3))
1582 return FALSE;
1583 if (!zdr_bool (zdrs, &objp->eof))
1584 return FALSE;
1585 return TRUE;
1586 }
1587
1588 uint32_t
zdr_READDIR3resok(ZDR * zdrs,READDIR3resok * objp)1589 zdr_READDIR3resok (ZDR *zdrs, READDIR3resok *objp)
1590 {
1591 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
1592 return FALSE;
1593 if (!zdr_cookieverf3 (zdrs, objp->cookieverf))
1594 return FALSE;
1595 if (!zdr_dirlist3 (zdrs, &objp->reply))
1596 return FALSE;
1597 return TRUE;
1598 }
1599
1600 uint32_t
zdr_READDIR3resfail(ZDR * zdrs,READDIR3resfail * objp)1601 zdr_READDIR3resfail (ZDR *zdrs, READDIR3resfail *objp)
1602 {
1603 if (!zdr_post_op_attr (zdrs, &objp->dir_attributes))
1604 return FALSE;
1605 return TRUE;
1606 }
1607
1608 uint32_t
zdr_READDIR3res(ZDR * zdrs,READDIR3res * objp)1609 zdr_READDIR3res (ZDR *zdrs, READDIR3res *objp)
1610 {
1611 if (!zdr_nfsstat3 (zdrs, &objp->status))
1612 return FALSE;
1613 switch (objp->status) {
1614 case NFS3_OK:
1615 if (!zdr_READDIR3resok (zdrs, &objp->READDIR3res_u.resok))
1616 return FALSE;
1617 break;
1618 default:
1619 if (!zdr_READDIR3resfail (zdrs, &objp->READDIR3res_u.resfail))
1620 return FALSE;
1621 break;
1622 }
1623 return TRUE;
1624 }
1625
1626 uint32_t
zdr_LINK3args(ZDR * zdrs,LINK3args * objp)1627 zdr_LINK3args (ZDR *zdrs, LINK3args *objp)
1628 {
1629 if (!zdr_nfs_fh3 (zdrs, &objp->file))
1630 return FALSE;
1631 if (!zdr_diropargs3 (zdrs, &objp->link))
1632 return FALSE;
1633 return TRUE;
1634 }
1635
1636 uint32_t
zdr_LINK3resok(ZDR * zdrs,LINK3resok * objp)1637 zdr_LINK3resok (ZDR *zdrs, LINK3resok *objp)
1638 {
1639 if (!zdr_post_op_attr (zdrs, &objp->file_attributes))
1640 return FALSE;
1641 if (!zdr_wcc_data (zdrs, &objp->linkdir_wcc))
1642 return FALSE;
1643 return TRUE;
1644 }
1645
1646 uint32_t
zdr_LINK3resfail(ZDR * zdrs,LINK3resfail * objp)1647 zdr_LINK3resfail (ZDR *zdrs, LINK3resfail *objp)
1648 {
1649 if (!zdr_post_op_attr (zdrs, &objp->file_attributes))
1650 return FALSE;
1651 if (!zdr_wcc_data (zdrs, &objp->linkdir_wcc))
1652 return FALSE;
1653 return TRUE;
1654 }
1655
1656 uint32_t
zdr_LINK3res(ZDR * zdrs,LINK3res * objp)1657 zdr_LINK3res (ZDR *zdrs, LINK3res *objp)
1658 {
1659 if (!zdr_nfsstat3 (zdrs, &objp->status))
1660 return FALSE;
1661 switch (objp->status) {
1662 case NFS3_OK:
1663 if (!zdr_LINK3resok (zdrs, &objp->LINK3res_u.resok))
1664 return FALSE;
1665 break;
1666 default:
1667 if (!zdr_LINK3resfail (zdrs, &objp->LINK3res_u.resfail))
1668 return FALSE;
1669 break;
1670 }
1671 return TRUE;
1672 }
1673
1674 uint32_t
zdr_sattrguard3(ZDR * zdrs,sattrguard3 * objp)1675 zdr_sattrguard3 (ZDR *zdrs, sattrguard3 *objp)
1676 {
1677 if (!zdr_bool (zdrs, &objp->check))
1678 return FALSE;
1679 switch (objp->check) {
1680 case TRUE:
1681 if (!zdr_nfstime3 (zdrs, &objp->sattrguard3_u.obj_ctime))
1682 return FALSE;
1683 break;
1684 case FALSE:
1685 break;
1686 default:
1687 return FALSE;
1688 }
1689 return TRUE;
1690 }
1691
1692 uint32_t
zdr_SETATTR3args(ZDR * zdrs,SETATTR3args * objp)1693 zdr_SETATTR3args (ZDR *zdrs, SETATTR3args *objp)
1694 {
1695 if (!zdr_nfs_fh3 (zdrs, &objp->object))
1696 return FALSE;
1697 if (!zdr_sattr3 (zdrs, &objp->new_attributes))
1698 return FALSE;
1699 if (!zdr_sattrguard3 (zdrs, &objp->guard))
1700 return FALSE;
1701 return TRUE;
1702 }
1703
1704 uint32_t
zdr_SETATTR3resok(ZDR * zdrs,SETATTR3resok * objp)1705 zdr_SETATTR3resok (ZDR *zdrs, SETATTR3resok *objp)
1706 {
1707 if (!zdr_wcc_data (zdrs, &objp->obj_wcc))
1708 return FALSE;
1709 return TRUE;
1710 }
1711
1712 uint32_t
zdr_SETATTR3resfail(ZDR * zdrs,SETATTR3resfail * objp)1713 zdr_SETATTR3resfail (ZDR *zdrs, SETATTR3resfail *objp)
1714 {
1715 if (!zdr_wcc_data (zdrs, &objp->obj_wcc))
1716 return FALSE;
1717 return TRUE;
1718 }
1719
1720 uint32_t
zdr_SETATTR3res(ZDR * zdrs,SETATTR3res * objp)1721 zdr_SETATTR3res (ZDR *zdrs, SETATTR3res *objp)
1722 {
1723 if (!zdr_nfsstat3 (zdrs, &objp->status))
1724 return FALSE;
1725 switch (objp->status) {
1726 case NFS3_OK:
1727 if (!zdr_SETATTR3resok (zdrs, &objp->SETATTR3res_u.resok))
1728 return FALSE;
1729 break;
1730 default:
1731 if (!zdr_SETATTR3resfail (zdrs, &objp->SETATTR3res_u.resfail))
1732 return FALSE;
1733 break;
1734 }
1735 return TRUE;
1736 }
1737
1738 uint32_t
zdr_fhandle2(ZDR * zdrs,fhandle2 objp)1739 zdr_fhandle2 (ZDR *zdrs, fhandle2 objp)
1740 {
1741 if (!zdr_opaque (zdrs, objp, FHSIZE2))
1742 return FALSE;
1743 return TRUE;
1744 }
1745
1746 uint32_t
zdr_ftype2(ZDR * zdrs,ftype2 * objp)1747 zdr_ftype2 (ZDR *zdrs, ftype2 *objp)
1748 {
1749 if (!zdr_enum (zdrs, (enum_t *) objp))
1750 return FALSE;
1751 return TRUE;
1752 }
1753
1754 uint32_t
zdr_fattr2(ZDR * zdrs,fattr2 * objp)1755 zdr_fattr2 (ZDR *zdrs, fattr2 *objp)
1756 {
1757 register int32_t *buf;
1758 buf = NULL;
1759
1760 if (zdrs->x_op == ZDR_ENCODE) {
1761 if (!zdr_ftype2 (zdrs, &objp->type))
1762 return FALSE;
1763 buf = ZDR_INLINE (zdrs, 10 * BYTES_PER_ZDR_UNIT);
1764 if (buf == NULL) {
1765 if (!zdr_u_int (zdrs, &objp->mode))
1766 return FALSE;
1767 if (!zdr_u_int (zdrs, &objp->nlink))
1768 return FALSE;
1769 if (!zdr_u_int (zdrs, &objp->uid))
1770 return FALSE;
1771 if (!zdr_u_int (zdrs, &objp->gid))
1772 return FALSE;
1773 if (!zdr_u_int (zdrs, &objp->size))
1774 return FALSE;
1775 if (!zdr_u_int (zdrs, &objp->blocksize))
1776 return FALSE;
1777 if (!zdr_u_int (zdrs, &objp->rdev))
1778 return FALSE;
1779 if (!zdr_u_int (zdrs, &objp->blocks))
1780 return FALSE;
1781 if (!zdr_u_int (zdrs, &objp->fsid))
1782 return FALSE;
1783 if (!zdr_u_int (zdrs, &objp->fileid))
1784 return FALSE;
1785
1786 } else {
1787 IZDR_PUT_U_LONG(buf, objp->mode);
1788 IZDR_PUT_U_LONG(buf, objp->nlink);
1789 IZDR_PUT_U_LONG(buf, objp->uid);
1790 IZDR_PUT_U_LONG(buf, objp->gid);
1791 IZDR_PUT_U_LONG(buf, objp->size);
1792 IZDR_PUT_U_LONG(buf, objp->blocksize);
1793 IZDR_PUT_U_LONG(buf, objp->rdev);
1794 IZDR_PUT_U_LONG(buf, objp->blocks);
1795 IZDR_PUT_U_LONG(buf, objp->fsid);
1796 IZDR_PUT_U_LONG(buf, objp->fileid);
1797 }
1798 if (!zdr_nfstime3 (zdrs, &objp->atime))
1799 return FALSE;
1800 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1801 return FALSE;
1802 if (!zdr_nfstime3 (zdrs, &objp->ctime))
1803 return FALSE;
1804 return TRUE;
1805 } else if (zdrs->x_op == ZDR_DECODE) {
1806 if (!zdr_ftype2 (zdrs, &objp->type))
1807 return FALSE;
1808 buf = ZDR_INLINE (zdrs, 10 * BYTES_PER_ZDR_UNIT);
1809 if (buf == NULL) {
1810 if (!zdr_u_int (zdrs, &objp->mode))
1811 return FALSE;
1812 if (!zdr_u_int (zdrs, &objp->nlink))
1813 return FALSE;
1814 if (!zdr_u_int (zdrs, &objp->uid))
1815 return FALSE;
1816 if (!zdr_u_int (zdrs, &objp->gid))
1817 return FALSE;
1818 if (!zdr_u_int (zdrs, &objp->size))
1819 return FALSE;
1820 if (!zdr_u_int (zdrs, &objp->blocksize))
1821 return FALSE;
1822 if (!zdr_u_int (zdrs, &objp->rdev))
1823 return FALSE;
1824 if (!zdr_u_int (zdrs, &objp->blocks))
1825 return FALSE;
1826 if (!zdr_u_int (zdrs, &objp->fsid))
1827 return FALSE;
1828 if (!zdr_u_int (zdrs, &objp->fileid))
1829 return FALSE;
1830
1831 } else {
1832 objp->mode = IZDR_GET_U_LONG(buf);
1833 objp->nlink = IZDR_GET_U_LONG(buf);
1834 objp->uid = IZDR_GET_U_LONG(buf);
1835 objp->gid = IZDR_GET_U_LONG(buf);
1836 objp->size = IZDR_GET_U_LONG(buf);
1837 objp->blocksize = IZDR_GET_U_LONG(buf);
1838 objp->rdev = IZDR_GET_U_LONG(buf);
1839 objp->blocks = IZDR_GET_U_LONG(buf);
1840 objp->fsid = IZDR_GET_U_LONG(buf);
1841 objp->fileid = IZDR_GET_U_LONG(buf);
1842 }
1843 if (!zdr_nfstime3 (zdrs, &objp->atime))
1844 return FALSE;
1845 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1846 return FALSE;
1847 if (!zdr_nfstime3 (zdrs, &objp->ctime))
1848 return FALSE;
1849 return TRUE;
1850 }
1851
1852 if (!zdr_ftype2 (zdrs, &objp->type))
1853 return FALSE;
1854 if (!zdr_u_int (zdrs, &objp->mode))
1855 return FALSE;
1856 if (!zdr_u_int (zdrs, &objp->nlink))
1857 return FALSE;
1858 if (!zdr_u_int (zdrs, &objp->uid))
1859 return FALSE;
1860 if (!zdr_u_int (zdrs, &objp->gid))
1861 return FALSE;
1862 if (!zdr_u_int (zdrs, &objp->size))
1863 return FALSE;
1864 if (!zdr_u_int (zdrs, &objp->blocksize))
1865 return FALSE;
1866 if (!zdr_u_int (zdrs, &objp->rdev))
1867 return FALSE;
1868 if (!zdr_u_int (zdrs, &objp->blocks))
1869 return FALSE;
1870 if (!zdr_u_int (zdrs, &objp->fsid))
1871 return FALSE;
1872 if (!zdr_u_int (zdrs, &objp->fileid))
1873 return FALSE;
1874 if (!zdr_nfstime3 (zdrs, &objp->atime))
1875 return FALSE;
1876 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1877 return FALSE;
1878 if (!zdr_nfstime3 (zdrs, &objp->ctime))
1879 return FALSE;
1880 return TRUE;
1881 }
1882
1883 uint32_t
zdr_sattr2(ZDR * zdrs,sattr2 * objp)1884 zdr_sattr2 (ZDR *zdrs, sattr2 *objp)
1885 {
1886 register int32_t *buf;
1887 buf = NULL;
1888
1889 if (zdrs->x_op == ZDR_ENCODE) {
1890 buf = ZDR_INLINE (zdrs, 4 * BYTES_PER_ZDR_UNIT);
1891 if (buf == NULL) {
1892 if (!zdr_u_int (zdrs, &objp->mode))
1893 return FALSE;
1894 if (!zdr_u_int (zdrs, &objp->uid))
1895 return FALSE;
1896 if (!zdr_u_int (zdrs, &objp->gid))
1897 return FALSE;
1898 if (!zdr_u_int (zdrs, &objp->size))
1899 return FALSE;
1900
1901 } else {
1902 IZDR_PUT_U_LONG(buf, objp->mode);
1903 IZDR_PUT_U_LONG(buf, objp->uid);
1904 IZDR_PUT_U_LONG(buf, objp->gid);
1905 IZDR_PUT_U_LONG(buf, objp->size);
1906 }
1907 if (!zdr_nfstime3 (zdrs, &objp->atime))
1908 return FALSE;
1909 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1910 return FALSE;
1911 return TRUE;
1912 } else if (zdrs->x_op == ZDR_DECODE) {
1913 buf = ZDR_INLINE (zdrs, 4 * BYTES_PER_ZDR_UNIT);
1914 if (buf == NULL) {
1915 if (!zdr_u_int (zdrs, &objp->mode))
1916 return FALSE;
1917 if (!zdr_u_int (zdrs, &objp->uid))
1918 return FALSE;
1919 if (!zdr_u_int (zdrs, &objp->gid))
1920 return FALSE;
1921 if (!zdr_u_int (zdrs, &objp->size))
1922 return FALSE;
1923
1924 } else {
1925 objp->mode = IZDR_GET_U_LONG(buf);
1926 objp->uid = IZDR_GET_U_LONG(buf);
1927 objp->gid = IZDR_GET_U_LONG(buf);
1928 objp->size = IZDR_GET_U_LONG(buf);
1929 }
1930 if (!zdr_nfstime3 (zdrs, &objp->atime))
1931 return FALSE;
1932 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1933 return FALSE;
1934 return TRUE;
1935 }
1936
1937 if (!zdr_u_int (zdrs, &objp->mode))
1938 return FALSE;
1939 if (!zdr_u_int (zdrs, &objp->uid))
1940 return FALSE;
1941 if (!zdr_u_int (zdrs, &objp->gid))
1942 return FALSE;
1943 if (!zdr_u_int (zdrs, &objp->size))
1944 return FALSE;
1945 if (!zdr_nfstime3 (zdrs, &objp->atime))
1946 return FALSE;
1947 if (!zdr_nfstime3 (zdrs, &objp->mtime))
1948 return FALSE;
1949 return TRUE;
1950 }
1951
1952 uint32_t
zdr_filename2(ZDR * zdrs,filename2 * objp)1953 zdr_filename2 (ZDR *zdrs, filename2 *objp)
1954 {
1955 if (!zdr_string (zdrs, objp, MAXNAMLEN2))
1956 return FALSE;
1957 return TRUE;
1958 }
1959
1960 uint32_t
zdr_path2(ZDR * zdrs,path2 * objp)1961 zdr_path2 (ZDR *zdrs, path2 *objp)
1962 {
1963 if (!zdr_string (zdrs, objp, MAXPATHLEN2))
1964 return FALSE;
1965 return TRUE;
1966 }
1967
1968 uint32_t
zdr_nfsdata2(ZDR * zdrs,nfsdata2 * objp)1969 zdr_nfsdata2 (ZDR *zdrs, nfsdata2 *objp)
1970 {
1971 if (!zdr_bytes (zdrs, (char **)&objp->nfsdata2_val, (u_int *) &objp->nfsdata2_len, NFSMAXDATA2))
1972 return FALSE;
1973 return TRUE;
1974 }
1975
1976 uint32_t
zdr_nfscookie2(ZDR * zdrs,nfscookie2 objp)1977 zdr_nfscookie2 (ZDR *zdrs, nfscookie2 objp)
1978 {
1979 if (!zdr_opaque (zdrs, objp, NFSCOOKIESIZE2))
1980 return FALSE;
1981 return TRUE;
1982 }
1983
1984 uint32_t
zdr_entry2(ZDR * zdrs,entry2 * objp)1985 zdr_entry2 (ZDR *zdrs, entry2 *objp)
1986 {
1987 if (!zdr_u_int (zdrs, &objp->fileid))
1988 return FALSE;
1989 if (!zdr_filename2 (zdrs, &objp->name))
1990 return FALSE;
1991 if (!zdr_nfscookie2 (zdrs, objp->cookie))
1992 return FALSE;
1993 if (!zdr_pointer (zdrs, (char **)&objp->nextentry, sizeof (entry2), (zdrproc_t) zdr_entry2))
1994 return FALSE;
1995 return TRUE;
1996 }
1997
1998 uint32_t
zdr_diropargs2(ZDR * zdrs,diropargs2 * objp)1999 zdr_diropargs2 (ZDR *zdrs, diropargs2 *objp)
2000 {
2001 if (!zdr_fhandle2 (zdrs, objp->dir))
2002 return FALSE;
2003 if (!zdr_filename2 (zdrs, &objp->name))
2004 return FALSE;
2005 return TRUE;
2006 }
2007
2008 uint32_t
zdr_GETATTR2args(ZDR * zdrs,GETATTR2args * objp)2009 zdr_GETATTR2args (ZDR *zdrs, GETATTR2args *objp)
2010 {
2011 if (!zdr_fhandle2 (zdrs, objp->fhandle))
2012 return FALSE;
2013 return TRUE;
2014 }
2015
2016 uint32_t
zdr_GETATTR2resok(ZDR * zdrs,GETATTR2resok * objp)2017 zdr_GETATTR2resok (ZDR *zdrs, GETATTR2resok *objp)
2018 {
2019 if (!zdr_fattr2 (zdrs, &objp->attributes))
2020 return FALSE;
2021 return TRUE;
2022 }
2023
2024 uint32_t
zdr_GETATTR2res(ZDR * zdrs,GETATTR2res * objp)2025 zdr_GETATTR2res (ZDR *zdrs, GETATTR2res *objp)
2026 {
2027 if (!zdr_nfsstat3 (zdrs, &objp->status))
2028 return FALSE;
2029 switch (objp->status) {
2030 case NFS3_OK:
2031 if (!zdr_GETATTR2resok (zdrs, &objp->GETATTR2res_u.resok))
2032 return FALSE;
2033 break;
2034 default:
2035 break;
2036 }
2037 return TRUE;
2038 }
2039
2040 uint32_t
zdr_SETATTR2args(ZDR * zdrs,SETATTR2args * objp)2041 zdr_SETATTR2args (ZDR *zdrs, SETATTR2args *objp)
2042 {
2043 if (!zdr_fhandle2 (zdrs, objp->fhandle))
2044 return FALSE;
2045 if (!zdr_sattr2 (zdrs, &objp->attributes))
2046 return FALSE;
2047 return TRUE;
2048 }
2049
2050 uint32_t
zdr_SETATTR2resok(ZDR * zdrs,SETATTR2resok * objp)2051 zdr_SETATTR2resok (ZDR *zdrs, SETATTR2resok *objp)
2052 {
2053 if (!zdr_fattr2 (zdrs, &objp->attributes))
2054 return FALSE;
2055 return TRUE;
2056 }
2057
2058 uint32_t
zdr_SETATTR2res(ZDR * zdrs,SETATTR2res * objp)2059 zdr_SETATTR2res (ZDR *zdrs, SETATTR2res *objp)
2060 {
2061 if (!zdr_nfsstat3 (zdrs, &objp->status))
2062 return FALSE;
2063 switch (objp->status) {
2064 case NFS3_OK:
2065 if (!zdr_SETATTR2resok (zdrs, &objp->SETATTR2res_u.resok))
2066 return FALSE;
2067 break;
2068 default:
2069 break;
2070 }
2071 return TRUE;
2072 }
2073
2074 uint32_t
zdr_LOOKUP2args(ZDR * zdrs,LOOKUP2args * objp)2075 zdr_LOOKUP2args (ZDR *zdrs, LOOKUP2args *objp)
2076 {
2077 if (!zdr_diropargs2 (zdrs, &objp->what))
2078 return FALSE;
2079 return TRUE;
2080 }
2081
2082 uint32_t
zdr_LOOKUP2resok(ZDR * zdrs,LOOKUP2resok * objp)2083 zdr_LOOKUP2resok (ZDR *zdrs, LOOKUP2resok *objp)
2084 {
2085 if (!zdr_fhandle2 (zdrs, objp->file))
2086 return FALSE;
2087 if (!zdr_fattr2 (zdrs, &objp->attributes))
2088 return FALSE;
2089 return TRUE;
2090 }
2091
2092 uint32_t
zdr_LOOKUP2res(ZDR * zdrs,LOOKUP2res * objp)2093 zdr_LOOKUP2res (ZDR *zdrs, LOOKUP2res *objp)
2094 {
2095 if (!zdr_nfsstat3 (zdrs, &objp->status))
2096 return FALSE;
2097 switch (objp->status) {
2098 case NFS3_OK:
2099 if (!zdr_LOOKUP2resok (zdrs, &objp->LOOKUP2res_u.resok))
2100 return FALSE;
2101 break;
2102 default:
2103 break;
2104 }
2105 return TRUE;
2106 }
2107
2108 uint32_t
zdr_READLINK2args(ZDR * zdrs,READLINK2args * objp)2109 zdr_READLINK2args (ZDR *zdrs, READLINK2args *objp)
2110 {
2111 if (!zdr_fhandle2 (zdrs, objp->file))
2112 return FALSE;
2113 return TRUE;
2114 }
2115
2116 uint32_t
zdr_READLINK2resok(ZDR * zdrs,READLINK2resok * objp)2117 zdr_READLINK2resok (ZDR *zdrs, READLINK2resok *objp)
2118 {
2119 if (!zdr_path2 (zdrs, &objp->data))
2120 return FALSE;
2121 return TRUE;
2122 }
2123
2124 uint32_t
zdr_READLINK2res(ZDR * zdrs,READLINK2res * objp)2125 zdr_READLINK2res (ZDR *zdrs, READLINK2res *objp)
2126 {
2127 if (!zdr_nfsstat3 (zdrs, &objp->status))
2128 return FALSE;
2129 switch (objp->status) {
2130 case NFS3_OK:
2131 if (!zdr_READLINK2resok (zdrs, &objp->READLINK2res_u.resok))
2132 return FALSE;
2133 break;
2134 default:
2135 break;
2136 }
2137 return TRUE;
2138 }
2139
2140 uint32_t
zdr_READ2args(ZDR * zdrs,READ2args * objp)2141 zdr_READ2args (ZDR *zdrs, READ2args *objp)
2142 {
2143 if (!zdr_fhandle2 (zdrs, objp->file))
2144 return FALSE;
2145 if (!zdr_u_int (zdrs, &objp->offset))
2146 return FALSE;
2147 if (!zdr_u_int (zdrs, &objp->count))
2148 return FALSE;
2149 if (!zdr_u_int (zdrs, &objp->totalcount))
2150 return FALSE;
2151 return TRUE;
2152 }
2153
2154 uint32_t
zdr_READ2resok(ZDR * zdrs,READ2resok * objp)2155 zdr_READ2resok (ZDR *zdrs, READ2resok *objp)
2156 {
2157 if (!zdr_fattr2 (zdrs, &objp->attributes))
2158 return FALSE;
2159 if (!zdr_nfsdata2 (zdrs, &objp->data))
2160 return FALSE;
2161 return TRUE;
2162 }
2163
2164 uint32_t
zdr_READ2res(ZDR * zdrs,READ2res * objp)2165 zdr_READ2res (ZDR *zdrs, READ2res *objp)
2166 {
2167 if (!zdr_nfsstat3 (zdrs, &objp->status))
2168 return FALSE;
2169 switch (objp->status) {
2170 case NFS3_OK:
2171 if (!zdr_READ2resok (zdrs, &objp->READ2res_u.resok))
2172 return FALSE;
2173 break;
2174 default:
2175 break;
2176 }
2177 return TRUE;
2178 }
2179
2180 uint32_t
zdr_WRITE2args(ZDR * zdrs,WRITE2args * objp)2181 zdr_WRITE2args (ZDR *zdrs, WRITE2args *objp)
2182 {
2183 register int32_t *buf;
2184 buf = NULL;
2185
2186 if (zdrs->x_op == ZDR_ENCODE) {
2187 if (!zdr_fhandle2 (zdrs, objp->file))
2188 return FALSE;
2189 buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT);
2190 if (buf == NULL) {
2191 if (!zdr_u_int (zdrs, &objp->beginoffset))
2192 return FALSE;
2193 if (!zdr_u_int (zdrs, &objp->offset))
2194 return FALSE;
2195 if (!zdr_u_int (zdrs, &objp->totalcount))
2196 return FALSE;
2197
2198 } else {
2199 IZDR_PUT_U_LONG(buf, objp->beginoffset);
2200 IZDR_PUT_U_LONG(buf, objp->offset);
2201 IZDR_PUT_U_LONG(buf, objp->totalcount);
2202 }
2203 if (!zdr_nfsdata2 (zdrs, &objp->data))
2204 return FALSE;
2205 return TRUE;
2206 } else if (zdrs->x_op == ZDR_DECODE) {
2207 if (!zdr_fhandle2 (zdrs, objp->file))
2208 return FALSE;
2209 buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT);
2210 if (buf == NULL) {
2211 if (!zdr_u_int (zdrs, &objp->beginoffset))
2212 return FALSE;
2213 if (!zdr_u_int (zdrs, &objp->offset))
2214 return FALSE;
2215 if (!zdr_u_int (zdrs, &objp->totalcount))
2216 return FALSE;
2217
2218 } else {
2219 objp->beginoffset = IZDR_GET_U_LONG(buf);
2220 objp->offset = IZDR_GET_U_LONG(buf);
2221 objp->totalcount = IZDR_GET_U_LONG(buf);
2222 }
2223 if (!zdr_nfsdata2 (zdrs, &objp->data))
2224 return FALSE;
2225 return TRUE;
2226 }
2227
2228 if (!zdr_fhandle2 (zdrs, objp->file))
2229 return FALSE;
2230 if (!zdr_u_int (zdrs, &objp->beginoffset))
2231 return FALSE;
2232 if (!zdr_u_int (zdrs, &objp->offset))
2233 return FALSE;
2234 if (!zdr_u_int (zdrs, &objp->totalcount))
2235 return FALSE;
2236 if (!zdr_nfsdata2 (zdrs, &objp->data))
2237 return FALSE;
2238 return TRUE;
2239 }
2240
2241 uint32_t
zdr_WRITE2resok(ZDR * zdrs,WRITE2resok * objp)2242 zdr_WRITE2resok (ZDR *zdrs, WRITE2resok *objp)
2243 {
2244 if (!zdr_fattr2 (zdrs, &objp->attributes))
2245 return FALSE;
2246 return TRUE;
2247 }
2248
2249 uint32_t
zdr_WRITE2res(ZDR * zdrs,WRITE2res * objp)2250 zdr_WRITE2res (ZDR *zdrs, WRITE2res *objp)
2251 {
2252 if (!zdr_nfsstat3 (zdrs, &objp->status))
2253 return FALSE;
2254 switch (objp->status) {
2255 case NFS3_OK:
2256 if (!zdr_WRITE2resok (zdrs, &objp->WRITE2res_u.resok))
2257 return FALSE;
2258 break;
2259 default:
2260 break;
2261 }
2262 return TRUE;
2263 }
2264
2265 uint32_t
zdr_CREATE2args(ZDR * zdrs,CREATE2args * objp)2266 zdr_CREATE2args (ZDR *zdrs, CREATE2args *objp)
2267 {
2268 if (!zdr_diropargs2 (zdrs, &objp->where))
2269 return FALSE;
2270 if (!zdr_sattr2 (zdrs, &objp->attributes))
2271 return FALSE;
2272 return TRUE;
2273 }
2274
2275 uint32_t
zdr_CREATE2resok(ZDR * zdrs,CREATE2resok * objp)2276 zdr_CREATE2resok (ZDR *zdrs, CREATE2resok *objp)
2277 {
2278 if (!zdr_fhandle2 (zdrs, objp->file))
2279 return FALSE;
2280 if (!zdr_fattr2 (zdrs, &objp->attributes))
2281 return FALSE;
2282 return TRUE;
2283 }
2284
2285 uint32_t
zdr_CREATE2res(ZDR * zdrs,CREATE2res * objp)2286 zdr_CREATE2res (ZDR *zdrs, CREATE2res *objp)
2287 {
2288 if (!zdr_nfsstat3 (zdrs, &objp->status))
2289 return FALSE;
2290 switch (objp->status) {
2291 case NFS3_OK:
2292 if (!zdr_CREATE2resok (zdrs, &objp->CREATE2res_u.resok))
2293 return FALSE;
2294 break;
2295 default:
2296 break;
2297 }
2298 return TRUE;
2299 }
2300
2301 uint32_t
zdr_REMOVE2args(ZDR * zdrs,REMOVE2args * objp)2302 zdr_REMOVE2args (ZDR *zdrs, REMOVE2args *objp)
2303 {
2304 if (!zdr_diropargs2 (zdrs, &objp->what))
2305 return FALSE;
2306 return TRUE;
2307 }
2308
2309 uint32_t
zdr_REMOVE2res(ZDR * zdrs,REMOVE2res * objp)2310 zdr_REMOVE2res (ZDR *zdrs, REMOVE2res *objp)
2311 {
2312 if (!zdr_nfsstat3 (zdrs, &objp->status))
2313 return FALSE;
2314 return TRUE;
2315 }
2316
2317 uint32_t
zdr_RENAME2args(ZDR * zdrs,RENAME2args * objp)2318 zdr_RENAME2args (ZDR *zdrs, RENAME2args *objp)
2319 {
2320 if (!zdr_diropargs2 (zdrs, &objp->from))
2321 return FALSE;
2322 if (!zdr_diropargs2 (zdrs, &objp->to))
2323 return FALSE;
2324 return TRUE;
2325 }
2326
2327 uint32_t
zdr_RENAME2res(ZDR * zdrs,RENAME2res * objp)2328 zdr_RENAME2res (ZDR *zdrs, RENAME2res *objp)
2329 {
2330 if (!zdr_nfsstat3 (zdrs, &objp->status))
2331 return FALSE;
2332 return TRUE;
2333 }
2334
2335 uint32_t
zdr_LINK2args(ZDR * zdrs,LINK2args * objp)2336 zdr_LINK2args (ZDR *zdrs, LINK2args *objp)
2337 {
2338 if (!zdr_fhandle2 (zdrs, objp->from))
2339 return FALSE;
2340 if (!zdr_diropargs2 (zdrs, &objp->to))
2341 return FALSE;
2342 return TRUE;
2343 }
2344
2345 uint32_t
zdr_LINK2res(ZDR * zdrs,LINK2res * objp)2346 zdr_LINK2res (ZDR *zdrs, LINK2res *objp)
2347 {
2348 if (!zdr_nfsstat3 (zdrs, &objp->status))
2349 return FALSE;
2350 return TRUE;
2351 }
2352
2353 uint32_t
zdr_SYMLINK2args(ZDR * zdrs,SYMLINK2args * objp)2354 zdr_SYMLINK2args (ZDR *zdrs, SYMLINK2args *objp)
2355 {
2356 if (!zdr_diropargs2 (zdrs, &objp->from))
2357 return FALSE;
2358 if (!zdr_path2 (zdrs, &objp->to))
2359 return FALSE;
2360 if (!zdr_sattr2 (zdrs, &objp->attributes))
2361 return FALSE;
2362 return TRUE;
2363 }
2364
2365 uint32_t
zdr_SYMLINK2res(ZDR * zdrs,SYMLINK2res * objp)2366 zdr_SYMLINK2res (ZDR *zdrs, SYMLINK2res *objp)
2367 {
2368 if (!zdr_nfsstat3 (zdrs, &objp->status))
2369 return FALSE;
2370 return TRUE;
2371 }
2372
2373 uint32_t
zdr_MKDIR2args(ZDR * zdrs,MKDIR2args * objp)2374 zdr_MKDIR2args (ZDR *zdrs, MKDIR2args *objp)
2375 {
2376 if (!zdr_diropargs2 (zdrs, &objp->where))
2377 return FALSE;
2378 if (!zdr_sattr2 (zdrs, &objp->attributes))
2379 return FALSE;
2380 return TRUE;
2381 }
2382
2383 uint32_t
zdr_MKDIR2resok(ZDR * zdrs,MKDIR2resok * objp)2384 zdr_MKDIR2resok (ZDR *zdrs, MKDIR2resok *objp)
2385 {
2386 if (!zdr_fhandle2 (zdrs, objp->file))
2387 return FALSE;
2388 if (!zdr_fattr2 (zdrs, &objp->attributes))
2389 return FALSE;
2390 return TRUE;
2391 }
2392
2393 uint32_t
zdr_MKDIR2res(ZDR * zdrs,MKDIR2res * objp)2394 zdr_MKDIR2res (ZDR *zdrs, MKDIR2res *objp)
2395 {
2396 if (!zdr_nfsstat3 (zdrs, &objp->status))
2397 return FALSE;
2398 switch (objp->status) {
2399 case NFS3_OK:
2400 if (!zdr_MKDIR2resok (zdrs, &objp->MKDIR2res_u.resok))
2401 return FALSE;
2402 break;
2403 default:
2404 break;
2405 }
2406 return TRUE;
2407 }
2408
2409 uint32_t
zdr_RMDIR2args(ZDR * zdrs,RMDIR2args * objp)2410 zdr_RMDIR2args (ZDR *zdrs, RMDIR2args *objp)
2411 {
2412 if (!zdr_diropargs2 (zdrs, &objp->what))
2413 return FALSE;
2414 return TRUE;
2415 }
2416
2417 uint32_t
zdr_RMDIR2res(ZDR * zdrs,RMDIR2res * objp)2418 zdr_RMDIR2res (ZDR *zdrs, RMDIR2res *objp)
2419 {
2420 if (!zdr_nfsstat3 (zdrs, &objp->status))
2421 return FALSE;
2422 return TRUE;
2423 }
2424
2425 uint32_t
zdr_READDIR2args(ZDR * zdrs,READDIR2args * objp)2426 zdr_READDIR2args (ZDR *zdrs, READDIR2args *objp)
2427 {
2428 if (!zdr_fhandle2 (zdrs, objp->dir))
2429 return FALSE;
2430 if (!zdr_nfscookie2 (zdrs, objp->cookie))
2431 return FALSE;
2432 if (!zdr_u_int (zdrs, &objp->count))
2433 return FALSE;
2434 return TRUE;
2435 }
2436
2437 uint32_t
zdr_READDIR2resok(ZDR * zdrs,READDIR2resok * objp)2438 zdr_READDIR2resok (ZDR *zdrs, READDIR2resok *objp)
2439 {
2440 if (!zdr_pointer (zdrs, (char **)&objp->entries, sizeof (entry2), (zdrproc_t) zdr_entry2))
2441 return FALSE;
2442 if (!zdr_bool (zdrs, &objp->eof))
2443 return FALSE;
2444 return TRUE;
2445 }
2446
2447 uint32_t
zdr_READDIR2res(ZDR * zdrs,READDIR2res * objp)2448 zdr_READDIR2res (ZDR *zdrs, READDIR2res *objp)
2449 {
2450 if (!zdr_nfsstat3 (zdrs, &objp->status))
2451 return FALSE;
2452 switch (objp->status) {
2453 case NFS3_OK:
2454 if (!zdr_READDIR2resok (zdrs, &objp->READDIR2res_u.resok))
2455 return FALSE;
2456 break;
2457 default:
2458 break;
2459 }
2460 return TRUE;
2461 }
2462
2463 uint32_t
zdr_STATFS2args(ZDR * zdrs,STATFS2args * objp)2464 zdr_STATFS2args (ZDR *zdrs, STATFS2args *objp)
2465 {
2466 if (!zdr_fhandle2 (zdrs, objp->dir))
2467 return FALSE;
2468 return TRUE;
2469 }
2470
2471 uint32_t
zdr_STATFS2resok(ZDR * zdrs,STATFS2resok * objp)2472 zdr_STATFS2resok (ZDR *zdrs, STATFS2resok *objp)
2473 {
2474 register int32_t *buf;
2475 buf = NULL;
2476
2477 if (zdrs->x_op == ZDR_ENCODE) {
2478 buf = ZDR_INLINE (zdrs, 5 * BYTES_PER_ZDR_UNIT);
2479 if (buf == NULL) {
2480 if (!zdr_u_int (zdrs, &objp->tsize))
2481 return FALSE;
2482 if (!zdr_u_int (zdrs, &objp->bsize))
2483 return FALSE;
2484 if (!zdr_u_int (zdrs, &objp->blocks))
2485 return FALSE;
2486 if (!zdr_u_int (zdrs, &objp->bfree))
2487 return FALSE;
2488 if (!zdr_u_int (zdrs, &objp->bavail))
2489 return FALSE;
2490 } else {
2491 IZDR_PUT_U_LONG(buf, objp->tsize);
2492 IZDR_PUT_U_LONG(buf, objp->bsize);
2493 IZDR_PUT_U_LONG(buf, objp->blocks);
2494 IZDR_PUT_U_LONG(buf, objp->bfree);
2495 IZDR_PUT_U_LONG(buf, objp->bavail);
2496 }
2497 return TRUE;
2498 } else if (zdrs->x_op == ZDR_DECODE) {
2499 buf = ZDR_INLINE (zdrs, 5 * BYTES_PER_ZDR_UNIT);
2500 if (buf == NULL) {
2501 if (!zdr_u_int (zdrs, &objp->tsize))
2502 return FALSE;
2503 if (!zdr_u_int (zdrs, &objp->bsize))
2504 return FALSE;
2505 if (!zdr_u_int (zdrs, &objp->blocks))
2506 return FALSE;
2507 if (!zdr_u_int (zdrs, &objp->bfree))
2508 return FALSE;
2509 if (!zdr_u_int (zdrs, &objp->bavail))
2510 return FALSE;
2511 } else {
2512 objp->tsize = IZDR_GET_U_LONG(buf);
2513 objp->bsize = IZDR_GET_U_LONG(buf);
2514 objp->blocks = IZDR_GET_U_LONG(buf);
2515 objp->bfree = IZDR_GET_U_LONG(buf);
2516 objp->bavail = IZDR_GET_U_LONG(buf);
2517 }
2518 return TRUE;
2519 }
2520
2521 if (!zdr_u_int (zdrs, &objp->tsize))
2522 return FALSE;
2523 if (!zdr_u_int (zdrs, &objp->bsize))
2524 return FALSE;
2525 if (!zdr_u_int (zdrs, &objp->blocks))
2526 return FALSE;
2527 if (!zdr_u_int (zdrs, &objp->bfree))
2528 return FALSE;
2529 if (!zdr_u_int (zdrs, &objp->bavail))
2530 return FALSE;
2531 return TRUE;
2532 }
2533
2534 uint32_t
zdr_STATFS2res(ZDR * zdrs,STATFS2res * objp)2535 zdr_STATFS2res (ZDR *zdrs, STATFS2res *objp)
2536 {
2537 if (!zdr_nfsstat3 (zdrs, &objp->status))
2538 return FALSE;
2539 switch (objp->status) {
2540 case NFS3_OK:
2541 if (!zdr_STATFS2resok (zdrs, &objp->STATFS2res_u.resok))
2542 return FALSE;
2543 break;
2544 default:
2545 break;
2546 }
2547 return TRUE;
2548 }
2549
2550 uint32_t
zdr_nfsacl_type(ZDR * zdrs,nfsacl_type * objp)2551 zdr_nfsacl_type (ZDR *zdrs, nfsacl_type *objp)
2552 {
2553 if (!zdr_enum (zdrs, (enum_t *) objp))
2554 return FALSE;
2555 return TRUE;
2556 }
2557
2558 uint32_t
zdr_nfsacl_ace(ZDR * zdrs,nfsacl_ace * objp)2559 zdr_nfsacl_ace (ZDR *zdrs, nfsacl_ace *objp)
2560 {
2561 if (!zdr_nfsacl_type (zdrs, &objp->type))
2562 return FALSE;
2563 if (!zdr_u_int (zdrs, &objp->id))
2564 return FALSE;
2565 if (!zdr_u_int (zdrs, &objp->perm))
2566 return FALSE;
2567 return TRUE;
2568 }
2569
2570 uint32_t
zdr_GETACL3args(ZDR * zdrs,GETACL3args * objp)2571 zdr_GETACL3args (ZDR *zdrs, GETACL3args *objp)
2572 {
2573 if (!zdr_nfs_fh3 (zdrs, &objp->dir))
2574 return FALSE;
2575 if (!zdr_u_int (zdrs, &objp->mask))
2576 return FALSE;
2577 return TRUE;
2578 }
2579
2580 uint32_t
zdr_GETACL3resok(ZDR * zdrs,GETACL3resok * objp)2581 zdr_GETACL3resok (ZDR *zdrs, GETACL3resok *objp)
2582 {
2583 if (!zdr_post_op_attr (zdrs, &objp->attr))
2584 return FALSE;
2585 if (!zdr_u_int (zdrs, &objp->mask))
2586 return FALSE;
2587 if (!zdr_u_int (zdrs, &objp->ace_count))
2588 return FALSE;
2589 if (!zdr_array (zdrs, (char **)&objp->ace.ace_val, (u_int *) &objp->ace.ace_len, ~0,
2590 sizeof (nfsacl_ace), (zdrproc_t) zdr_nfsacl_ace))
2591 return FALSE;
2592 if (!zdr_u_int (zdrs, &objp->default_ace_count))
2593 return FALSE;
2594 if (!zdr_array (zdrs, (char **)&objp->default_ace.default_ace_val, (u_int *) &objp->default_ace.default_ace_len, ~0,
2595 sizeof (nfsacl_ace), (zdrproc_t) zdr_nfsacl_ace))
2596 return FALSE;
2597 return TRUE;
2598 }
2599
2600 uint32_t
zdr_GETACL3res(ZDR * zdrs,GETACL3res * objp)2601 zdr_GETACL3res (ZDR *zdrs, GETACL3res *objp)
2602 {
2603 if (!zdr_nfsstat3 (zdrs, &objp->status))
2604 return FALSE;
2605 switch (objp->status) {
2606 case NFS3_OK:
2607 if (!zdr_GETACL3resok (zdrs, &objp->GETACL3res_u.resok))
2608 return FALSE;
2609 break;
2610 default:
2611 break;
2612 }
2613 return TRUE;
2614 }
2615
2616 uint32_t
zdr_SETACL3args(ZDR * zdrs,SETACL3args * objp)2617 zdr_SETACL3args (ZDR *zdrs, SETACL3args *objp)
2618 {
2619 if (!zdr_nfs_fh3 (zdrs, &objp->dir))
2620 return FALSE;
2621 if (!zdr_u_int (zdrs, &objp->mask))
2622 return FALSE;
2623 if (!zdr_u_int (zdrs, &objp->ace_count))
2624 return FALSE;
2625 if (!zdr_array (zdrs, (char **)&objp->ace.ace_val, (u_int *) &objp->ace.ace_len, ~0,
2626 sizeof (nfsacl_ace), (zdrproc_t) zdr_nfsacl_ace))
2627 return FALSE;
2628 if (!zdr_u_int (zdrs, &objp->default_ace_count))
2629 return FALSE;
2630 if (!zdr_array (zdrs, (char **)&objp->default_ace.default_ace_val, (u_int *) &objp->default_ace.default_ace_len, ~0,
2631 sizeof (nfsacl_ace), (zdrproc_t) zdr_nfsacl_ace))
2632 return FALSE;
2633 return TRUE;
2634 }
2635
2636 uint32_t
zdr_SETACL3resok(ZDR * zdrs,SETACL3resok * objp)2637 zdr_SETACL3resok (ZDR *zdrs, SETACL3resok *objp)
2638 {
2639 if (!zdr_post_op_attr (zdrs, &objp->attr))
2640 return FALSE;
2641 return TRUE;
2642 }
2643
2644 uint32_t
zdr_SETACL3res(ZDR * zdrs,SETACL3res * objp)2645 zdr_SETACL3res (ZDR *zdrs, SETACL3res *objp)
2646 {
2647 if (!zdr_nfsstat3 (zdrs, &objp->status))
2648 return FALSE;
2649 switch (objp->status) {
2650 case NFS3_OK:
2651 if (!zdr_SETACL3resok (zdrs, &objp->SETACL3res_u.resok))
2652 return FALSE;
2653 break;
2654 default:
2655 break;
2656 }
2657 return TRUE;
2658 }
2659