1 /* 2 * Copyright (c) 1997-2014 Erez Zadok 3 * Copyright (c) 1990 Jan-Simon Pendry 4 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 5 * Copyright (c) 1990 The Regents of the University of California. 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by 9 * Jan-Simon Pendry at Imperial College, London. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * 36 * File: am-utils/libamu/xdr_func.c 37 * 38 */ 39 40 /* 41 * Complete list of all possible xdr functions which may be needed. 42 */ 43 #ifdef HAVE_CONFIG_H 44 # include <config.h> 45 #endif /* HAVE_CONFIG_H */ 46 #include <am_defs.h> 47 #include <amu.h> 48 49 #ifdef __RPCSVC_MOUNT_H__ 50 # error IRIX6 should not include rpcsvc/mount.h 51 #endif /* __RPCSVC_MOUNT_H__ */ 52 53 /* 54 * MACROS: 55 */ 56 #ifdef HAVE_FS_AUTOFS 57 # ifndef AUTOFS_MAXCOMPONENTLEN 58 # define AUTOFS_MAXCOMPONENTLEN 255 59 # endif /* not AUTOFS_MAXCOMPONENTLEN */ 60 # ifndef AUTOFS_MAXOPTSLEN 61 # define AUTOFS_MAXOPTSLEN 255 62 # endif /* not AUTOFS_MAXOPTSLEN */ 63 # ifndef AUTOFS_MAXPATHLEN 64 # define AUTOFS_MAXPATHLEN 1024 65 # endif /* not AUTOFS_MAXPATHLEN */ 66 #endif /* HAVE_FS_AUTOFS */ 67 68 /* forward definitions, are they needed? */ 69 extern bool_t xdr_exportnode(XDR *xdrs, exportnode *objp); 70 extern bool_t xdr_groupnode(XDR *xdrs, groupnode *objp); 71 extern bool_t xdr_name(XDR *xdrs, name *objp); 72 73 74 #ifndef HAVE_XDR_ATTRSTAT 75 bool_t 76 xdr_attrstat(XDR *xdrs, nfsattrstat *objp) 77 { 78 if (amuDebug(D_XDRTRACE)) 79 plog(XLOG_DEBUG, "xdr_attrstat:"); 80 81 if (!xdr_nfsstat(xdrs, &objp->ns_status)) { 82 return (FALSE); 83 } 84 switch (objp->ns_status) { 85 case NFS_OK: 86 if (!xdr_fattr(xdrs, &objp->ns_u.ns_attr_u)) { 87 return (FALSE); 88 } 89 break; 90 default: 91 break; 92 } 93 return (TRUE); 94 } 95 #endif /* not HAVE_XDR_ATTRSTAT */ 96 97 98 #ifndef HAVE_XDR_CREATEARGS 99 bool_t 100 xdr_createargs(XDR *xdrs, nfscreateargs *objp) 101 { 102 if (amuDebug(D_XDRTRACE)) 103 plog(XLOG_DEBUG, "xdr_createargs:"); 104 105 if (!xdr_diropargs(xdrs, &objp->ca_where)) { 106 return (FALSE); 107 } 108 if (!xdr_sattr(xdrs, &objp->ca_attributes)) { 109 return (FALSE); 110 } 111 return (TRUE); 112 } 113 #endif /* not HAVE_XDR_CREATEARGS */ 114 115 116 #ifndef HAVE_XDR_DIRLIST 117 bool_t 118 xdr_dirlist(XDR *xdrs, nfsdirlist *objp) 119 { 120 if (amuDebug(D_XDRTRACE)) 121 plog(XLOG_DEBUG, "xdr_dirlist:"); 122 123 if (!xdr_pointer(xdrs, (char **) &objp->dl_entries, sizeof(nfsentry), (XDRPROC_T_TYPE) xdr_entry)) { 124 return (FALSE); 125 } 126 if (!xdr_bool(xdrs, &objp->dl_eof)) { 127 return (FALSE); 128 } 129 return (TRUE); 130 } 131 #endif /* not HAVE_XDR_DIRLIST */ 132 133 134 #ifndef HAVE_XDR_DIROPARGS 135 bool_t 136 xdr_diropargs(XDR *xdrs, nfsdiropargs *objp) 137 { 138 if (amuDebug(D_XDRTRACE)) 139 plog(XLOG_DEBUG, "xdr_diropargs:"); 140 141 if (!xdr_nfs_fh(xdrs, &objp->da_fhandle)) { 142 return (FALSE); 143 } 144 if (!xdr_filename(xdrs, &objp->da_name)) { 145 return (FALSE); 146 } 147 return (TRUE); 148 } 149 #endif /* not HAVE_XDR_DIROPARGS */ 150 151 152 #ifndef HAVE_XDR_DIROPOKRES 153 bool_t 154 xdr_diropokres(XDR *xdrs, nfsdiropokres *objp) 155 { 156 if (amuDebug(D_XDRTRACE)) 157 plog(XLOG_DEBUG, "xdr_diropokres:"); 158 159 if (!xdr_nfs_fh(xdrs, &objp->drok_fhandle)) { 160 return (FALSE); 161 } 162 if (!xdr_fattr(xdrs, &objp->drok_attributes)) { 163 return (FALSE); 164 } 165 return (TRUE); 166 } 167 #endif /* not HAVE_XDR_DIROPOKRES */ 168 169 170 #ifndef HAVE_XDR_DIROPRES 171 bool_t 172 xdr_diropres(XDR *xdrs, nfsdiropres *objp) 173 { 174 if (amuDebug(D_XDRTRACE)) 175 plog(XLOG_DEBUG, "xdr_diropres:"); 176 177 if (!xdr_nfsstat(xdrs, &objp->dr_status)) { 178 return (FALSE); 179 } 180 switch (objp->dr_status) { 181 case NFS_OK: 182 if (!xdr_diropokres(xdrs, &objp->dr_u.dr_drok_u)) { 183 return (FALSE); 184 } 185 break; 186 default: 187 break; 188 } 189 return (TRUE); 190 } 191 #endif /* not HAVE_XDR_DIROPRES */ 192 193 194 #ifndef HAVE_XDR_DIRPATH 195 bool_t 196 xdr_dirpath(XDR *xdrs, dirpath *objp) 197 { 198 if (amuDebug(D_XDRTRACE)) 199 plog(XLOG_DEBUG, "xdr_dirpath:"); 200 201 if (!xdr_string(xdrs, objp, MNTPATHLEN)) { 202 return (FALSE); 203 } 204 return (TRUE); 205 } 206 #endif /* not HAVE_XDR_DIRPATH */ 207 208 209 #ifndef HAVE_XDR_ENTRY 210 bool_t 211 xdr_entry(XDR *xdrs, nfsentry *objp) 212 { 213 if (amuDebug(D_XDRTRACE)) 214 plog(XLOG_DEBUG, "xdr_entry:"); 215 216 if (!xdr_u_int(xdrs, &objp->ne_fileid)) { 217 return (FALSE); 218 } 219 if (!xdr_filename(xdrs, &objp->ne_name)) { 220 return (FALSE); 221 } 222 if (!xdr_nfscookie(xdrs, objp->ne_cookie)) { 223 return (FALSE); 224 } 225 if (!xdr_pointer(xdrs, (char **) &objp->ne_nextentry, sizeof(nfsentry), (XDRPROC_T_TYPE) xdr_entry)) { 226 return (FALSE); 227 } 228 return (TRUE); 229 } 230 #endif /* not HAVE_XDR_ENTRY */ 231 232 233 #ifndef HAVE_XDR_EXPORTNODE 234 bool_t 235 xdr_exportnode(XDR *xdrs, exportnode *objp) 236 { 237 if (amuDebug(D_XDRTRACE)) 238 plog(XLOG_DEBUG, "xdr_exportnode:"); 239 240 if (!xdr_dirpath(xdrs, &objp->ex_dir)) { 241 return (FALSE); 242 } 243 if (!xdr_groups(xdrs, &objp->ex_groups)) { 244 return (FALSE); 245 } 246 if (!xdr_exports(xdrs, &objp->ex_next)) { 247 return (FALSE); 248 } 249 return (TRUE); 250 } 251 #endif /* not HAVE_XDR_EXPORTNODE */ 252 253 254 #ifndef HAVE_XDR_EXPORTS 255 bool_t 256 xdr_exports(XDR *xdrs, exports *objp) 257 { 258 if (amuDebug(D_XDRTRACE)) 259 plog(XLOG_DEBUG, "xdr_exports:"); 260 261 if (!xdr_pointer(xdrs, (char **) objp, sizeof(exportnode), (XDRPROC_T_TYPE) xdr_exportnode)) { 262 return (FALSE); 263 } 264 return (TRUE); 265 } 266 #endif /* not HAVE_XDR_EXPORTS */ 267 268 269 #ifndef HAVE_XDR_FATTR 270 bool_t 271 xdr_fattr(XDR *xdrs, nfsfattr *objp) 272 { 273 if (amuDebug(D_XDRTRACE)) 274 plog(XLOG_DEBUG, "xdr_fattr:"); 275 276 if (!xdr_ftype(xdrs, &objp->na_type)) { 277 return (FALSE); 278 } 279 if (!xdr_u_int(xdrs, &objp->na_mode)) { 280 return (FALSE); 281 } 282 if (!xdr_u_int(xdrs, &objp->na_nlink)) { 283 return (FALSE); 284 } 285 if (!xdr_u_int(xdrs, &objp->na_uid)) { 286 return (FALSE); 287 } 288 if (!xdr_u_int(xdrs, &objp->na_gid)) { 289 return (FALSE); 290 } 291 if (!xdr_u_int(xdrs, &objp->na_size)) { 292 return (FALSE); 293 } 294 if (!xdr_u_int(xdrs, &objp->na_blocksize)) { 295 return (FALSE); 296 } 297 if (!xdr_u_int(xdrs, &objp->na_rdev)) { 298 return (FALSE); 299 } 300 if (!xdr_u_int(xdrs, &objp->na_blocks)) { 301 return (FALSE); 302 } 303 if (!xdr_u_int(xdrs, &objp->na_fsid)) { 304 return (FALSE); 305 } 306 if (!xdr_u_int(xdrs, &objp->na_fileid)) { 307 return (FALSE); 308 } 309 if (!xdr_nfstime(xdrs, &objp->na_atime)) { 310 return (FALSE); 311 } 312 if (!xdr_nfstime(xdrs, &objp->na_mtime)) { 313 return (FALSE); 314 } 315 if (!xdr_nfstime(xdrs, &objp->na_ctime)) { 316 return (FALSE); 317 } 318 return (TRUE); 319 } 320 #endif /* not HAVE_XDR_FATTR */ 321 322 323 #ifndef HAVE_XDR_FHANDLE 324 bool_t 325 xdr_fhandle(XDR *xdrs, fhandle objp) 326 { 327 if (amuDebug(D_XDRTRACE)) 328 plog(XLOG_DEBUG, "xdr_fhandle:"); 329 330 if (!xdr_opaque(xdrs, objp, NFS_FHSIZE)) { 331 return (FALSE); 332 } 333 return (TRUE); 334 } 335 #endif /* not HAVE_XDR_FHANDLE */ 336 337 338 #ifndef HAVE_XDR_FHSTATUS 339 bool_t 340 xdr_fhstatus(XDR *xdrs, fhstatus *objp) 341 { 342 if (amuDebug(D_XDRTRACE)) 343 plog(XLOG_DEBUG, "xdr_fhstatus:"); 344 345 if (!xdr_u_int(xdrs, &objp->fhs_status)) { 346 return (FALSE); 347 } 348 if (objp->fhs_status == 0 && !xdr_fhandle(xdrs, objp->fhs_fh)) { 349 return (FALSE); 350 } 351 return (TRUE); 352 } 353 #endif /* not HAVE_XDR_FHSTATUS */ 354 355 356 #ifndef HAVE_XDR_FILENAME 357 bool_t 358 xdr_filename(XDR *xdrs, filename *objp) 359 { 360 if (amuDebug(D_XDRTRACE)) 361 plog(XLOG_DEBUG, "xdr_filename:"); 362 363 if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN)) { 364 return (FALSE); 365 } 366 return (TRUE); 367 } 368 #endif /* not HAVE_XDR_FILENAME */ 369 370 371 #ifndef HAVE_XDR_FTYPE 372 bool_t 373 xdr_ftype(XDR *xdrs, nfsftype *objp) 374 { 375 enum_t local_obj = *objp; 376 377 if (amuDebug(D_XDRTRACE)) 378 plog(XLOG_DEBUG, "xdr_ftype:"); 379 380 if (!xdr_enum(xdrs, &local_obj)) { 381 return (FALSE); 382 } 383 return (TRUE); 384 } 385 #endif /* not HAVE_XDR_FTYPE */ 386 387 388 #ifndef HAVE_XDR_GROUPNODE 389 bool_t 390 xdr_groupnode(XDR *xdrs, groupnode *objp) 391 { 392 if (amuDebug(D_XDRTRACE)) 393 plog(XLOG_DEBUG, "xdr_groupnode:"); 394 395 if (!xdr_name(xdrs, &objp->gr_name)) { 396 return (FALSE); 397 } 398 if (!xdr_groups(xdrs, &objp->gr_next)) { 399 return (FALSE); 400 } 401 return (TRUE); 402 } 403 #endif /* not HAVE_XDR_GROUPNODE */ 404 405 406 #ifndef HAVE_XDR_GROUPS 407 bool_t 408 xdr_groups(XDR *xdrs, groups *objp) 409 { 410 if (amuDebug(D_XDRTRACE)) 411 plog(XLOG_DEBUG, "xdr_groups:"); 412 413 if (!xdr_pointer(xdrs, (char **) objp, sizeof(groupnode), (XDRPROC_T_TYPE) xdr_groupnode)) { 414 return (FALSE); 415 } 416 return (TRUE); 417 } 418 #endif /* not HAVE_XDR_GROUPS */ 419 420 421 #ifndef HAVE_XDR_LINKARGS 422 bool_t 423 xdr_linkargs(XDR *xdrs, nfslinkargs *objp) 424 { 425 if (amuDebug(D_XDRTRACE)) 426 plog(XLOG_DEBUG, "xdr_linkargs:"); 427 428 if (!xdr_nfs_fh(xdrs, &objp->la_fhandle)) { 429 return (FALSE); 430 } 431 if (!xdr_diropargs(xdrs, &objp->la_to)) { 432 return (FALSE); 433 } 434 return (TRUE); 435 } 436 #endif /* not HAVE_XDR_LINKARGS */ 437 438 439 #ifndef HAVE_XDR_MOUNTBODY 440 bool_t 441 xdr_mountbody(XDR *xdrs, mountbody *objp) 442 { 443 if (amuDebug(D_XDRTRACE)) 444 plog(XLOG_DEBUG, "xdr_mountbody:"); 445 446 if (!xdr_name(xdrs, &objp->ml_hostname)) { 447 return (FALSE); 448 } 449 if (!xdr_dirpath(xdrs, &objp->ml_directory)) { 450 return (FALSE); 451 } 452 if (!xdr_mountlist(xdrs, &objp->ml_next)) { 453 return (FALSE); 454 } 455 return (TRUE); 456 } 457 #endif /* not HAVE_XDR_MOUNTBODY */ 458 459 460 #ifndef HAVE_XDR_MOUNTLIST 461 bool_t 462 xdr_mountlist(XDR *xdrs, mountlist *objp) 463 { 464 if (amuDebug(D_XDRTRACE)) 465 plog(XLOG_DEBUG, "xdr_mountlist:"); 466 467 if (!xdr_pointer(xdrs, (char **) objp, sizeof(mountbody), (XDRPROC_T_TYPE) xdr_mountbody)) { 468 return (FALSE); 469 } 470 return (TRUE); 471 } 472 #endif /* not HAVE_XDR_MOUNTLIST */ 473 474 475 #ifndef HAVE_XDR_NAME 476 bool_t 477 xdr_name(XDR *xdrs, name *objp) 478 { 479 if (amuDebug(D_XDRTRACE)) 480 plog(XLOG_DEBUG, "xdr_name:"); 481 482 if (!xdr_string(xdrs, objp, MNTNAMLEN)) { 483 return (FALSE); 484 } 485 return (TRUE); 486 } 487 #endif /* not HAVE_XDR_NAME */ 488 489 490 #ifndef HAVE_XDR_NFS_FH 491 bool_t 492 xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp) 493 { 494 if (amuDebug(D_XDRTRACE)) 495 plog(XLOG_DEBUG, "xdr_nfs_fh:"); 496 497 if (!xdr_opaque(xdrs, (caddr_t) objp->fh_data, NFS_FHSIZE)) { 498 return (FALSE); 499 } 500 return (TRUE); 501 } 502 #endif /* not HAVE_XDR_NFS_FH */ 503 504 505 #ifndef HAVE_XDR_NFSCOOKIE 506 bool_t 507 xdr_nfscookie(XDR *xdrs, nfscookie objp) 508 { 509 if (amuDebug(D_XDRTRACE)) 510 plog(XLOG_DEBUG, "xdr_nfscookie:"); 511 512 if (!xdr_opaque(xdrs, objp, NFS_COOKIESIZE)) { 513 return (FALSE); 514 } 515 return (TRUE); 516 } 517 #endif /* not HAVE_XDR_NFSCOOKIE */ 518 519 520 #ifndef HAVE_XDR_NFSPATH 521 bool_t 522 xdr_nfspath(XDR *xdrs, nfspath *objp) 523 { 524 if (amuDebug(D_XDRTRACE)) 525 plog(XLOG_DEBUG, "xdr_nfspath:"); 526 527 if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN)) { 528 return (FALSE); 529 } 530 return (TRUE); 531 } 532 #endif /* not HAVE_XDR_NFSPATH */ 533 534 535 #ifndef HAVE_XDR_NFSSTAT 536 bool_t 537 xdr_nfsstat(XDR *xdrs, nfsstat *objp) 538 { 539 enum_t local_obj = *objp; 540 541 if (amuDebug(D_XDRTRACE)) 542 plog(XLOG_DEBUG, "xdr_nfsstat:"); 543 544 if (!xdr_enum(xdrs, &local_obj)) { 545 return (FALSE); 546 } 547 return (TRUE); 548 } 549 #endif /* not HAVE_XDR_NFSSTAT */ 550 551 552 #ifndef HAVE_XDR_NFSTIME 553 bool_t 554 xdr_nfstime(XDR *xdrs, nfstime *objp) 555 { 556 if (amuDebug(D_XDRTRACE)) 557 plog(XLOG_DEBUG, "xdr_nfstime:"); 558 559 if (!xdr_u_int(xdrs, (u_int *) &objp->nt_seconds)) { 560 return (FALSE); 561 } 562 if (!xdr_u_int(xdrs, (u_int *) &objp->nt_useconds)) { 563 return (FALSE); 564 } 565 return (TRUE); 566 } 567 #endif /* not HAVE_XDR_NFSTIME */ 568 569 570 #ifndef HAVE_XDR_POINTER 571 bool_t 572 xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj) 573 { 574 if (amuDebug(D_XDRTRACE)) 575 plog(XLOG_DEBUG, "xdr_pointer:"); 576 577 bool_t more_data; 578 579 more_data = (*objpp != NULL); 580 if (!xdr_bool(xdrs, &more_data)) { 581 return (FALSE); 582 } 583 if (!more_data) { 584 *objpp = NULL; 585 return (TRUE); 586 } 587 588 return (xdr_reference(xdrs, objpp, obj_size, xdr_obj)); 589 } 590 #endif /* not HAVE_XDR_POINTER */ 591 592 593 #ifndef HAVE_XDR_READARGS 594 bool_t 595 xdr_readargs(XDR *xdrs, nfsreadargs *objp) 596 { 597 if (amuDebug(D_XDRTRACE)) 598 plog(XLOG_DEBUG, "xdr_readargs:"); 599 600 if (!xdr_nfs_fh(xdrs, &objp->ra_fhandle)) { 601 return (FALSE); 602 } 603 if (!xdr_u_int(xdrs, &objp->ra_offset)) { 604 return (FALSE); 605 } 606 if (!xdr_u_int(xdrs, &objp->ra_count)) { 607 return (FALSE); 608 } 609 if (!xdr_u_int(xdrs, &objp->ra_totalcount)) { 610 return (FALSE); 611 } 612 return (TRUE); 613 } 614 #endif /* not HAVE_XDR_READARGS */ 615 616 617 #ifndef HAVE_XDR_READDIRARGS 618 bool_t 619 xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp) 620 { 621 if (amuDebug(D_XDRTRACE)) 622 plog(XLOG_DEBUG, "xdr_readdirargs:"); 623 624 if (!xdr_nfs_fh(xdrs, &objp->rda_fhandle)) { 625 return (FALSE); 626 } 627 if (!xdr_nfscookie(xdrs, objp->rda_cookie)) { 628 return (FALSE); 629 } 630 if (!xdr_u_int(xdrs, &objp->rda_count)) { 631 return (FALSE); 632 } 633 return (TRUE); 634 } 635 #endif /* not HAVE_XDR_READDIRARGS */ 636 637 638 #ifndef HAVE_XDR_READDIRRES 639 bool_t 640 xdr_readdirres(XDR *xdrs, nfsreaddirres *objp) 641 { 642 if (amuDebug(D_XDRTRACE)) 643 plog(XLOG_DEBUG, "xdr_readdirres:"); 644 645 if (!xdr_nfsstat(xdrs, &objp->rdr_status)) { 646 return (FALSE); 647 } 648 switch (objp->rdr_status) { 649 case NFS_OK: 650 if (!xdr_dirlist(xdrs, &objp->rdr_u.rdr_reply_u)) { 651 return (FALSE); 652 } 653 break; 654 default: 655 break; 656 } 657 return (TRUE); 658 } 659 #endif /* not HAVE_XDR_READDIRRES */ 660 661 662 #ifndef HAVE_XDR_READLINKRES 663 bool_t 664 xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp) 665 { 666 if (amuDebug(D_XDRTRACE)) 667 plog(XLOG_DEBUG, "xdr_readlinkres:"); 668 669 if (!xdr_nfsstat(xdrs, &objp->rlr_status)) { 670 return (FALSE); 671 } 672 switch (objp->rlr_status) { 673 case NFS_OK: 674 if (!xdr_nfspath(xdrs, &objp->rlr_u.rlr_data_u)) { 675 return (FALSE); 676 } 677 break; 678 default: 679 break; 680 } 681 return (TRUE); 682 } 683 #endif /* not HAVE_XDR_READLINKRES */ 684 685 686 #ifndef HAVE_XDR_READOKRES 687 bool_t 688 xdr_readokres(XDR *xdrs, nfsreadokres *objp) 689 { 690 if (amuDebug(D_XDRTRACE)) 691 plog(XLOG_DEBUG, "xdr_readokres:"); 692 693 if (!xdr_fattr(xdrs, &objp->raok_attributes)) { 694 return (FALSE); 695 } 696 if (!xdr_bytes(xdrs, 697 (char **) & objp->raok_u.raok_val_u, 698 (u_int *) & objp->raok_u.raok_len_u, 699 NFS_MAXDATA)) { 700 return (FALSE); 701 } 702 return (TRUE); 703 } 704 #endif /* not HAVE_XDR_READOKRES */ 705 706 707 #ifndef HAVE_XDR_READRES 708 bool_t 709 xdr_readres(XDR *xdrs, nfsreadres *objp) 710 { 711 if (amuDebug(D_XDRTRACE)) 712 plog(XLOG_DEBUG, "xdr_readres:"); 713 714 if (!xdr_nfsstat(xdrs, &objp->rr_status)) { 715 return (FALSE); 716 } 717 switch (objp->rr_status) { 718 case NFS_OK: 719 if (!xdr_readokres(xdrs, &objp->rr_u.rr_reply_u)) { 720 return (FALSE); 721 } 722 break; 723 default: 724 break; 725 } 726 return (TRUE); 727 } 728 #endif /* not HAVE_XDR_READRES */ 729 730 731 #ifndef HAVE_XDR_RENAMEARGS 732 bool_t 733 xdr_renameargs(XDR *xdrs, nfsrenameargs *objp) 734 { 735 if (amuDebug(D_XDRTRACE)) 736 plog(XLOG_DEBUG, "xdr_renameargs:"); 737 738 if (!xdr_diropargs(xdrs, &objp->rna_from)) { 739 return (FALSE); 740 } 741 if (!xdr_diropargs(xdrs, &objp->rna_to)) { 742 return (FALSE); 743 } 744 return (TRUE); 745 } 746 #endif /* not HAVE_XDR_RENAMEARGS */ 747 748 749 #ifndef HAVE_XDR_SATTR 750 bool_t 751 xdr_sattr(XDR *xdrs, nfssattr *objp) 752 { 753 if (amuDebug(D_XDRTRACE)) 754 plog(XLOG_DEBUG, "xdr_sattr:"); 755 756 if (!xdr_u_int(xdrs, &objp->sa_mode)) { 757 return (FALSE); 758 } 759 if (!xdr_u_int(xdrs, &objp->sa_uid)) { 760 return (FALSE); 761 } 762 if (!xdr_u_int(xdrs, &objp->sa_gid)) { 763 return (FALSE); 764 } 765 if (!xdr_u_int(xdrs, &objp->sa_size)) { 766 return (FALSE); 767 } 768 if (!xdr_nfstime(xdrs, &objp->sa_atime)) { 769 return (FALSE); 770 } 771 if (!xdr_nfstime(xdrs, &objp->sa_mtime)) { 772 return (FALSE); 773 } 774 return (TRUE); 775 } 776 #endif /* not HAVE_XDR_SATTR */ 777 778 779 #ifndef HAVE_XDR_SATTRARGS 780 bool_t 781 xdr_sattrargs(XDR *xdrs, nfssattrargs *objp) 782 { 783 if (amuDebug(D_XDRTRACE)) 784 plog(XLOG_DEBUG, "xdr_sattrargs:"); 785 786 if (!xdr_nfs_fh(xdrs, &objp->sag_fhandle)) { 787 return (FALSE); 788 } 789 if (!xdr_sattr(xdrs, &objp->sag_attributes)) { 790 return (FALSE); 791 } 792 return (TRUE); 793 } 794 #endif /* not HAVE_XDR_SATTRARGS */ 795 796 797 #ifndef HAVE_XDR_STATFSOKRES 798 bool_t 799 xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp) 800 { 801 if (amuDebug(D_XDRTRACE)) 802 plog(XLOG_DEBUG, "xdr_statfsokres:"); 803 804 if (!xdr_u_int(xdrs, &objp->sfrok_tsize)) { 805 return (FALSE); 806 } 807 if (!xdr_u_int(xdrs, &objp->sfrok_bsize)) { 808 return (FALSE); 809 } 810 if (!xdr_u_int(xdrs, &objp->sfrok_blocks)) { 811 return (FALSE); 812 } 813 if (!xdr_u_int(xdrs, &objp->sfrok_bfree)) { 814 return (FALSE); 815 } 816 if (!xdr_u_int(xdrs, &objp->sfrok_bavail)) { 817 return (FALSE); 818 } 819 return (TRUE); 820 } 821 #endif /* not HAVE_XDR_STATFSOKRES */ 822 823 824 #ifndef HAVE_XDR_STATFSRES 825 bool_t 826 xdr_statfsres(XDR *xdrs, nfsstatfsres *objp) 827 { 828 if (amuDebug(D_XDRTRACE)) 829 plog(XLOG_DEBUG, "xdr_statfsres:"); 830 831 if (!xdr_nfsstat(xdrs, &objp->sfr_status)) { 832 return (FALSE); 833 } 834 switch (objp->sfr_status) { 835 case NFS_OK: 836 if (!xdr_statfsokres(xdrs, &objp->sfr_u.sfr_reply_u)) { 837 return (FALSE); 838 } 839 break; 840 default: 841 break; 842 } 843 return (TRUE); 844 } 845 #endif /* not HAVE_XDR_STATFSRES */ 846 847 848 #ifndef HAVE_XDR_SYMLINKARGS 849 bool_t 850 xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp) 851 { 852 if (amuDebug(D_XDRTRACE)) 853 plog(XLOG_DEBUG, "xdr_symlinkargs:"); 854 855 if (!xdr_diropargs(xdrs, &objp->sla_from)) { 856 return (FALSE); 857 } 858 if (!xdr_nfspath(xdrs, &objp->sla_to)) { 859 return (FALSE); 860 } 861 if (!xdr_sattr(xdrs, &objp->sla_attributes)) { 862 return (FALSE); 863 } 864 return (TRUE); 865 } 866 #endif /* not HAVE_XDR_SYMLINKARGS */ 867 868 869 #ifndef HAVE_XDR_WRITEARGS 870 bool_t 871 xdr_writeargs(XDR *xdrs, nfswriteargs *objp) 872 { 873 if (amuDebug(D_XDRTRACE)) 874 plog(XLOG_DEBUG, "xdr_writeargs:"); 875 876 if (!xdr_nfs_fh(xdrs, &objp->wra_fhandle)) { 877 return (FALSE); 878 } 879 if (!xdr_u_int(xdrs, &objp->wra_beginoffset)) { 880 return (FALSE); 881 } 882 if (!xdr_u_int(xdrs, &objp->wra_offset)) { 883 return (FALSE); 884 } 885 if (!xdr_u_int(xdrs, &objp->wra_totalcount)) { 886 return (FALSE); 887 } 888 if (!xdr_bytes(xdrs, 889 (char **) & objp->wra_u.wra_val_u, 890 (u_int *) & objp->wra_u.wra_len_u, 891 NFS_MAXDATA)) { 892 return (FALSE); 893 } 894 return (TRUE); 895 } 896 #endif /* not HAVE_XDR_WRITEARGS */ 897 898 899 /* 900 * NFS V3 XDR FUNCTIONS: 901 */ 902 #ifdef HAVE_FS_NFS3 903 bool_t 904 xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp) 905 { 906 if (amuDebug(D_XDRTRACE)) 907 plog(XLOG_DEBUG, "xdr_am_fhandle3:"); 908 909 if (!xdr_bytes(xdrs, 910 (char **) &objp->fhandle3_val, 911 (u_int *) &objp->fhandle3_len, 912 AM_FHSIZE3)) 913 return (FALSE); 914 return (TRUE); 915 } 916 917 918 bool_t 919 xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp) 920 { 921 enum_t local_obj = *objp; 922 923 if (amuDebug(D_XDRTRACE)) 924 plog(XLOG_DEBUG, "xdr_am_mountstat3:"); 925 926 if (!xdr_enum(xdrs, &local_obj)) 927 return (FALSE); 928 return (TRUE); 929 } 930 931 932 bool_t 933 xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp) 934 { 935 if (amuDebug(D_XDRTRACE)) 936 plog(XLOG_DEBUG, "xdr_am_mountres3_ok:"); 937 938 if (!xdr_am_fhandle3(xdrs, &objp->fhandle)) 939 return (FALSE); 940 if (!xdr_array(xdrs, 941 (char **) ((voidp) &objp->auth_flavors.auth_flavors_val), 942 (u_int *) &objp->auth_flavors.auth_flavors_len, 943 ~0, 944 sizeof(int), 945 (XDRPROC_T_TYPE) xdr_int)) 946 return (FALSE); 947 return (TRUE); 948 } 949 950 bool_t 951 xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp) 952 { 953 if (amuDebug(D_XDRTRACE)) 954 plog(XLOG_DEBUG, "xdr_am_mountres3:"); 955 956 if (!xdr_am_mountstat3(xdrs, &objp->fhs_status)) 957 return (FALSE); 958 959 if (objp->fhs_status == AM_MNT3_OK) { 960 if (!xdr_am_mountres3_ok(xdrs, &objp->mountres3_u.mountinfo)) 961 return (FALSE); 962 } 963 return (TRUE); 964 } 965 966 bool_t 967 xdr_am_cookieverf3(XDR *xdrs, am_cookieverf3 objp) 968 { 969 if (amuDebug(D_XDRTRACE)) 970 plog(XLOG_DEBUG, "xdr_am_cookieverf3:"); 971 972 if (!xdr_opaque(xdrs, objp, AM_NFS3_COOKIEVERFSIZE)) 973 return FALSE; 974 return TRUE; 975 } 976 977 #if 0 978 /* In FreeBSD xdr_uint64() is defined in ../../../include/rpcsvc/nfs_prot.x */ 979 /* 980 * Not ideal, xdr_u_int64_t() is not defined in Linux glibc RPC 981 * but xdr_u_quad_t() is. But in libtirpc xdr_u_quad_t() is not 982 * defined and xdr_u_int64_t() is. So xdr_u_int64_t() is probably 983 * an expected standard xdr function so, if it isn't defined use 984 * an internal xdr_u_int64_t() that uses xdr_u_quad_t(). 985 */ 986 #ifndef HAVE_XDR_U_INT64_T 987 #define xdr_u_int64_t(xdrs, objp) xdr_u_quad_t(xdrs, objp) 988 #endif /* HAVE_XDR_U_INT64_T */ 989 990 bool_t 991 xdr_uint64(XDR *xdrs, uint64 *objp) 992 { 993 if (amuDebug(D_XDRTRACE)) 994 plog(XLOG_DEBUG, "xdr_uint64:"); 995 996 if (!xdr_u_int64_t(xdrs, objp)) 997 return FALSE; 998 return TRUE; 999 } 1000 #endif 1001 1002 bool_t 1003 xdr_am_cookie3(XDR *xdrs, am_cookie3 *objp) 1004 { 1005 if (amuDebug(D_XDRTRACE)) 1006 plog(XLOG_DEBUG, "xdr_am_cookie3:"); 1007 1008 if (!xdr_uint64(xdrs, objp)) 1009 return FALSE; 1010 return TRUE; 1011 } 1012 1013 bool_t 1014 xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp) 1015 { 1016 if (amuDebug(D_XDRTRACE)) 1017 plog(XLOG_DEBUG, "xdr_am_nfs_fh3:"); 1018 1019 if (!xdr_u_int(xdrs, &objp->am_fh3_length)) 1020 return (FALSE); 1021 if (objp->am_fh3_length > AM_FHSIZE3) 1022 return (FALSE); 1023 if (!xdr_opaque(xdrs, objp->am_fh3_data, objp->am_fh3_length)) 1024 return (FALSE); 1025 return (TRUE); 1026 } 1027 1028 bool_t 1029 xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp) 1030 { 1031 if (amuDebug(D_XDRTRACE)) 1032 plog(XLOG_DEBUG, "xdr_am_nfsstat3:"); 1033 1034 if (!xdr_enum(xdrs, (enum_t *)objp)) 1035 return (FALSE); 1036 return (TRUE); 1037 } 1038 1039 bool_t 1040 xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp) 1041 { 1042 if (amuDebug(D_XDRTRACE)) 1043 plog(XLOG_DEBUG, "xdr_am_diropargs3:"); 1044 1045 if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) 1046 return (FALSE); 1047 if (!xdr_am_filename3(xdrs, &objp->name)) 1048 return (FALSE); 1049 return (TRUE); 1050 } 1051 1052 bool_t 1053 xdr_am_filename3(XDR *xdrs, am_filename3 *objp) 1054 { 1055 if (amuDebug(D_XDRTRACE)) 1056 plog(XLOG_DEBUG, "xdr_am_filename3:"); 1057 1058 if (!xdr_string(xdrs, objp, ~0)) 1059 return (FALSE); 1060 return (TRUE); 1061 } 1062 1063 bool_t 1064 xdr_am_ftype3(XDR *xdrs, am_ftype3 *objp) 1065 { 1066 if (amuDebug(D_XDRTRACE)) 1067 plog(XLOG_DEBUG, "xdr_am_ftype3:"); 1068 1069 if (!xdr_enum(xdrs, (enum_t *) objp)) 1070 return FALSE; 1071 return TRUE; 1072 } 1073 1074 bool_t 1075 xdr_am_mode3(XDR *xdrs, am_mode3 *objp) 1076 { 1077 if (amuDebug(D_XDRTRACE)) 1078 plog(XLOG_DEBUG, "xdr_am_mode3:"); 1079 1080 if (!xdr_u_int(xdrs, objp)) 1081 return FALSE; 1082 return TRUE; 1083 } 1084 1085 bool_t 1086 xdr_am_uid3(XDR *xdrs, am_uid3 *objp) 1087 { 1088 if (amuDebug(D_XDRTRACE)) 1089 plog(XLOG_DEBUG, "xdr_am_uid3:"); 1090 1091 if (!xdr_u_int(xdrs, objp)) 1092 return FALSE; 1093 return TRUE; 1094 } 1095 1096 bool_t 1097 xdr_am_gid3(XDR *xdrs, am_gid3 *objp) 1098 { 1099 if (amuDebug(D_XDRTRACE)) 1100 plog(XLOG_DEBUG, "xdr_am_gid3:"); 1101 1102 if (!xdr_u_int(xdrs, objp)) 1103 return FALSE; 1104 return TRUE; 1105 } 1106 1107 bool_t 1108 xdr_am_size3(XDR *xdrs, am_size3 *objp) 1109 { 1110 if (amuDebug(D_XDRTRACE)) 1111 plog(XLOG_DEBUG, "xdr_am_size3:"); 1112 1113 if (!xdr_uint64(xdrs, objp)) 1114 return FALSE; 1115 return TRUE; 1116 } 1117 1118 bool_t 1119 xdr_am_fileid3(XDR *xdrs, am_fileid3 *objp) 1120 { 1121 if (amuDebug(D_XDRTRACE)) 1122 plog(XLOG_DEBUG, "xdr_am_fileid3:"); 1123 1124 if (!xdr_uint64(xdrs, objp)) 1125 return FALSE; 1126 return TRUE; 1127 } 1128 1129 bool_t 1130 xdr_am_specdata3(XDR *xdrs, am_specdata3 *objp) 1131 { 1132 if (amuDebug(D_XDRTRACE)) 1133 plog(XLOG_DEBUG, "xdr_am_specdata3:"); 1134 1135 if (!xdr_u_int(xdrs, &objp->specdata1)) 1136 return FALSE; 1137 if (!xdr_u_int(xdrs, &objp->specdata2)) 1138 return FALSE; 1139 return TRUE; 1140 } 1141 1142 bool_t 1143 xdr_am_nfstime3(XDR *xdrs, am_nfstime3 *objp) 1144 { 1145 if (amuDebug(D_XDRTRACE)) 1146 plog(XLOG_DEBUG, "xdr_am_nfstime3:"); 1147 1148 if (!xdr_u_int(xdrs, &objp->seconds)) 1149 return FALSE; 1150 if (!xdr_u_int(xdrs, &objp->nseconds)) 1151 return FALSE; 1152 return TRUE; 1153 } 1154 1155 bool_t 1156 xdr_am_fattr3(XDR *xdrs, am_fattr3 *objp) 1157 { 1158 if (amuDebug(D_XDRTRACE)) 1159 plog(XLOG_DEBUG, "xdr_am_fattr3:"); 1160 1161 if (!xdr_am_ftype3(xdrs, &objp->type)) 1162 return FALSE; 1163 if (!xdr_am_mode3(xdrs, &objp->mode)) 1164 return FALSE; 1165 if (!xdr_u_int(xdrs, &objp->nlink)) 1166 return FALSE; 1167 if (!xdr_am_uid3(xdrs, &objp->uid)) 1168 return FALSE; 1169 if (!xdr_am_gid3(xdrs, &objp->gid)) 1170 return FALSE; 1171 if (!xdr_am_size3(xdrs, &objp->size)) 1172 return FALSE; 1173 if (!xdr_am_size3(xdrs, &objp->used)) 1174 return FALSE; 1175 if (!xdr_am_specdata3(xdrs, &objp->rdev)) 1176 return FALSE; 1177 if (!xdr_uint64(xdrs, &objp->fsid)) 1178 return FALSE; 1179 if (!xdr_am_fileid3(xdrs, &objp->fileid)) 1180 return FALSE; 1181 if (!xdr_am_nfstime3(xdrs, &objp->atime)) 1182 return FALSE; 1183 if (!xdr_am_nfstime3(xdrs, &objp->mtime)) 1184 return FALSE; 1185 if (!xdr_am_nfstime3(xdrs, &objp->ctime)) 1186 return FALSE; 1187 return TRUE; 1188 } 1189 1190 bool_t 1191 xdr_am_post_op_attr(XDR *xdrs, am_post_op_attr *objp) 1192 { 1193 if (amuDebug(D_XDRTRACE)) 1194 plog(XLOG_DEBUG, "xdr_am_post_op_attr:"); 1195 1196 if (!xdr_bool(xdrs, &objp->attributes_follow)) 1197 return FALSE; 1198 switch (objp->attributes_follow) { 1199 case TRUE: 1200 if (!xdr_am_fattr3(xdrs, &objp->am_post_op_attr_u.attributes)) 1201 return FALSE; 1202 break; 1203 case FALSE: 1204 break; 1205 default: 1206 return FALSE; 1207 } 1208 return TRUE; 1209 } 1210 1211 bool_t 1212 xdr_am_stable_how(XDR *xdrs, am_stable_how *objp) 1213 { 1214 if (amuDebug(D_XDRTRACE)) 1215 plog(XLOG_DEBUG, "xdr_am_stable_how:"); 1216 1217 if (!xdr_enum(xdrs, (enum_t *) objp)) 1218 return FALSE; 1219 return TRUE; 1220 } 1221 1222 bool_t 1223 xdr_am_offset3(XDR *xdrs, am_offset3 *objp) 1224 { 1225 if (amuDebug(D_XDRTRACE)) 1226 plog(XLOG_DEBUG, "xdr_am_offset3:"); 1227 1228 if (!xdr_uint64(xdrs, objp)) 1229 return FALSE; 1230 return TRUE; 1231 } 1232 1233 bool_t 1234 xdr_am_count3(XDR *xdrs, am_count3 *objp) 1235 { 1236 if (amuDebug(D_XDRTRACE)) 1237 plog(XLOG_DEBUG, "xdr_am_count3:"); 1238 1239 if (!xdr_u_int(xdrs, objp)) 1240 return FALSE; 1241 return TRUE; 1242 } 1243 1244 bool_t 1245 xdr_am_wcc_attr(XDR *xdrs, am_wcc_attr *objp) 1246 { 1247 if (amuDebug(D_XDRTRACE)) 1248 plog(XLOG_DEBUG, "xdr_am_wcc_attr:"); 1249 1250 if (!xdr_am_size3(xdrs, &objp->size)) 1251 return FALSE; 1252 if (!xdr_am_nfstime3(xdrs, &objp->mtime)) 1253 return FALSE; 1254 if (!xdr_am_nfstime3(xdrs, &objp->ctime)) 1255 return FALSE; 1256 return TRUE; 1257 } 1258 1259 bool_t 1260 xdr_am_pre_op_attr(XDR *xdrs, am_pre_op_attr *objp) 1261 { 1262 if (amuDebug(D_XDRTRACE)) 1263 plog(XLOG_DEBUG, ":xdr_am_pre_op_attr"); 1264 1265 if (!xdr_bool(xdrs, &objp->attributes_follow)) 1266 return FALSE; 1267 switch (objp->attributes_follow) { 1268 case TRUE: 1269 if (!xdr_am_wcc_attr(xdrs, &objp->am_pre_op_attr_u.attributes)) 1270 return FALSE; 1271 break; 1272 case FALSE: 1273 break; 1274 default: 1275 return FALSE; 1276 } 1277 return TRUE; 1278 } 1279 1280 bool_t 1281 xdr_am_wcc_data(XDR *xdrs, am_wcc_data *objp) 1282 { 1283 if (amuDebug(D_XDRTRACE)) 1284 plog(XLOG_DEBUG, "xdr_am_wcc_data:"); 1285 1286 if (!xdr_am_pre_op_attr(xdrs, &objp->before)) 1287 return FALSE; 1288 if (!xdr_am_post_op_attr(xdrs, &objp->after)) 1289 return FALSE; 1290 return TRUE; 1291 } 1292 1293 bool_t 1294 xdr_am_WRITE3args(XDR *xdrs, am_WRITE3args *objp) 1295 { 1296 if (amuDebug(D_XDRTRACE)) 1297 plog(XLOG_DEBUG, "xdr_am_WRITE3args:"); 1298 1299 if (!xdr_am_nfs_fh3(xdrs, &objp->file)) 1300 return FALSE; 1301 if (!xdr_am_offset3(xdrs, &objp->offset)) 1302 return FALSE; 1303 if (!xdr_am_count3(xdrs, &objp->count)) 1304 return FALSE; 1305 if (!xdr_am_stable_how(xdrs, &objp->stable)) 1306 return FALSE; 1307 if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, 1308 (u_int *) &objp->data.data_len, ~0)) 1309 return FALSE; 1310 return TRUE; 1311 } 1312 1313 bool_t 1314 xdr_am_writeverf3(XDR *xdrs, am_writeverf3 objp) 1315 { 1316 if (amuDebug(D_XDRTRACE)) 1317 plog(XLOG_DEBUG, "xdr_am_writeverf3:"); 1318 1319 if (!xdr_opaque(xdrs, objp, AM_NFS3_WRITEVERFSIZE)) 1320 return FALSE; 1321 return TRUE; 1322 } 1323 1324 bool_t 1325 xdr_am_WRITE3resok(XDR *xdrs, am_WRITE3resok *objp) 1326 { 1327 if (amuDebug(D_XDRTRACE)) 1328 plog(XLOG_DEBUG, "xdr_am_WRITE3resok:"); 1329 1330 if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) 1331 return FALSE; 1332 if (!xdr_am_count3(xdrs, &objp->count)) 1333 return FALSE; 1334 if (!xdr_am_stable_how(xdrs, &objp->committed)) 1335 return FALSE; 1336 if (!xdr_am_writeverf3(xdrs, objp->verf)) 1337 return FALSE; 1338 return TRUE; 1339 } 1340 1341 bool_t 1342 xdr_am_WRITE3resfail(XDR *xdrs, am_WRITE3resfail *objp) 1343 { 1344 if (amuDebug(D_XDRTRACE)) 1345 plog(XLOG_DEBUG, "xdr_am_WRITE3resfail:"); 1346 1347 if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) 1348 return FALSE; 1349 return TRUE; 1350 } 1351 1352 bool_t 1353 xdr_am_WRITE3res(XDR *xdrs, am_WRITE3res *objp) 1354 { 1355 if (amuDebug(D_XDRTRACE)) 1356 plog(XLOG_DEBUG, "xdr_am_WRITE3res:"); 1357 1358 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1359 return FALSE; 1360 switch (objp->status) { 1361 case AM_NFS3_OK: 1362 if (!xdr_am_WRITE3resok(xdrs, &objp->res_u.ok)) 1363 return FALSE; 1364 break; 1365 default: 1366 if (!xdr_am_WRITE3resfail(xdrs, &objp->res_u.fail)) 1367 return FALSE; 1368 break; 1369 } 1370 return TRUE; 1371 } 1372 1373 bool_t 1374 xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp) 1375 { 1376 if (amuDebug(D_XDRTRACE)) 1377 plog(XLOG_DEBUG, "xdr_am_LOOKUP3args:"); 1378 1379 if (!xdr_am_diropargs3(xdrs, &objp->what)) 1380 return (FALSE); 1381 return (TRUE); 1382 } 1383 1384 bool_t 1385 xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp) 1386 { 1387 if (amuDebug(D_XDRTRACE)) 1388 plog(XLOG_DEBUG, "xdr_am_LOOKUP3res:"); 1389 1390 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1391 return (FALSE); 1392 switch (objp->status) { 1393 case AM_NFS3_OK: 1394 if (!xdr_am_LOOKUP3resok(xdrs, &objp->res_u.ok)) 1395 return (FALSE); 1396 break; 1397 default: 1398 if (!xdr_am_LOOKUP3resfail(xdrs, &objp->res_u.fail)) 1399 return (FALSE); 1400 break; 1401 } 1402 return (TRUE); 1403 } 1404 1405 bool_t 1406 xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp) 1407 { 1408 if (amuDebug(D_XDRTRACE)) 1409 plog(XLOG_DEBUG, "xdr_am_LOOKUP3resfail:"); 1410 1411 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 1412 return (FALSE); 1413 return (TRUE); 1414 } 1415 1416 bool_t 1417 xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp) 1418 { 1419 if (amuDebug(D_XDRTRACE)) 1420 plog(XLOG_DEBUG, "xdr_am_LOOKUP3resok:"); 1421 1422 if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 1423 return (FALSE); 1424 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 1425 return (FALSE); 1426 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 1427 return (FALSE); 1428 return (TRUE); 1429 } 1430 1431 bool_t 1432 xdr_am_COMMIT3args(XDR *xdrs, am_COMMIT3args *objp) 1433 { 1434 if (amuDebug(D_XDRTRACE)) 1435 plog(XLOG_DEBUG, "xdr_am_COMMIT3args:"); 1436 1437 if (!xdr_am_nfs_fh3(xdrs, &objp->file)) 1438 return FALSE; 1439 if (!xdr_am_offset3(xdrs, &objp->offset)) 1440 return FALSE; 1441 if (!xdr_am_count3(xdrs, &objp->count)) 1442 return FALSE; 1443 return TRUE; 1444 } 1445 1446 bool_t 1447 xdr_am_COMMIT3resok(XDR *xdrs, am_COMMIT3resok *objp) 1448 { 1449 if (amuDebug(D_XDRTRACE)) 1450 plog(XLOG_DEBUG, "xdr_am_COMMIT3resok:"); 1451 1452 if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) 1453 return FALSE; 1454 if (!xdr_am_writeverf3(xdrs, objp->verf)) 1455 return FALSE; 1456 return TRUE; 1457 } 1458 1459 bool_t 1460 xdr_am_COMMIT3resfail(XDR *xdrs, am_COMMIT3resfail *objp) 1461 { 1462 if (amuDebug(D_XDRTRACE)) 1463 plog(XLOG_DEBUG, "xdr_am_COMMIT3resfail:"); 1464 1465 if (!xdr_am_wcc_data(xdrs, &objp->file_wcc)) 1466 return FALSE; 1467 return TRUE; 1468 } 1469 1470 bool_t 1471 xdr_am_COMMIT3res(XDR *xdrs, am_COMMIT3res *objp) 1472 { 1473 if (amuDebug(D_XDRTRACE)) 1474 plog(XLOG_DEBUG, "xdr_am_COMMIT3res:"); 1475 1476 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1477 return FALSE; 1478 switch (objp->status) { 1479 case AM_NFS3_OK: 1480 if (!xdr_am_COMMIT3resok(xdrs, &objp->res_u.ok)) 1481 return FALSE; 1482 break; 1483 default: 1484 if (!xdr_am_COMMIT3resfail(xdrs, &objp->res_u.fail)) 1485 return FALSE; 1486 break; 1487 } 1488 return TRUE; 1489 } 1490 1491 bool_t 1492 xdr_am_ACCESS3args(XDR *xdrs, am_ACCESS3args *objp) 1493 { 1494 if (amuDebug(D_XDRTRACE)) 1495 plog(XLOG_DEBUG, "xdr_am_ACCESS3args:"); 1496 1497 if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 1498 return FALSE; 1499 if (!xdr_u_int(xdrs, &objp->access)) 1500 return FALSE; 1501 return TRUE; 1502 } 1503 1504 bool_t 1505 xdr_am_ACCESS3resok(XDR *xdrs, am_ACCESS3resok *objp) 1506 { 1507 if (amuDebug(D_XDRTRACE)) 1508 plog(XLOG_DEBUG, "xdr_am_ACCESS3resok:"); 1509 1510 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 1511 return FALSE; 1512 if (!xdr_u_int(xdrs, &objp->access)) 1513 return FALSE; 1514 return TRUE; 1515 } 1516 1517 bool_t 1518 xdr_am_ACCESS3resfail(XDR *xdrs, am_ACCESS3resfail *objp) 1519 { 1520 if (amuDebug(D_XDRTRACE)) 1521 plog(XLOG_DEBUG, "xdr_am_ACCESS3resfail:"); 1522 1523 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 1524 return FALSE; 1525 return TRUE; 1526 } 1527 1528 bool_t 1529 xdr_am_ACCESS3res(XDR *xdrs, am_ACCESS3res *objp) 1530 { 1531 if (amuDebug(D_XDRTRACE)) 1532 plog(XLOG_DEBUG, "xdr_am_ACCESS3res:"); 1533 1534 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1535 return FALSE; 1536 switch (objp->status) { 1537 case AM_NFS3_OK: 1538 if (!xdr_am_ACCESS3resok(xdrs, &objp->res_u.ok)) 1539 return FALSE; 1540 break; 1541 default: 1542 if (!xdr_am_ACCESS3resfail(xdrs, &objp->res_u.fail)) 1543 return FALSE; 1544 break; 1545 } 1546 return TRUE; 1547 } 1548 1549 bool_t 1550 xdr_am_GETATTR3args(XDR *xdrs, am_GETATTR3args *objp) 1551 { 1552 if (amuDebug(D_XDRTRACE)) 1553 plog(XLOG_DEBUG, "xdr_am_GETATTR3args:"); 1554 1555 if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 1556 return FALSE; 1557 return TRUE; 1558 } 1559 1560 bool_t 1561 xdr_am_GETATTR3resok(XDR *xdrs, am_GETATTR3resok *objp) 1562 { 1563 if (amuDebug(D_XDRTRACE)) 1564 plog(XLOG_DEBUG, "xdr_am_GETATTR3resok:"); 1565 1566 if (!xdr_am_fattr3(xdrs, &objp->obj_attributes)) 1567 return FALSE; 1568 return TRUE; 1569 } 1570 1571 bool_t 1572 xdr_am_GETATTR3res(XDR *xdrs, am_GETATTR3res *objp) 1573 { 1574 if (amuDebug(D_XDRTRACE)) 1575 plog(XLOG_DEBUG, "xdr_am_GETATTR3res:"); 1576 1577 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1578 return FALSE; 1579 switch (objp->status) { 1580 case AM_NFS3_OK: 1581 if (!xdr_am_GETATTR3resok(xdrs, &objp->res_u.ok)) 1582 return FALSE; 1583 break; 1584 default: 1585 break; 1586 } 1587 return TRUE; 1588 } 1589 1590 bool_t 1591 xdr_am_time_how(XDR *xdrs, am_time_how *objp) 1592 { 1593 if (amuDebug(D_XDRTRACE)) 1594 plog(XLOG_DEBUG, "xdr_am_time_how:"); 1595 1596 if (!xdr_enum(xdrs, (enum_t *) objp)) 1597 return FALSE; 1598 return TRUE; 1599 } 1600 1601 bool_t 1602 xdr_am_set_mode3(XDR *xdrs, am_set_mode3 *objp) 1603 { 1604 if (amuDebug(D_XDRTRACE)) 1605 plog(XLOG_DEBUG, "xdr_am_set_mode3:"); 1606 1607 if (!xdr_bool(xdrs, &objp->set_it)) 1608 return FALSE; 1609 switch (objp->set_it) { 1610 case TRUE: 1611 if (!xdr_am_mode3(xdrs, &objp->am_set_mode3_u.mode)) 1612 return FALSE; 1613 break; 1614 default: 1615 break; 1616 } 1617 return TRUE; 1618 } 1619 1620 bool_t 1621 xdr_am_set_uid3(XDR *xdrs, am_set_uid3 *objp) 1622 { 1623 if (amuDebug(D_XDRTRACE)) 1624 plog(XLOG_DEBUG, "xdr_am_set_uid3:"); 1625 1626 if (!xdr_bool(xdrs, &objp->set_it)) 1627 return FALSE; 1628 switch (objp->set_it) { 1629 case TRUE: 1630 if (!xdr_am_uid3(xdrs, &objp->am_set_uid3_u.uid)) 1631 return FALSE; 1632 break; 1633 default: 1634 break; 1635 } 1636 return TRUE; 1637 } 1638 1639 bool_t 1640 xdr_am_set_gid3(XDR *xdrs, am_set_gid3 *objp) 1641 { 1642 if (amuDebug(D_XDRTRACE)) 1643 plog(XLOG_DEBUG, "xdr_am_set_gid3:"); 1644 1645 if (!xdr_bool(xdrs, &objp->set_it)) 1646 return FALSE; 1647 switch (objp->set_it) { 1648 case TRUE: 1649 if (!xdr_am_gid3(xdrs, &objp->am_set_gid3_u.gid)) 1650 return FALSE; 1651 break; 1652 default: 1653 break; 1654 } 1655 return TRUE; 1656 } 1657 1658 bool_t 1659 xdr_am_set_size3(XDR *xdrs, am_set_size3 *objp) 1660 { 1661 if (amuDebug(D_XDRTRACE)) 1662 plog(XLOG_DEBUG, "xdr_am_set_size3:"); 1663 1664 if (!xdr_bool(xdrs, &objp->set_it)) 1665 return FALSE; 1666 switch (objp->set_it) { 1667 case TRUE: 1668 if (!xdr_am_size3(xdrs, &objp->am_set_size3_u.size)) 1669 return FALSE; 1670 break; 1671 default: 1672 break; 1673 } 1674 return TRUE; 1675 } 1676 1677 bool_t 1678 xdr_am_set_atime(XDR *xdrs, am_set_atime *objp) 1679 { 1680 if (amuDebug(D_XDRTRACE)) 1681 plog(XLOG_DEBUG, "xdr_am_set_atime:"); 1682 1683 if (!xdr_am_time_how(xdrs, &objp->set_it)) 1684 return FALSE; 1685 switch (objp->set_it) { 1686 case AM_SET_TO_CLIENT_TIME: 1687 if (!xdr_am_nfstime3(xdrs, &objp->am_set_atime_u.atime)) 1688 return FALSE; 1689 break; 1690 default: 1691 break; 1692 } 1693 return TRUE; 1694 } 1695 1696 bool_t 1697 xdr_am_set_mtime(XDR *xdrs, am_set_mtime *objp) 1698 { 1699 if (amuDebug(D_XDRTRACE)) 1700 plog(XLOG_DEBUG, "xdr_am_set_mtime:"); 1701 1702 if (!xdr_am_time_how(xdrs, &objp->set_it)) 1703 return FALSE; 1704 switch (objp->set_it) { 1705 case AM_SET_TO_CLIENT_TIME: 1706 if (!xdr_am_nfstime3(xdrs, &objp->am_set_mtime_u.mtime)) 1707 return FALSE; 1708 break; 1709 default: 1710 break; 1711 } 1712 return TRUE; 1713 } 1714 1715 bool_t 1716 xdr_am_sattr3(XDR *xdrs, am_sattr3 *objp) 1717 { 1718 if (amuDebug(D_XDRTRACE)) 1719 plog(XLOG_DEBUG, "xdr_am_sattr3:"); 1720 1721 if (!xdr_am_set_mode3(xdrs, &objp->mode)) 1722 return FALSE; 1723 if (!xdr_am_set_uid3(xdrs, &objp->uid)) 1724 return FALSE; 1725 if (!xdr_am_set_gid3(xdrs, &objp->gid)) 1726 return FALSE; 1727 if (!xdr_am_set_size3(xdrs, &objp->size)) 1728 return FALSE; 1729 if (!xdr_am_set_atime(xdrs, &objp->atime)) 1730 return FALSE; 1731 if (!xdr_am_set_mtime(xdrs, &objp->mtime)) 1732 return FALSE; 1733 return TRUE; 1734 } 1735 1736 bool_t 1737 xdr_am_createmode3(XDR *xdrs, am_createmode3 *objp) 1738 { 1739 if (amuDebug(D_XDRTRACE)) 1740 plog(XLOG_DEBUG, "xdr_am_createmode3:"); 1741 1742 if (!xdr_enum(xdrs, (enum_t *) objp)) 1743 return FALSE; 1744 return TRUE; 1745 } 1746 1747 bool_t 1748 xdr_am_createverf3(XDR *xdrs, am_createverf3 objp) 1749 { 1750 if (amuDebug(D_XDRTRACE)) 1751 plog(XLOG_DEBUG, "xdr_am_createverf3:"); 1752 1753 if (!xdr_opaque(xdrs, objp, AM_NFS3_CREATEVERFSIZE)) 1754 return FALSE; 1755 return TRUE; 1756 } 1757 1758 bool_t 1759 xdr_am_createhow3(XDR *xdrs, am_createhow3 *objp) 1760 { 1761 if (amuDebug(D_XDRTRACE)) 1762 plog(XLOG_DEBUG, "xdr_am_createhow3:"); 1763 1764 if (!xdr_am_createmode3(xdrs, &objp->mode)) 1765 return FALSE; 1766 switch (objp->mode) { 1767 case AM_UNCHECKED: 1768 if (!xdr_am_sattr3(xdrs, &objp->am_createhow3_u.obj_attributes)) 1769 return FALSE; 1770 break; 1771 case AM_GUARDED: 1772 if (!xdr_am_sattr3(xdrs, &objp->am_createhow3_u.g_obj_attributes)) 1773 return FALSE; 1774 break; 1775 case AM_EXCLUSIVE: 1776 if (!xdr_am_createverf3(xdrs, objp->am_createhow3_u.verf)) 1777 return FALSE; 1778 break; 1779 default: 1780 return FALSE; 1781 } 1782 return TRUE; 1783 } 1784 1785 bool_t 1786 xdr_am_CREATE3args(XDR *xdrs, am_CREATE3args *objp) 1787 { 1788 if (amuDebug(D_XDRTRACE)) 1789 plog(XLOG_DEBUG, "xdr_am_CREATE3args:"); 1790 1791 if (!xdr_am_diropargs3(xdrs, &objp->where)) 1792 return FALSE; 1793 if (!xdr_am_createhow3(xdrs, &objp->how)) 1794 return FALSE; 1795 return TRUE; 1796 } 1797 1798 bool_t 1799 xdr_am_post_op_fh3(XDR *xdrs, am_post_op_fh3 *objp) 1800 { 1801 if (amuDebug(D_XDRTRACE)) 1802 plog(XLOG_DEBUG, "xdr_am_post_op_fh3:"); 1803 1804 if (!xdr_bool(xdrs, &objp->handle_follows)) 1805 return FALSE; 1806 switch (objp->handle_follows) { 1807 case TRUE: 1808 if (!xdr_am_nfs_fh3(xdrs, &objp->am_post_op_fh3_u.handle)) 1809 return FALSE; 1810 break; 1811 case FALSE: 1812 break; 1813 default: 1814 return FALSE; 1815 } 1816 return TRUE; 1817 } 1818 1819 bool_t 1820 xdr_am_CREATE3resok(XDR *xdrs, am_CREATE3resok *objp) 1821 { 1822 if (amuDebug(D_XDRTRACE)) 1823 plog(XLOG_DEBUG, "xdr_am_CREATE3resok:"); 1824 1825 if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) 1826 return FALSE; 1827 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 1828 return FALSE; 1829 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 1830 return FALSE; 1831 return TRUE; 1832 } 1833 1834 bool_t 1835 xdr_am_CREATE3resfail(XDR *xdrs, am_CREATE3resfail *objp) 1836 { 1837 if (amuDebug(D_XDRTRACE)) 1838 plog(XLOG_DEBUG, "xdr_am_CREATE3resfail:"); 1839 1840 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 1841 return FALSE; 1842 return TRUE; 1843 } 1844 1845 bool_t 1846 xdr_am_CREATE3res(XDR *xdrs, am_CREATE3res *objp) 1847 { 1848 if (amuDebug(D_XDRTRACE)) 1849 plog(XLOG_DEBUG, "xdr_am_CREATE3res:"); 1850 1851 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1852 return FALSE; 1853 switch (objp->status) { 1854 case AM_NFS3_OK: 1855 if (!xdr_am_CREATE3resok(xdrs, &objp->res_u.ok)) 1856 return FALSE; 1857 break; 1858 default: 1859 if (!xdr_am_CREATE3resfail(xdrs, &objp->res_u.fail)) 1860 return FALSE; 1861 break; 1862 } 1863 return TRUE; 1864 } 1865 1866 bool_t 1867 xdr_am_REMOVE3args(XDR *xdrs, am_REMOVE3args *objp) 1868 { 1869 if (amuDebug(D_XDRTRACE)) 1870 plog(XLOG_DEBUG, "xdr_am_REMOVE3args:"); 1871 1872 if (!xdr_am_diropargs3(xdrs, &objp->object)) 1873 return FALSE; 1874 return TRUE; 1875 } 1876 1877 bool_t 1878 xdr_am_REMOVE3resok(XDR *xdrs, am_REMOVE3resok *objp) 1879 { 1880 if (amuDebug(D_XDRTRACE)) 1881 plog(XLOG_DEBUG, "xdr_am_REMOVE3resok:"); 1882 1883 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 1884 return FALSE; 1885 return TRUE; 1886 } 1887 1888 bool_t 1889 xdr_am_REMOVE3resfail(XDR *xdrs, am_REMOVE3resfail *objp) 1890 { 1891 if (amuDebug(D_XDRTRACE)) 1892 plog(XLOG_DEBUG, "xdr_am_REMOVE3resfail:"); 1893 1894 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 1895 return FALSE; 1896 return TRUE; 1897 } 1898 1899 bool_t 1900 xdr_am_REMOVE3res(XDR *xdrs, am_REMOVE3res *objp) 1901 { 1902 if (amuDebug(D_XDRTRACE)) 1903 plog(XLOG_DEBUG, "xdr_am_REMOVE3res:"); 1904 1905 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1906 return FALSE; 1907 switch (objp->status) { 1908 case AM_NFS3_OK: 1909 if (!xdr_am_REMOVE3resok(xdrs, &objp->res_u.ok)) 1910 return FALSE; 1911 break; 1912 default: 1913 if (!xdr_am_REMOVE3resfail(xdrs, &objp->res_u.fail)) 1914 return FALSE; 1915 break; 1916 } 1917 return TRUE; 1918 } 1919 1920 bool_t 1921 xdr_am_READ3args(XDR *xdrs, am_READ3args *objp) 1922 { 1923 if (amuDebug(D_XDRTRACE)) 1924 plog(XLOG_DEBUG, "xdr_am_READ3args:"); 1925 1926 if (!xdr_am_nfs_fh3(xdrs, &objp->file)) 1927 return FALSE; 1928 if (!xdr_am_offset3(xdrs, &objp->offset)) 1929 return FALSE; 1930 if (!xdr_am_count3(xdrs, &objp->count)) 1931 return FALSE; 1932 return TRUE; 1933 } 1934 1935 bool_t 1936 xdr_am_READ3resok(XDR *xdrs, am_READ3resok *objp) 1937 { 1938 if (amuDebug(D_XDRTRACE)) 1939 plog(XLOG_DEBUG, "xdr_am_READ3resok:"); 1940 1941 if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) 1942 return FALSE; 1943 if (!xdr_am_count3(xdrs, &objp->count)) 1944 return FALSE; 1945 if (!xdr_bool(xdrs, &objp->eof)) 1946 return FALSE; 1947 if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0)) 1948 return FALSE; 1949 return TRUE; 1950 } 1951 1952 bool_t 1953 xdr_am_READ3resfail(XDR *xdrs, am_READ3resfail *objp) 1954 { 1955 if (amuDebug(D_XDRTRACE)) 1956 plog(XLOG_DEBUG, "xdr_am_READ3resfail:"); 1957 1958 if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) 1959 return FALSE; 1960 return TRUE; 1961 } 1962 1963 bool_t 1964 xdr_am_READ3res(XDR *xdrs, am_READ3res *objp) 1965 { 1966 if (amuDebug(D_XDRTRACE)) 1967 plog(XLOG_DEBUG, "xdr_am_READ3res:"); 1968 1969 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 1970 return FALSE; 1971 switch (objp->status) { 1972 case AM_NFS3_OK: 1973 if (!xdr_am_READ3resok(xdrs, &objp->res_u.ok)) 1974 return FALSE; 1975 break; 1976 default: 1977 if (!xdr_am_READ3resfail(xdrs, &objp->res_u.fail)) 1978 return FALSE; 1979 break; 1980 } 1981 return TRUE; 1982 } 1983 1984 bool_t 1985 xdr_am_FSINFO3args(XDR *xdrs, am_FSINFO3args *objp) 1986 { 1987 if (amuDebug(D_XDRTRACE)) 1988 plog(XLOG_DEBUG, "xdr_am_FSINFO3args:"); 1989 1990 if (!xdr_am_nfs_fh3(xdrs, &objp->fsroot)) 1991 return FALSE; 1992 return TRUE; 1993 } 1994 1995 bool_t 1996 xdr_am_FSINFO3resok(XDR *xdrs, am_FSINFO3resok *objp) 1997 { 1998 register int32_t *buf; 1999 2000 if (amuDebug(D_XDRTRACE)) 2001 plog(XLOG_DEBUG, "xdr_am_FSINFO3resok:"); 2002 2003 if (xdrs->x_op == XDR_ENCODE) { 2004 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2005 return FALSE; 2006 buf = XDR_INLINE(xdrs, 7 * BYTES_PER_XDR_UNIT); 2007 if (buf == NULL) { 2008 if (!xdr_u_int(xdrs, &objp->rtmax)) 2009 return FALSE; 2010 if (!xdr_u_int(xdrs, &objp->rtpref)) 2011 return FALSE; 2012 if (!xdr_u_int(xdrs, &objp->rtmult)) 2013 return FALSE; 2014 if (!xdr_u_int(xdrs, &objp->wtmax)) 2015 return FALSE; 2016 if (!xdr_u_int(xdrs, &objp->wtpref)) 2017 return FALSE; 2018 if (!xdr_u_int(xdrs, &objp->wtmult)) 2019 return FALSE; 2020 if (!xdr_u_int(xdrs, &objp->dtpref)) 2021 return FALSE; 2022 } else { 2023 IXDR_PUT_U_LONG(buf, objp->rtmax); 2024 IXDR_PUT_U_LONG(buf, objp->rtpref); 2025 IXDR_PUT_U_LONG(buf, objp->rtmult); 2026 IXDR_PUT_U_LONG(buf, objp->wtmax); 2027 IXDR_PUT_U_LONG(buf, objp->wtpref); 2028 IXDR_PUT_U_LONG(buf, objp->wtmult); 2029 IXDR_PUT_U_LONG(buf, objp->dtpref); 2030 } 2031 if (!xdr_am_size3(xdrs, &objp->maxfilesize)) 2032 return FALSE; 2033 if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) 2034 return FALSE; 2035 if (!xdr_u_int(xdrs, &objp->properties)) 2036 return FALSE; 2037 return TRUE; 2038 } else if (xdrs->x_op == XDR_DECODE) { 2039 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2040 return FALSE; 2041 buf = XDR_INLINE(xdrs, 7 * BYTES_PER_XDR_UNIT); 2042 if (buf == NULL) { 2043 if (!xdr_u_int (xdrs, &objp->rtmax)) 2044 return FALSE; 2045 if (!xdr_u_int (xdrs, &objp->rtpref)) 2046 return FALSE; 2047 if (!xdr_u_int (xdrs, &objp->rtmult)) 2048 return FALSE; 2049 if (!xdr_u_int (xdrs, &objp->wtmax)) 2050 return FALSE; 2051 if (!xdr_u_int(xdrs, &objp->wtpref)) 2052 return FALSE; 2053 if (!xdr_u_int(xdrs, &objp->wtmult)) 2054 return FALSE; 2055 if (!xdr_u_int(xdrs, &objp->dtpref)) 2056 return FALSE; 2057 } else { 2058 objp->rtmax = IXDR_GET_U_LONG(buf); 2059 objp->rtpref = IXDR_GET_U_LONG(buf); 2060 objp->rtmult = IXDR_GET_U_LONG(buf); 2061 objp->wtmax = IXDR_GET_U_LONG(buf); 2062 objp->wtpref = IXDR_GET_U_LONG(buf); 2063 objp->wtmult = IXDR_GET_U_LONG(buf); 2064 objp->dtpref = IXDR_GET_U_LONG(buf); 2065 } 2066 if (!xdr_am_size3(xdrs, &objp->maxfilesize)) 2067 return FALSE; 2068 if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) 2069 return FALSE; 2070 if (!xdr_u_int(xdrs, &objp->properties)) 2071 return FALSE; 2072 return TRUE; 2073 } 2074 2075 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2076 return FALSE; 2077 if (!xdr_u_int(xdrs, &objp->rtmax)) 2078 return FALSE; 2079 if (!xdr_u_int(xdrs, &objp->rtpref)) 2080 return FALSE; 2081 if (!xdr_u_int(xdrs, &objp->rtmult)) 2082 return FALSE; 2083 if (!xdr_u_int(xdrs, &objp->wtmax)) 2084 return FALSE; 2085 if (!xdr_u_int(xdrs, &objp->wtpref)) 2086 return FALSE; 2087 if (!xdr_u_int(xdrs, &objp->wtmult)) 2088 return FALSE; 2089 if (!xdr_u_int(xdrs, &objp->dtpref)) 2090 return FALSE; 2091 if (!xdr_am_size3(xdrs, &objp->maxfilesize)) 2092 return FALSE; 2093 if (!xdr_am_nfstime3(xdrs, &objp->time_delta)) 2094 return FALSE; 2095 if (!xdr_u_int(xdrs, &objp->properties)) 2096 return FALSE; 2097 return TRUE; 2098 } 2099 2100 bool_t 2101 xdr_am_FSINFO3resfail(XDR *xdrs, am_FSINFO3resfail *objp) 2102 { 2103 if (amuDebug(D_XDRTRACE)) 2104 plog(XLOG_DEBUG, "xdr_am_FSINFO3resfail:"); 2105 2106 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2107 return FALSE; 2108 return TRUE; 2109 } 2110 2111 bool_t 2112 xdr_am_FSINFO3res(XDR *xdrs, am_FSINFO3res *objp) 2113 { 2114 if (amuDebug(D_XDRTRACE)) 2115 plog(XLOG_DEBUG, "xdr_am_FSINFO3res:"); 2116 2117 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2118 return FALSE; 2119 switch (objp->status) { 2120 case AM_NFS3_OK: 2121 if (!xdr_am_FSINFO3resok(xdrs, &objp->res_u.ok)) 2122 return FALSE; 2123 break; 2124 default: 2125 if (!xdr_am_FSINFO3resfail(xdrs, &objp->res_u.fail)) 2126 return FALSE; 2127 break; 2128 } 2129 return TRUE; 2130 } 2131 2132 bool_t 2133 xdr_am_FSSTAT3args(XDR *xdrs, am_FSSTAT3args *objp) 2134 { 2135 if (amuDebug(D_XDRTRACE)) 2136 plog(XLOG_DEBUG, "xdr_am_FSSTAT3args:"); 2137 2138 if (!xdr_am_nfs_fh3(xdrs, &objp->fsroot)) 2139 return FALSE; 2140 return TRUE; 2141 } 2142 2143 bool_t 2144 xdr_am_FSSTAT3resok(XDR *xdrs, am_FSSTAT3resok *objp) 2145 { 2146 if (amuDebug(D_XDRTRACE)) 2147 plog(XLOG_DEBUG, "xdr_am_FSSTAT3resok:"); 2148 2149 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2150 return FALSE; 2151 if (!xdr_am_size3(xdrs, &objp->tbytes)) 2152 return FALSE; 2153 if (!xdr_am_size3(xdrs, &objp->fbytes)) 2154 return FALSE; 2155 if (!xdr_am_size3(xdrs, &objp->abytes)) 2156 return FALSE; 2157 if (!xdr_am_size3(xdrs, &objp->tfiles)) 2158 return FALSE; 2159 if (!xdr_am_size3(xdrs, &objp->ffiles)) 2160 return FALSE; 2161 if (!xdr_am_size3(xdrs, &objp->afiles)) 2162 return FALSE; 2163 if (!xdr_u_int(xdrs, &objp->invarsec)) 2164 return FALSE; 2165 return TRUE; 2166 } 2167 2168 bool_t 2169 xdr_am_FSSTAT3resfail(XDR *xdrs, am_FSSTAT3resfail *objp) 2170 { 2171 if (amuDebug(D_XDRTRACE)) 2172 plog(XLOG_DEBUG, "xdr_am_FSSTAT3resfail:"); 2173 2174 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2175 return FALSE; 2176 return TRUE; 2177 } 2178 2179 bool_t 2180 xdr_am_FSSTAT3res(XDR *xdrs, am_FSSTAT3res *objp) 2181 { 2182 if (amuDebug(D_XDRTRACE)) 2183 plog(XLOG_DEBUG, "xdr_am_FSSTAT3res:"); 2184 2185 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2186 return FALSE; 2187 switch (objp->status) { 2188 case AM_NFS3_OK: 2189 if (!xdr_am_FSSTAT3resok(xdrs, &objp->res_u.ok)) 2190 return FALSE; 2191 break; 2192 default: 2193 if (!xdr_am_FSSTAT3resfail(xdrs, &objp->res_u.fail)) 2194 return FALSE; 2195 break; 2196 } 2197 return TRUE; 2198 } 2199 2200 bool_t 2201 xdr_am_PATHCONF3args(XDR *xdrs, am_PATHCONF3args *objp) 2202 { 2203 if (amuDebug(D_XDRTRACE)) 2204 plog(XLOG_DEBUG, "xdr_am_PATHCONF3args:"); 2205 2206 if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 2207 return FALSE; 2208 return TRUE; 2209 } 2210 2211 bool_t 2212 xdr_am_PATHCONF3resok(XDR *xdrs, am_PATHCONF3resok *objp) 2213 { 2214 register int32_t *buf; 2215 2216 if (amuDebug(D_XDRTRACE)) 2217 plog(XLOG_DEBUG, "xdr_am_PATHCONF3resok:"); 2218 2219 if (xdrs->x_op == XDR_ENCODE) { 2220 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2221 return FALSE; 2222 buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 2223 if (buf == NULL) { 2224 if (!xdr_u_int(xdrs, &objp->linkmax)) 2225 return FALSE; 2226 if (!xdr_u_int(xdrs, &objp->name_max)) 2227 return FALSE; 2228 if (!xdr_bool(xdrs, &objp->no_trunc)) 2229 return FALSE; 2230 if (!xdr_bool(xdrs, &objp->chown_restricted)) 2231 return FALSE; 2232 if (!xdr_bool(xdrs, &objp->case_insensitive)) 2233 return FALSE; 2234 if (!xdr_bool(xdrs, &objp->case_preserving)) 2235 return FALSE; 2236 } else { 2237 IXDR_PUT_U_LONG(buf, objp->linkmax); 2238 IXDR_PUT_U_LONG(buf, objp->name_max); 2239 IXDR_PUT_BOOL(buf, objp->no_trunc); 2240 IXDR_PUT_BOOL(buf, objp->chown_restricted); 2241 IXDR_PUT_BOOL(buf, objp->case_insensitive); 2242 IXDR_PUT_BOOL(buf, objp->case_preserving); 2243 } 2244 return TRUE; 2245 } else if (xdrs->x_op == XDR_DECODE) { 2246 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2247 return FALSE; 2248 buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 2249 if (buf == NULL) { 2250 if (!xdr_u_int(xdrs, &objp->linkmax)) 2251 return FALSE; 2252 if (!xdr_u_int(xdrs, &objp->name_max)) 2253 return FALSE; 2254 if (!xdr_bool(xdrs, &objp->no_trunc)) 2255 return FALSE; 2256 if (!xdr_bool(xdrs, &objp->chown_restricted)) 2257 return FALSE; 2258 if (!xdr_bool(xdrs, &objp->case_insensitive)) 2259 return FALSE; 2260 if (!xdr_bool(xdrs, &objp->case_preserving)) 2261 return FALSE; 2262 } else { 2263 objp->linkmax = IXDR_GET_U_LONG(buf); 2264 objp->name_max = IXDR_GET_U_LONG(buf); 2265 objp->no_trunc = IXDR_GET_BOOL(buf); 2266 objp->chown_restricted = IXDR_GET_BOOL(buf); 2267 objp->case_insensitive = IXDR_GET_BOOL(buf); 2268 objp->case_preserving = IXDR_GET_BOOL(buf); 2269 } 2270 return TRUE; 2271 } 2272 2273 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2274 return FALSE; 2275 if (!xdr_u_int(xdrs, &objp->linkmax)) 2276 return FALSE; 2277 if (!xdr_u_int(xdrs, &objp->name_max)) 2278 return FALSE; 2279 if (!xdr_bool(xdrs, &objp->no_trunc)) 2280 return FALSE; 2281 if (!xdr_bool(xdrs, &objp->chown_restricted)) 2282 return FALSE; 2283 if (!xdr_bool(xdrs, &objp->case_insensitive)) 2284 return FALSE; 2285 if (!xdr_bool(xdrs, &objp->case_preserving)) 2286 return FALSE; 2287 return TRUE; 2288 } 2289 2290 bool_t 2291 xdr_am_PATHCONF3resfail(XDR *xdrs, am_PATHCONF3resfail *objp) 2292 { 2293 if (amuDebug(D_XDRTRACE)) 2294 plog(XLOG_DEBUG, "xdr_am_PATHCONF3resfail:"); 2295 2296 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2297 return FALSE; 2298 return TRUE; 2299 } 2300 2301 bool_t 2302 xdr_am_PATHCONF3res(XDR *xdrs, am_PATHCONF3res *objp) 2303 { 2304 if (amuDebug(D_XDRTRACE)) 2305 plog(XLOG_DEBUG, "xdr_am_PATHCONF3res:"); 2306 2307 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2308 return FALSE; 2309 switch (objp->status) { 2310 case AM_NFS3_OK: 2311 if (!xdr_am_PATHCONF3resok(xdrs, &objp->res_u.ok)) 2312 return FALSE; 2313 break; 2314 default: 2315 if (!xdr_am_PATHCONF3resfail(xdrs, &objp->res_u.fail)) 2316 return FALSE; 2317 break; 2318 } 2319 return TRUE; 2320 } 2321 2322 bool_t 2323 xdr_am_nfspath3(XDR *xdrs, am_nfspath3 *objp) 2324 { 2325 if (amuDebug(D_XDRTRACE)) 2326 plog(XLOG_DEBUG, "xdr_am_nfspath3:"); 2327 2328 if (!xdr_string(xdrs, objp, ~0)) 2329 return FALSE; 2330 return TRUE; 2331 } 2332 2333 bool_t 2334 xdr_am_symlinkdata3(XDR *xdrs, am_symlinkdata3 *objp) 2335 { 2336 if (amuDebug(D_XDRTRACE)) 2337 plog(XLOG_DEBUG, "xdr_am_symlinkdata3:"); 2338 2339 if (!xdr_am_sattr3(xdrs, &objp->symlink_attributes)) 2340 return FALSE; 2341 if (!xdr_am_nfspath3(xdrs, &objp->symlink_data)) 2342 return FALSE; 2343 return TRUE; 2344 } 2345 2346 bool_t 2347 xdr_am_SYMLINK3args(XDR *xdrs, am_SYMLINK3args *objp) 2348 { 2349 if (amuDebug(D_XDRTRACE)) 2350 plog(XLOG_DEBUG, "xdr_am_SYMLINK3args:"); 2351 2352 if (!xdr_am_diropargs3(xdrs, &objp->where)) 2353 return FALSE; 2354 if (!xdr_am_symlinkdata3(xdrs, &objp->symlink)) 2355 return FALSE; 2356 return TRUE; 2357 } 2358 2359 bool_t 2360 xdr_am_SYMLINK3resok(XDR *xdrs, am_SYMLINK3resok *objp) 2361 { 2362 if (amuDebug(D_XDRTRACE)) 2363 plog(XLOG_DEBUG, "xdr_am_SYMLINK3resok:"); 2364 2365 if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) 2366 return FALSE; 2367 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2368 return FALSE; 2369 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2370 return FALSE; 2371 return TRUE; 2372 } 2373 2374 bool_t 2375 xdr_am_SYMLINK3resfail(XDR *xdrs, am_SYMLINK3resfail *objp) 2376 { 2377 if (amuDebug(D_XDRTRACE)) 2378 plog(XLOG_DEBUG, "xdr_am_SYMLINK3resfail:"); 2379 2380 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2381 return FALSE; 2382 return TRUE; 2383 } 2384 2385 bool_t 2386 xdr_am_SYMLINK3res(XDR *xdrs, am_SYMLINK3res *objp) 2387 { 2388 if (amuDebug(D_XDRTRACE)) 2389 plog(XLOG_DEBUG, "xdr_am_SYMLINK3res:"); 2390 2391 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2392 return FALSE; 2393 switch (objp->status) { 2394 case AM_NFS3_OK: 2395 if (!xdr_am_SYMLINK3resok(xdrs, &objp->res_u.ok)) 2396 return FALSE; 2397 break; 2398 default: 2399 if (!xdr_am_SYMLINK3resfail(xdrs, &objp->res_u.fail)) 2400 return FALSE; 2401 break; 2402 } 2403 return TRUE; 2404 } 2405 2406 bool_t 2407 xdr_am_READLINK3args(XDR *xdrs, am_READLINK3args *objp) 2408 { 2409 if (amuDebug(D_XDRTRACE)) 2410 plog(XLOG_DEBUG, "xdr_am_READLINK3args:"); 2411 2412 if (!xdr_am_nfs_fh3(xdrs, &objp->symlink)) 2413 return FALSE; 2414 return TRUE; 2415 } 2416 2417 bool_t 2418 xdr_am_READLINK3resok(XDR *xdrs, am_READLINK3resok *objp) 2419 { 2420 if (amuDebug(D_XDRTRACE)) 2421 plog(XLOG_DEBUG, "xdr_am_READLINK3resok:"); 2422 2423 if (!xdr_am_post_op_attr(xdrs, &objp->symlink_attributes)) 2424 return FALSE; 2425 if (!xdr_am_nfspath3(xdrs, &objp->data)) 2426 return FALSE; 2427 return TRUE; 2428 } 2429 2430 bool_t 2431 xdr_am_READLINK3resfail(XDR *xdrs, am_READLINK3resfail *objp) 2432 { 2433 if (amuDebug(D_XDRTRACE)) 2434 plog(XLOG_DEBUG, "xdr_am_READLINK3resfail:"); 2435 2436 if (!xdr_am_post_op_attr(xdrs, &objp->symlink_attributes)) 2437 return FALSE; 2438 return TRUE; 2439 } 2440 2441 bool_t 2442 xdr_am_READLINK3res(XDR *xdrs, am_READLINK3res *objp) 2443 { 2444 if (amuDebug(D_XDRTRACE)) 2445 plog(XLOG_DEBUG, "xdr_am_READLINK3res:"); 2446 2447 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2448 return FALSE; 2449 switch (objp->status) { 2450 case AM_NFS3_OK: 2451 if (!xdr_am_READLINK3resok(xdrs, &objp->res_u.ok)) 2452 return FALSE; 2453 break; 2454 default: 2455 if (!xdr_am_READLINK3resfail(xdrs, &objp->res_u.fail)) 2456 return FALSE; 2457 break; 2458 } 2459 return TRUE; 2460 } 2461 2462 bool_t 2463 xdr_am_devicedata3(XDR *xdrs, am_devicedata3 *objp) 2464 { 2465 if (amuDebug(D_XDRTRACE)) 2466 plog(XLOG_DEBUG, "xdr_am_devicedata3:"); 2467 2468 if (!xdr_am_sattr3(xdrs, &objp->dev_attributes)) 2469 return FALSE; 2470 if (!xdr_am_specdata3(xdrs, &objp->spec)) 2471 return FALSE; 2472 return TRUE; 2473 } 2474 2475 bool_t 2476 xdr_am_mknoddata3(XDR *xdrs, am_mknoddata3 *objp) 2477 { 2478 if (amuDebug(D_XDRTRACE)) 2479 plog(XLOG_DEBUG, "xdr_am_mknoddata3:"); 2480 2481 if (!xdr_am_ftype3(xdrs, &objp->type)) 2482 return FALSE; 2483 switch (objp->type) { 2484 case AM_NF3CHR: 2485 if (!xdr_am_devicedata3(xdrs, &objp->am_mknoddata3_u.chr_device)) 2486 return FALSE; 2487 break; 2488 case AM_NF3BLK: 2489 if (!xdr_am_devicedata3(xdrs, &objp->am_mknoddata3_u.blk_device)) 2490 return FALSE; 2491 break; 2492 case AM_NF3SOCK: 2493 if (!xdr_am_sattr3(xdrs, &objp->am_mknoddata3_u.sock_attributes)) 2494 return FALSE; 2495 break; 2496 case AM_NF3FIFO: 2497 if (!xdr_am_sattr3(xdrs, &objp->am_mknoddata3_u.pipe_attributes)) 2498 return FALSE; 2499 break; 2500 default: 2501 break; 2502 } 2503 return TRUE; 2504 } 2505 2506 bool_t 2507 xdr_am_MKNOD3args(XDR *xdrs, am_MKNOD3args *objp) 2508 { 2509 if (amuDebug(D_XDRTRACE)) 2510 plog(XLOG_DEBUG, "xdr_am_MKNOD3args:"); 2511 2512 if (!xdr_am_diropargs3(xdrs, &objp->where)) 2513 return FALSE; 2514 if (!xdr_am_mknoddata3(xdrs, &objp->what)) 2515 return FALSE; 2516 return TRUE; 2517 } 2518 2519 bool_t 2520 xdr_am_MKNOD3resok(XDR *xdrs, am_MKNOD3resok *objp) 2521 { 2522 if (amuDebug(D_XDRTRACE)) 2523 plog(XLOG_DEBUG, "xdr_am_MKNOD3resok:"); 2524 2525 if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) 2526 return FALSE; 2527 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2528 return FALSE; 2529 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2530 return FALSE; 2531 return TRUE; 2532 } 2533 2534 bool_t 2535 xdr_am_MKNOD3resfail(XDR *xdrs, am_MKNOD3resfail *objp) 2536 { 2537 if (amuDebug(D_XDRTRACE)) 2538 plog(XLOG_DEBUG, "xdr_am_MKNOD3resfail:"); 2539 2540 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2541 return FALSE; 2542 return TRUE; 2543 } 2544 2545 bool_t 2546 xdr_am_MKNOD3res(XDR *xdrs, am_MKNOD3res *objp) 2547 { 2548 if (amuDebug(D_XDRTRACE)) 2549 plog(XLOG_DEBUG, ":"); 2550 2551 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2552 return FALSE; 2553 switch (objp->status) { 2554 case AM_NFS3_OK: 2555 if (!xdr_am_MKNOD3resok(xdrs, &objp->res_u.ok)) 2556 return FALSE; 2557 break; 2558 default: 2559 if (!xdr_am_MKNOD3resfail(xdrs, &objp->res_u.fail)) 2560 return FALSE; 2561 break; 2562 } 2563 return TRUE; 2564 } 2565 2566 bool_t 2567 xdr_am_MKDIR3args(XDR *xdrs, am_MKDIR3args *objp) 2568 { 2569 if (amuDebug(D_XDRTRACE)) 2570 plog(XLOG_DEBUG, ":"); 2571 2572 if (!xdr_am_diropargs3(xdrs, &objp->where)) 2573 return FALSE; 2574 if (!xdr_am_sattr3(xdrs, &objp->attributes)) 2575 return FALSE; 2576 return TRUE; 2577 } 2578 2579 bool_t 2580 xdr_am_MKDIR3resok(XDR *xdrs, am_MKDIR3resok *objp) 2581 { 2582 if (amuDebug(D_XDRTRACE)) 2583 plog(XLOG_DEBUG, "xdr_am_MKDIR3resok:"); 2584 2585 if (!xdr_am_post_op_fh3(xdrs, &objp->obj)) 2586 return FALSE; 2587 if (!xdr_am_post_op_attr(xdrs, &objp->obj_attributes)) 2588 return FALSE; 2589 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2590 return FALSE; 2591 return TRUE; 2592 } 2593 2594 bool_t 2595 xdr_am_MKDIR3resfail(XDR *xdrs, am_MKDIR3resfail *objp) 2596 { 2597 if (amuDebug(D_XDRTRACE)) 2598 plog(XLOG_DEBUG, "xdr_am_MKDIR3resfail:"); 2599 2600 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2601 return FALSE; 2602 return TRUE; 2603 } 2604 2605 bool_t 2606 xdr_am_MKDIR3res(XDR *xdrs, am_MKDIR3res *objp) 2607 { 2608 if (amuDebug(D_XDRTRACE)) 2609 plog(XLOG_DEBUG, "xdr_am_MKDIR3res:"); 2610 2611 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2612 return FALSE; 2613 switch (objp->status) { 2614 case AM_NFS3_OK: 2615 if (!xdr_am_MKDIR3resok(xdrs, &objp->res_u.ok)) 2616 return FALSE; 2617 break; 2618 default: 2619 if (!xdr_am_MKDIR3resfail(xdrs, &objp->res_u.fail)) 2620 return FALSE; 2621 break; 2622 } 2623 return TRUE; 2624 } 2625 2626 bool_t 2627 xdr_am_RMDIR3args(XDR *xdrs, am_RMDIR3args *objp) 2628 { 2629 if (amuDebug(D_XDRTRACE)) 2630 plog(XLOG_DEBUG, "xdr_am_RMDIR3args:"); 2631 2632 if (!xdr_am_diropargs3(xdrs, &objp->object)) 2633 return FALSE; 2634 return TRUE; 2635 } 2636 2637 bool_t 2638 xdr_am_RMDIR3resok(XDR *xdrs, am_RMDIR3resok *objp) 2639 { 2640 if (amuDebug(D_XDRTRACE)) 2641 plog(XLOG_DEBUG, "xdr_am_RMDIR3resok:"); 2642 2643 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2644 return FALSE; 2645 return TRUE; 2646 } 2647 2648 bool_t 2649 xdr_am_RMDIR3resfail(XDR *xdrs, am_RMDIR3resfail *objp) 2650 { 2651 if (amuDebug(D_XDRTRACE)) 2652 plog(XLOG_DEBUG, "xdr_am_RMDIR3resfail:"); 2653 2654 if (!xdr_am_wcc_data(xdrs, &objp->dir_wcc)) 2655 return FALSE; 2656 return TRUE; 2657 } 2658 2659 bool_t 2660 xdr_am_RMDIR3res(XDR *xdrs, am_RMDIR3res *objp) 2661 { 2662 if (amuDebug(D_XDRTRACE)) 2663 plog(XLOG_DEBUG, "xdr_am_RMDIR3res:"); 2664 2665 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2666 return FALSE; 2667 switch (objp->status) { 2668 case AM_NFS3_OK: 2669 if (!xdr_am_RMDIR3resok(xdrs, &objp->res_u.ok)) 2670 return FALSE; 2671 break; 2672 default: 2673 if (!xdr_am_RMDIR3resfail(xdrs, &objp->res_u.fail)) 2674 return FALSE; 2675 break; 2676 } 2677 return TRUE; 2678 } 2679 2680 bool_t 2681 xdr_am_RENAME3args(XDR *xdrs, am_RENAME3args *objp) 2682 { 2683 if (amuDebug(D_XDRTRACE)) 2684 plog(XLOG_DEBUG, "xdr_am_RENAME3args:"); 2685 2686 if (!xdr_am_diropargs3(xdrs, &objp->from)) 2687 return FALSE; 2688 if (!xdr_am_diropargs3(xdrs, &objp->to)) 2689 return FALSE; 2690 return TRUE; 2691 } 2692 2693 bool_t 2694 xdr_am_RENAME3resok(XDR *xdrs, am_RENAME3resok *objp) 2695 { 2696 if (amuDebug(D_XDRTRACE)) 2697 plog(XLOG_DEBUG, "xdr_am_RENAME3resok:"); 2698 2699 if (!xdr_am_wcc_data(xdrs, &objp->fromdir_wcc)) 2700 return FALSE; 2701 if (!xdr_am_wcc_data(xdrs, &objp->todir_wcc)) 2702 return FALSE; 2703 return TRUE; 2704 } 2705 2706 bool_t 2707 xdr_am_RENAME3resfail(XDR *xdrs, am_RENAME3resfail *objp) 2708 { 2709 if (amuDebug(D_XDRTRACE)) 2710 plog(XLOG_DEBUG, "xdr_am_RENAME3resfail:"); 2711 2712 if (!xdr_am_wcc_data(xdrs, &objp->fromdir_wcc)) 2713 return FALSE; 2714 if (!xdr_am_wcc_data(xdrs, &objp->todir_wcc)) 2715 return FALSE; 2716 return TRUE; 2717 } 2718 2719 bool_t 2720 xdr_am_RENAME3res(XDR *xdrs, am_RENAME3res *objp) 2721 { 2722 if (amuDebug(D_XDRTRACE)) 2723 plog(XLOG_DEBUG, "xdr_am_RENAME3res:"); 2724 2725 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2726 return FALSE; 2727 switch (objp->status) { 2728 case AM_NFS3_OK: 2729 if (!xdr_am_RENAME3resok(xdrs, &objp->res_u.ok)) 2730 return FALSE; 2731 break; 2732 default: 2733 if (!xdr_am_RENAME3resfail(xdrs, &objp->res_u.fail)) 2734 return FALSE; 2735 break; 2736 } 2737 return TRUE; 2738 } 2739 2740 bool_t 2741 xdr_am_READDIRPLUS3args(XDR *xdrs, am_READDIRPLUS3args *objp) 2742 { 2743 if (amuDebug(D_XDRTRACE)) 2744 plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3args:"); 2745 2746 if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) 2747 return FALSE; 2748 if (!xdr_am_cookie3(xdrs, &objp->cookie)) 2749 return FALSE; 2750 if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) 2751 return FALSE; 2752 if (!xdr_am_count3(xdrs, &objp->dircount)) 2753 return FALSE; 2754 if (!xdr_am_count3(xdrs, &objp->maxcount)) 2755 return FALSE; 2756 return TRUE; 2757 } 2758 2759 bool_t 2760 xdr_am_entryplus3(XDR *xdrs, am_entryplus3 *objp) 2761 { 2762 if (amuDebug(D_XDRTRACE)) 2763 plog(XLOG_DEBUG, "xdr_am_entryplus3:"); 2764 2765 if (!xdr_am_fileid3(xdrs, &objp->fileid)) 2766 return FALSE; 2767 if (!xdr_am_filename3(xdrs, &objp->name)) 2768 return FALSE; 2769 if (!xdr_am_cookie3(xdrs, &objp->cookie)) 2770 return FALSE; 2771 if (!xdr_am_post_op_attr(xdrs, &objp->name_attributes)) 2772 return FALSE; 2773 if (!xdr_am_post_op_fh3(xdrs, &objp->name_handle)) 2774 return FALSE; 2775 if (!xdr_pointer(xdrs, (char **)&objp->nextentry, 2776 sizeof(am_entryplus3), (xdrproc_t) xdr_am_entryplus3)) 2777 return FALSE; 2778 return TRUE; 2779 } 2780 2781 bool_t 2782 xdr_am_dirlistplus3(XDR *xdrs, am_dirlistplus3 *objp) 2783 { 2784 if (amuDebug(D_XDRTRACE)) 2785 plog(XLOG_DEBUG, "xdr_am_dirlistplus3:"); 2786 2787 if (!xdr_pointer(xdrs, (char **)&objp->entries, 2788 sizeof(am_entryplus3), (xdrproc_t) xdr_am_entryplus3)) 2789 return FALSE; 2790 if (!xdr_bool(xdrs, &objp->eof)) 2791 return FALSE; 2792 return TRUE; 2793 } 2794 2795 bool_t 2796 xdr_am_READDIRPLUS3resok(XDR *xdrs, am_READDIRPLUS3resok *objp) 2797 { 2798 if (amuDebug(D_XDRTRACE)) 2799 plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3resok:"); 2800 2801 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 2802 return FALSE; 2803 if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) 2804 return FALSE; 2805 if (!xdr_am_dirlistplus3(xdrs, &objp->reply)) 2806 return FALSE; 2807 return TRUE; 2808 } 2809 2810 bool_t 2811 xdr_am_READDIRPLUS3resfail(XDR *xdrs, am_READDIRPLUS3resfail *objp) 2812 { 2813 if (amuDebug(D_XDRTRACE)) 2814 plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3resfail:"); 2815 2816 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 2817 return FALSE; 2818 return TRUE; 2819 } 2820 2821 bool_t 2822 xdr_am_READDIRPLUS3res(XDR *xdrs, am_READDIRPLUS3res *objp) 2823 { 2824 if (amuDebug(D_XDRTRACE)) 2825 plog(XLOG_DEBUG, "xdr_am_READDIRPLUS3res:"); 2826 2827 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2828 return FALSE; 2829 switch (objp->status) { 2830 case AM_NFS3_OK: 2831 if (!xdr_am_READDIRPLUS3resok(xdrs, &objp->res_u.ok)) 2832 return FALSE; 2833 break; 2834 default: 2835 if (!xdr_am_READDIRPLUS3resfail(xdrs, &objp->res_u.fail)) 2836 return FALSE; 2837 break; 2838 } 2839 return TRUE; 2840 } 2841 2842 bool_t 2843 xdr_am_READDIR3args(XDR *xdrs, am_READDIR3args *objp) 2844 { 2845 if (amuDebug(D_XDRTRACE)) 2846 plog(XLOG_DEBUG, "xdr_am_READDIR3args:"); 2847 2848 if (!xdr_am_nfs_fh3(xdrs, &objp->dir)) 2849 return FALSE; 2850 if (!xdr_am_cookie3(xdrs, &objp->cookie)) 2851 return FALSE; 2852 if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) 2853 return FALSE; 2854 if (!xdr_am_count3(xdrs, &objp->count)) 2855 return FALSE; 2856 return TRUE; 2857 } 2858 2859 bool_t 2860 xdr_am_entry3(XDR *xdrs, am_entry3 *objp) 2861 { 2862 if (amuDebug(D_XDRTRACE)) 2863 plog(XLOG_DEBUG, "xdr_am_entry3:"); 2864 2865 if (!xdr_am_fileid3(xdrs, &objp->fileid)) 2866 return FALSE; 2867 if (!xdr_am_filename3(xdrs, &objp->name)) 2868 return FALSE; 2869 if (!xdr_am_cookie3(xdrs, &objp->cookie)) 2870 return FALSE; 2871 if (!xdr_pointer(xdrs, (char **)&objp->nextentry, 2872 sizeof(am_entry3), (xdrproc_t) xdr_am_entry3)) 2873 return FALSE; 2874 return TRUE; 2875 } 2876 2877 bool_t 2878 xdr_am_dirlist3(XDR *xdrs, am_dirlist3 *objp) 2879 { 2880 if (amuDebug(D_XDRTRACE)) 2881 plog(XLOG_DEBUG, "xdr_am_dirlist3:"); 2882 2883 if (!xdr_pointer(xdrs, (char **)&objp->entries, 2884 sizeof(am_entry3), (xdrproc_t) xdr_am_entry3)) 2885 return FALSE; 2886 if (!xdr_bool (xdrs, &objp->eof)) 2887 return FALSE; 2888 return TRUE; 2889 } 2890 2891 bool_t 2892 xdr_am_READDIR3resok(XDR *xdrs, am_READDIR3resok *objp) 2893 { 2894 if (amuDebug(D_XDRTRACE)) 2895 plog(XLOG_DEBUG, "xdr_am_READDIR3resok:"); 2896 2897 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 2898 return FALSE; 2899 if (!xdr_am_cookieverf3(xdrs, objp->cookieverf)) 2900 return FALSE; 2901 if (!xdr_am_dirlist3(xdrs, &objp->reply)) 2902 return FALSE; 2903 return TRUE; 2904 } 2905 2906 bool_t 2907 xdr_am_READDIR3resfail(XDR *xdrs, am_READDIR3resfail *objp) 2908 { 2909 if (amuDebug(D_XDRTRACE)) 2910 plog(XLOG_DEBUG, "xdr_am_READDIR3resfail:"); 2911 2912 if (!xdr_am_post_op_attr(xdrs, &objp->dir_attributes)) 2913 return FALSE; 2914 return TRUE; 2915 } 2916 2917 bool_t 2918 xdr_am_READDIR3res(XDR *xdrs, am_READDIR3res *objp) 2919 { 2920 if (amuDebug(D_XDRTRACE)) 2921 plog(XLOG_DEBUG, "xdr_am_READDIR3res:"); 2922 2923 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2924 return FALSE; 2925 switch (objp->status) { 2926 case AM_NFS3_OK: 2927 if (!xdr_am_READDIR3resok(xdrs, &objp->res_u.ok)) 2928 return FALSE; 2929 break; 2930 default: 2931 if (!xdr_am_READDIR3resfail(xdrs, &objp->res_u.fail)) 2932 return FALSE; 2933 break; 2934 } 2935 return TRUE; 2936 } 2937 2938 bool_t 2939 xdr_am_LINK3args(XDR *xdrs, am_LINK3args *objp) 2940 { 2941 if (amuDebug(D_XDRTRACE)) 2942 plog(XLOG_DEBUG, "xdr_am_LINK3args:"); 2943 2944 if (!xdr_am_nfs_fh3(xdrs, &objp->file)) 2945 return FALSE; 2946 if (!xdr_am_diropargs3(xdrs, &objp->link)) 2947 return FALSE; 2948 return TRUE; 2949 } 2950 2951 bool_t 2952 xdr_am_LINK3resok(XDR *xdrs, am_LINK3resok *objp) 2953 { 2954 if (amuDebug(D_XDRTRACE)) 2955 plog(XLOG_DEBUG, "xdr_am_LINK3resok:"); 2956 2957 if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) 2958 return FALSE; 2959 if (!xdr_am_wcc_data(xdrs, &objp->linkdir_wcc)) 2960 return FALSE; 2961 return TRUE; 2962 } 2963 2964 bool_t 2965 xdr_am_LINK3resfail(XDR *xdrs, am_LINK3resfail *objp) 2966 { 2967 if (amuDebug(D_XDRTRACE)) 2968 plog(XLOG_DEBUG, "xdr_am_LINK3resfail:"); 2969 2970 if (!xdr_am_post_op_attr(xdrs, &objp->file_attributes)) 2971 return FALSE; 2972 if (!xdr_am_wcc_data(xdrs, &objp->linkdir_wcc)) 2973 return FALSE; 2974 return TRUE; 2975 } 2976 2977 bool_t 2978 xdr_am_LINK3res(XDR *xdrs, am_LINK3res *objp) 2979 { 2980 if (amuDebug(D_XDRTRACE)) 2981 plog(XLOG_DEBUG, "xdr_am_LINK3res:"); 2982 2983 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 2984 return FALSE; 2985 switch (objp->status) { 2986 case AM_NFS3_OK: 2987 if (!xdr_am_LINK3resok(xdrs, &objp->res_u.ok)) 2988 return FALSE; 2989 break; 2990 default: 2991 if (!xdr_am_LINK3resfail(xdrs, &objp->res_u.fail)) 2992 return FALSE; 2993 break; 2994 } 2995 return TRUE; 2996 } 2997 2998 bool_t 2999 xdr_am_sattrguard3(XDR *xdrs, am_sattrguard3 *objp) 3000 { 3001 if (amuDebug(D_XDRTRACE)) 3002 plog(XLOG_DEBUG, "xdr_am_sattrguard3:"); 3003 3004 if (!xdr_bool(xdrs, &objp->check)) 3005 return FALSE; 3006 switch (objp->check) { 3007 case TRUE: 3008 if (!xdr_am_nfstime3(xdrs, &objp->am_sattrguard3_u.obj_ctime)) 3009 return FALSE; 3010 break; 3011 case FALSE: 3012 break; 3013 default: 3014 return FALSE; 3015 } 3016 return TRUE; 3017 } 3018 3019 bool_t 3020 xdr_am_SETATTR3args(XDR *xdrs, am_SETATTR3args *objp) 3021 { 3022 if (amuDebug(D_XDRTRACE)) 3023 plog(XLOG_DEBUG, "xdr_am_SETATTR3args:"); 3024 3025 if (!xdr_am_nfs_fh3(xdrs, &objp->object)) 3026 return FALSE; 3027 if (!xdr_am_sattr3(xdrs, &objp->new_attributes)) 3028 return FALSE; 3029 if (!xdr_am_sattrguard3(xdrs, &objp->guard)) 3030 return FALSE; 3031 return TRUE; 3032 } 3033 3034 bool_t 3035 xdr_am_SETATTR3resok(XDR *xdrs, am_SETATTR3resok *objp) 3036 { 3037 if (amuDebug(D_XDRTRACE)) 3038 plog(XLOG_DEBUG, "xdr_am_SETATTR3resok:"); 3039 3040 if (!xdr_am_wcc_data(xdrs, &objp->obj_wcc)) 3041 return FALSE; 3042 return TRUE; 3043 } 3044 3045 bool_t 3046 xdr_am_SETATTR3resfail(XDR *xdrs, am_SETATTR3resfail *objp) 3047 { 3048 if (amuDebug(D_XDRTRACE)) 3049 plog(XLOG_DEBUG, "xdr_am_SETATTR3resfail:"); 3050 3051 if (!xdr_am_wcc_data(xdrs, &objp->obj_wcc)) 3052 return FALSE; 3053 return TRUE; 3054 } 3055 3056 bool_t 3057 xdr_am_SETATTR3res(XDR *xdrs, am_SETATTR3res *objp) 3058 { 3059 if (amuDebug(D_XDRTRACE)) 3060 plog(XLOG_DEBUG, "xdr_am_SETATTR3res:"); 3061 3062 if (!xdr_am_nfsstat3(xdrs, &objp->status)) 3063 return FALSE; 3064 switch (objp->status) { 3065 case AM_NFS3_OK: 3066 if (!xdr_am_SETATTR3resok(xdrs, &objp->res_u.ok)) 3067 return FALSE; 3068 break; 3069 default: 3070 if (!xdr_am_SETATTR3resfail(xdrs, &objp->res_u.fail)) 3071 return FALSE; 3072 break; 3073 } 3074 return TRUE; 3075 } 3076 #endif /* HAVE_FS_NFS3 */ 3077