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/include/am_xdr_func.h 37 * 38 */ 39 40#ifdef HAVE_FS_NFS3 41 42#define AM_MOUNTVERS3 ((unsigned long)(3)) 43 44#define AM_FHSIZE3 64 /* size in bytes of a file handle (v3) */ 45#define AM_NFS3_WRITEVERFSIZE 8 46#define AM_NFS3_CREATEVERFSIZE 8 47#define AM_NFS3_COOKIEVERFSIZE 8 48#define AM_ACCESS3_READ 0x0001 49#define AM_ACCESS3_LOOKUP 0x0002 50#define AM_ACCESS3_MODIFY 0x0004 51#define AM_ACCESS3_EXTEND 0x0008 52#define AM_ACCESS3_DELETE 0x0010 53#define AM_ACCESS3_EXECUTE 0x0020 54#define AM_FSF3_LINK 0x0001 55#define AM_FSF3_SYMLINK 0x0002 56#define AM_FSF3_HOMOGENEOUS 0x0008 57#define AM_FSF3_CANSETTIME 0x0010 58 59typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE]; 60 61typedef uint64 am_cookie3; 62 63/* NFSv3 handle */ 64struct am_nfs_fh3 { 65 u_int am_fh3_length; 66 char am_fh3_data[AM_FHSIZE3]; 67}; 68typedef struct am_nfs_fh3 am_nfs_fh3; 69 70#define AM_NFSPROC3_LOOKUP ((u_long) 3) 71enum am_nfsstat3 { 72 AM_NFS3_OK = 0, 73 AM_NFS3ERR_PERM = 1, 74 AM_NFS3ERR_NOENT = 2, 75 AM_NFS3ERR_IO = 5, 76 AM_NFS3ERR_NXIO = 6, 77 AM_NFS3ERR_ACCES = 13, 78 AM_NFS3ERR_EXIST = 17, 79 AM_NFS3ERR_XDEV = 18, 80 AM_NFS3ERR_NODEV = 19, 81 AM_NFS3ERR_NOTDIR = 20, 82 AM_NFS3ERR_ISDIR = 21, 83 AM_NFS3ERR_INVAL = 22, 84 AM_NFS3ERR_FBIG = 27, 85 AM_NFS3ERR_NOSPC = 28, 86 AM_NFS3ERR_ROFS = 30, 87 AM_NFS3ERR_MLINK = 31, 88 AM_NFS3ERR_NAMETOOLONG = 63, 89 AM_NFS3ERR_NOTEMPTY = 66, 90 AM_NFS3ERR_DQUOT = 69, 91 AM_NFS3ERR_STALE = 70, 92 AM_NFS3ERR_REMOTE = 71, 93 AM_NFS3ERR_BADHANDLE = 10001, 94 AM_NFS3ERR_NOT_SYNC = 10002, 95 AM_NFS3ERR_BAD_COOKIE = 10003, 96 AM_NFS3ERR_NOTSUPP = 10004, 97 AM_NFS3ERR_TOOSMALL = 10005, 98 AM_NFS3ERR_SERVERFAULT = 10006, 99 AM_NFS3ERR_BADTYPE = 10007, 100 AM_NFS3ERR_JUKEBOX = 10008 101}; 102typedef enum am_nfsstat3 am_nfsstat3; 103 104typedef struct { 105 u_int fhandle3_len; 106 char *fhandle3_val; 107} am_fhandle3; 108 109enum am_mountstat3 { 110 AM_MNT3_OK = 0, 111 AM_MNT3ERR_PERM = 1, 112 AM_MNT3ERR_NOENT = 2, 113 AM_MNT3ERR_IO = 5, 114 AM_MNT3ERR_ACCES = 13, 115 AM_MNT3ERR_NOTDIR = 20, 116 AM_MNT3ERR_INVAL = 22, 117 AM_MNT3ERR_NAMETOOLONG = 63, 118 AM_MNT3ERR_NOTSUPP = 10004, 119 AM_MNT3ERR_SERVERFAULT = 10006 120}; 121typedef enum am_mountstat3 am_mountstat3; 122 123struct am_mountres3_ok { 124 am_fhandle3 fhandle; 125 struct { 126 u_int auth_flavors_len; 127 int *auth_flavors_val; 128 } auth_flavors; 129}; 130typedef struct am_mountres3_ok am_mountres3_ok; 131 132struct am_mountres3 { 133 am_mountstat3 fhs_status; 134 union { 135 am_mountres3_ok mountinfo; 136 } mountres3_u; 137}; 138typedef struct am_mountres3 am_mountres3; 139 140typedef char *am_filename3; 141 142struct am_diropargs3 { 143 am_nfs_fh3 dir; 144 am_filename3 name; 145}; 146typedef struct am_diropargs3 am_diropargs3; 147 148enum am_ftype3 { 149 AM_NF3REG = 1, 150 AM_NF3DIR = 2, 151 AM_NF3BLK = 3, 152 AM_NF3CHR = 4, 153 AM_NF3LNK = 5, 154 AM_NF3SOCK = 6, 155 AM_NF3FIFO = 7, 156}; 157typedef enum am_ftype3 am_ftype3; 158 159typedef u_int am_mode3; 160 161typedef u_int am_uid3; 162 163typedef u_int am_gid3; 164 165typedef uint64 am_size3; 166 167typedef uint64 am_fileid3; 168 169struct am_specdata3 { 170 u_int specdata1; 171 u_int specdata2; 172}; 173typedef struct am_specdata3 am_specdata3; 174 175struct am_nfstime3 { 176 u_int seconds; 177 u_int nseconds; 178}; 179typedef struct am_nfstime3 am_nfstime3; 180 181struct am_fattr3 { 182 am_ftype3 type; 183 am_mode3 mode; 184 u_int nlink; 185 am_uid3 uid; 186 am_gid3 gid; 187 am_size3 size; 188 am_size3 used; 189 am_specdata3 rdev; 190 uint64 fsid; 191 am_fileid3 fileid; 192 am_nfstime3 atime; 193 am_nfstime3 mtime; 194 am_nfstime3 ctime; 195}; 196typedef struct am_fattr3 am_fattr3; 197 198struct am_post_op_attr { 199 bool_t attributes_follow; 200 union { 201 am_fattr3 attributes; 202 } am_post_op_attr_u; 203}; 204typedef struct am_post_op_attr am_post_op_attr; 205 206enum am_stable_how { 207 AM_UNSTABLE = 0, 208 AM_DATA_SYNC = 1, 209 AM_FILE_SYNC = 2, 210}; 211typedef enum am_stable_how am_stable_how; 212 213typedef uint64 am_offset3; 214 215typedef u_int am_count3; 216 217struct am_wcc_attr { 218 am_size3 size; 219 am_nfstime3 mtime; 220 am_nfstime3 ctime; 221}; 222typedef struct am_wcc_attr am_wcc_attr; 223 224struct am_pre_op_attr { 225 bool_t attributes_follow; 226 union { 227 am_wcc_attr attributes; 228 } am_pre_op_attr_u; 229}; 230typedef struct am_pre_op_attr am_pre_op_attr; 231 232struct am_wcc_data { 233 am_pre_op_attr before; 234 am_post_op_attr after; 235}; 236typedef struct am_wcc_data am_wcc_data; 237 238struct am_WRITE3args { 239 am_nfs_fh3 file; 240 am_offset3 offset; 241 am_count3 count; 242 am_stable_how stable; 243 struct { 244 u_int data_len; 245 char *data_val; 246 } data; 247}; 248typedef struct am_WRITE3args am_WRITE3args; 249 250typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE]; 251 252struct am_WRITE3resok { 253 am_wcc_data file_wcc; 254 am_count3 count; 255 am_stable_how committed; 256 am_writeverf3 verf; 257}; 258typedef struct am_WRITE3resok am_WRITE3resok; 259 260struct am_WRITE3resfail { 261 am_wcc_data file_wcc; 262}; 263typedef struct am_WRITE3resfail am_WRITE3resfail; 264 265struct am_WRITE3res { 266 am_nfsstat3 status; 267 union { 268 am_WRITE3resok ok; 269 am_WRITE3resfail fail; 270 } res_u; 271}; 272typedef struct am_WRITE3res am_WRITE3res; 273 274struct am_LOOKUP3args { 275 am_diropargs3 what; 276}; 277typedef struct am_LOOKUP3args am_LOOKUP3args; 278 279struct am_LOOKUP3resok { 280 am_nfs_fh3 object; 281 am_post_op_attr obj_attributes; 282 am_post_op_attr dir_attributes; 283}; 284typedef struct am_LOOKUP3resok am_LOOKUP3resok; 285 286struct am_LOOKUP3resfail { 287 am_post_op_attr dir_attributes; 288}; 289typedef struct am_LOOKUP3resfail am_LOOKUP3resfail; 290 291struct am_LOOKUP3res { 292 am_nfsstat3 status; 293 union { 294 am_LOOKUP3resok ok; 295 am_LOOKUP3resfail fail; 296 } res_u; 297}; 298typedef struct am_LOOKUP3res am_LOOKUP3res; 299 300struct am_COMMIT3args { 301 am_nfs_fh3 file; 302 am_offset3 offset; 303 am_count3 count; 304}; 305typedef struct am_COMMIT3args am_COMMIT3args; 306 307struct am_COMMIT3resok { 308 am_wcc_data file_wcc; 309 am_writeverf3 verf; 310}; 311typedef struct am_COMMIT3resok am_COMMIT3resok; 312 313struct am_COMMIT3resfail { 314 am_wcc_data file_wcc; 315}; 316typedef struct am_COMMIT3resfail am_COMMIT3resfail; 317 318struct am_COMMIT3res { 319 am_nfsstat3 status; 320 union { 321 am_COMMIT3resok ok; 322 am_COMMIT3resfail fail; 323 } res_u; 324}; 325typedef struct am_COMMIT3res am_COMMIT3res; 326 327struct am_ACCESS3args { 328 am_nfs_fh3 object; 329 u_int access; 330}; 331typedef struct am_ACCESS3args am_ACCESS3args; 332 333struct am_ACCESS3resok { 334 am_post_op_attr obj_attributes; 335 u_int access; 336}; 337typedef struct am_ACCESS3resok am_ACCESS3resok; 338 339struct am_ACCESS3resfail { 340 am_post_op_attr obj_attributes; 341}; 342typedef struct am_ACCESS3resfail am_ACCESS3resfail; 343 344struct am_ACCESS3res { 345 am_nfsstat3 status; 346 union { 347 am_ACCESS3resok ok; 348 am_ACCESS3resfail fail; 349 } res_u; 350}; 351typedef struct am_ACCESS3res am_ACCESS3res; 352 353struct am_GETATTR3args { 354 am_nfs_fh3 object; 355}; 356typedef struct am_GETATTR3args am_GETATTR3args; 357 358struct am_GETATTR3resok { 359 am_fattr3 obj_attributes; 360}; 361typedef struct am_GETATTR3resok am_GETATTR3resok; 362 363struct am_GETATTR3res { 364 am_nfsstat3 status; 365 union { 366 am_GETATTR3resok ok; 367 } res_u; 368}; 369typedef struct am_GETATTR3res am_GETATTR3res; 370 371enum am_time_how { 372 AM_DONT_CHANGE = 0, 373 AM_SET_TO_SERVER_TIME = 1, 374 AM_SET_TO_CLIENT_TIME = 2, 375}; 376typedef enum am_time_how am_time_how; 377 378struct am_set_mode3 { 379 bool_t set_it; 380 union { 381 am_mode3 mode; 382 } am_set_mode3_u; 383}; 384typedef struct am_set_mode3 am_set_mode3; 385 386struct am_set_uid3 { 387 bool_t set_it; 388 union { 389 am_uid3 uid; 390 } am_set_uid3_u; 391}; 392typedef struct am_set_uid3 am_set_uid3; 393 394struct am_set_gid3 { 395 bool_t set_it; 396 union { 397 am_gid3 gid; 398 } am_set_gid3_u; 399}; 400typedef struct am_set_gid3 am_set_gid3; 401 402struct am_set_size3 { 403 bool_t set_it; 404 union { 405 am_size3 size; 406 } am_set_size3_u; 407}; 408typedef struct am_set_size3 am_set_size3; 409 410struct am_set_atime { 411 am_time_how set_it; 412 union { 413 am_nfstime3 atime; 414 } am_set_atime_u; 415}; 416typedef struct am_set_atime am_set_atime; 417 418struct am_set_mtime { 419 am_time_how set_it; 420 union { 421 am_nfstime3 mtime; 422 } am_set_mtime_u; 423}; 424typedef struct am_set_mtime am_set_mtime; 425 426struct am_sattr3 { 427 am_set_mode3 mode; 428 am_set_uid3 uid; 429 am_set_gid3 gid; 430 am_set_size3 size; 431 am_set_atime atime; 432 am_set_mtime mtime; 433}; 434typedef struct am_sattr3 am_sattr3; 435 436enum am_createmode3 { 437 AM_UNCHECKED = 0, 438 AM_GUARDED = 1, 439 AM_EXCLUSIVE = 2, 440}; 441typedef enum am_createmode3 am_createmode3; 442 443typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE]; 444 445struct am_createhow3 { 446 am_createmode3 mode; 447 union { 448 am_sattr3 obj_attributes; 449 am_sattr3 g_obj_attributes; 450 am_createverf3 verf; 451 } am_createhow3_u; 452}; 453typedef struct am_createhow3 am_createhow3; 454 455struct am_CREATE3args { 456 am_diropargs3 where; 457 am_createhow3 how; 458}; 459typedef struct am_CREATE3args am_CREATE3args; 460 461struct am_post_op_fh3 { 462 bool_t handle_follows; 463 union { 464 am_nfs_fh3 handle; 465 } am_post_op_fh3_u; 466}; 467typedef struct am_post_op_fh3 am_post_op_fh3; 468 469struct am_CREATE3resok { 470 am_post_op_fh3 obj; 471 am_post_op_attr obj_attributes; 472 am_wcc_data dir_wcc; 473}; 474typedef struct am_CREATE3resok am_CREATE3resok; 475 476struct am_CREATE3resfail { 477 am_wcc_data dir_wcc; 478}; 479typedef struct am_CREATE3resfail am_CREATE3resfail; 480 481struct am_CREATE3res { 482 am_nfsstat3 status; 483 union { 484 am_CREATE3resok ok; 485 am_CREATE3resfail fail; 486 } res_u; 487}; 488typedef struct am_CREATE3res am_CREATE3res; 489 490struct am_REMOVE3args { 491 am_diropargs3 object; 492}; 493typedef struct am_REMOVE3args am_REMOVE3args; 494 495struct am_REMOVE3resok { 496 am_wcc_data dir_wcc; 497}; 498typedef struct am_REMOVE3resok am_REMOVE3resok; 499 500struct am_REMOVE3resfail { 501 am_wcc_data dir_wcc; 502}; 503typedef struct am_REMOVE3resfail am_REMOVE3resfail; 504 505struct am_REMOVE3res { 506 am_nfsstat3 status; 507 union { 508 am_REMOVE3resok ok; 509 am_REMOVE3resfail fail; 510 } res_u; 511}; 512typedef struct am_REMOVE3res am_REMOVE3res; 513 514struct am_READ3args { 515 am_nfs_fh3 file; 516 am_offset3 offset; 517 am_count3 count; 518}; 519typedef struct am_READ3args am_READ3args; 520 521struct am_READ3resok { 522 am_post_op_attr file_attributes; 523 am_count3 count; 524 bool_t eof; 525 struct { 526 u_int data_len; 527 char *data_val; 528 } data; 529}; 530typedef struct am_READ3resok am_READ3resok; 531 532struct am_READ3resfail { 533 am_post_op_attr file_attributes; 534}; 535typedef struct am_READ3resfail am_READ3resfail; 536 537struct am_READ3res { 538 am_nfsstat3 status; 539 union { 540 am_READ3resok ok; 541 am_READ3resfail fail; 542 } res_u; 543}; 544typedef struct am_READ3res am_READ3res; 545 546struct am_FSINFO3args { 547 am_nfs_fh3 fsroot; 548}; 549typedef struct am_FSINFO3args am_FSINFO3args; 550 551struct am_FSINFO3resok { 552 am_post_op_attr obj_attributes; 553 u_int rtmax; 554 u_int rtpref; 555 u_int rtmult; 556 u_int wtmax; 557 u_int wtpref; 558 u_int wtmult; 559 u_int dtpref; 560 am_size3 maxfilesize; 561 am_nfstime3 time_delta; 562 u_int properties; 563}; 564typedef struct am_FSINFO3resok am_FSINFO3resok; 565 566struct am_FSINFO3resfail { 567 am_post_op_attr obj_attributes; 568}; 569typedef struct am_FSINFO3resfail am_FSINFO3resfail; 570 571struct am_FSINFO3res { 572 am_nfsstat3 status; 573 union { 574 am_FSINFO3resok ok; 575 am_FSINFO3resfail fail; 576 } res_u; 577}; 578typedef struct am_FSINFO3res am_FSINFO3res; 579 580struct am_FSSTAT3args { 581 am_nfs_fh3 fsroot; 582}; 583typedef struct am_FSSTAT3args am_FSSTAT3args; 584 585struct am_FSSTAT3resok { 586 am_post_op_attr obj_attributes; 587 am_size3 tbytes; 588 am_size3 fbytes; 589 am_size3 abytes; 590 am_size3 tfiles; 591 am_size3 ffiles; 592 am_size3 afiles; 593 u_int invarsec; 594}; 595typedef struct am_FSSTAT3resok am_FSSTAT3resok; 596 597struct am_FSSTAT3resfail { 598 am_post_op_attr obj_attributes; 599}; 600typedef struct am_FSSTAT3resfail am_FSSTAT3resfail; 601 602struct am_FSSTAT3res { 603 am_nfsstat3 status; 604 union { 605 am_FSSTAT3resok ok; 606 am_FSSTAT3resfail fail; 607 } res_u; 608}; 609typedef struct am_FSSTAT3res am_FSSTAT3res; 610 611struct am_PATHCONF3args { 612 am_nfs_fh3 object; 613}; 614typedef struct am_PATHCONF3args am_PATHCONF3args; 615 616struct am_PATHCONF3resok { 617 am_post_op_attr obj_attributes; 618 u_int linkmax; 619 u_int name_max; 620 bool_t no_trunc; 621 bool_t chown_restricted; 622 bool_t case_insensitive; 623 bool_t case_preserving; 624}; 625typedef struct am_PATHCONF3resok am_PATHCONF3resok; 626 627struct am_PATHCONF3resfail { 628 am_post_op_attr obj_attributes; 629}; 630typedef struct am_PATHCONF3resfail am_PATHCONF3resfail; 631 632struct am_PATHCONF3res { 633 am_nfsstat3 status; 634 union { 635 am_PATHCONF3resok ok; 636 am_PATHCONF3resfail fail; 637 } res_u; 638}; 639typedef struct am_PATHCONF3res am_PATHCONF3res; 640 641typedef char *am_nfspath3; 642 643struct am_symlinkdata3 { 644 am_sattr3 symlink_attributes; 645 am_nfspath3 symlink_data; 646}; 647typedef struct am_symlinkdata3 am_symlinkdata3; 648 649struct am_SYMLINK3args { 650 am_diropargs3 where; 651 am_symlinkdata3 symlink; 652}; 653typedef struct am_SYMLINK3args am_SYMLINK3args; 654 655struct am_SYMLINK3resok { 656 am_post_op_fh3 obj; 657 am_post_op_attr obj_attributes; 658 am_wcc_data dir_wcc; 659}; 660typedef struct am_SYMLINK3resok am_SYMLINK3resok; 661 662struct am_SYMLINK3resfail { 663 am_wcc_data dir_wcc; 664}; 665typedef struct am_SYMLINK3resfail am_SYMLINK3resfail; 666 667struct am_SYMLINK3res { 668 am_nfsstat3 status; 669 union { 670 am_SYMLINK3resok ok; 671 am_SYMLINK3resfail fail; 672 } res_u; 673}; 674typedef struct am_SYMLINK3res am_SYMLINK3res; 675 676struct am_READLINK3args { 677 am_nfs_fh3 symlink; 678}; 679typedef struct am_READLINK3args am_READLINK3args; 680 681struct am_READLINK3resok { 682 am_post_op_attr symlink_attributes; 683 am_nfspath3 data; 684}; 685typedef struct am_READLINK3resok am_READLINK3resok; 686 687struct am_READLINK3resfail { 688 am_post_op_attr symlink_attributes; 689}; 690typedef struct am_READLINK3resfail am_READLINK3resfail; 691 692struct am_READLINK3res { 693 am_nfsstat3 status; 694 union { 695 am_READLINK3resok ok; 696 am_READLINK3resfail fail; 697 } res_u; 698}; 699typedef struct am_READLINK3res am_READLINK3res; 700 701struct am_devicedata3 { 702 am_sattr3 dev_attributes; 703 am_specdata3 spec; 704}; 705typedef struct am_devicedata3 am_devicedata3; 706 707struct am_mknoddata3 { 708 am_ftype3 type; 709 union { 710 am_devicedata3 chr_device; 711 am_devicedata3 blk_device; 712 am_sattr3 sock_attributes; 713 am_sattr3 pipe_attributes; 714 } am_mknoddata3_u; 715}; 716typedef struct am_mknoddata3 am_mknoddata3; 717 718struct am_MKNOD3args { 719 am_diropargs3 where; 720 am_mknoddata3 what; 721}; 722typedef struct am_MKNOD3args am_MKNOD3args; 723 724struct am_MKNOD3resok { 725 am_post_op_fh3 obj; 726 am_post_op_attr obj_attributes; 727 am_wcc_data dir_wcc; 728}; 729typedef struct am_MKNOD3resok am_MKNOD3resok; 730 731struct am_MKNOD3resfail { 732 am_wcc_data dir_wcc; 733}; 734typedef struct am_MKNOD3resfail am_MKNOD3resfail; 735 736struct am_MKNOD3res { 737 am_nfsstat3 status; 738 union { 739 am_MKNOD3resok ok; 740 am_MKNOD3resfail fail; 741 } res_u; 742}; 743typedef struct am_MKNOD3res am_MKNOD3res; 744 745struct am_MKDIR3args { 746 am_diropargs3 where; 747 am_sattr3 attributes; 748}; 749typedef struct am_MKDIR3args am_MKDIR3args; 750 751struct am_MKDIR3resok { 752 am_post_op_fh3 obj; 753 am_post_op_attr obj_attributes; 754 am_wcc_data dir_wcc; 755}; 756typedef struct am_MKDIR3resok am_MKDIR3resok; 757 758struct am_MKDIR3resfail { 759 am_wcc_data dir_wcc; 760}; 761typedef struct am_MKDIR3resfail am_MKDIR3resfail; 762 763struct am_MKDIR3res { 764 am_nfsstat3 status; 765 union { 766 am_MKDIR3resok ok; 767 am_MKDIR3resfail fail; 768 } res_u; 769}; 770typedef struct am_MKDIR3res am_MKDIR3res; 771 772struct am_RMDIR3args { 773 am_diropargs3 object; 774}; 775typedef struct am_RMDIR3args am_RMDIR3args; 776 777struct am_RMDIR3resok { 778 am_wcc_data dir_wcc; 779}; 780typedef struct am_RMDIR3resok am_RMDIR3resok; 781 782struct am_RMDIR3resfail { 783 am_wcc_data dir_wcc; 784}; 785typedef struct am_RMDIR3resfail am_RMDIR3resfail; 786 787struct am_RMDIR3res { 788 am_nfsstat3 status; 789 union { 790 am_RMDIR3resok ok; 791 am_RMDIR3resfail fail; 792 } res_u; 793}; 794typedef struct am_RMDIR3res am_RMDIR3res; 795 796struct am_RENAME3args { 797 am_diropargs3 from; 798 am_diropargs3 to; 799}; 800typedef struct am_RENAME3args am_RENAME3args; 801 802struct am_RENAME3resok { 803 am_wcc_data fromdir_wcc; 804 am_wcc_data todir_wcc; 805}; 806typedef struct am_RENAME3resok am_RENAME3resok; 807 808struct am_RENAME3resfail { 809 am_wcc_data fromdir_wcc; 810 am_wcc_data todir_wcc; 811}; 812typedef struct am_RENAME3resfail am_RENAME3resfail; 813 814struct am_RENAME3res { 815 am_nfsstat3 status; 816 union { 817 am_RENAME3resok ok; 818 am_RENAME3resfail fail; 819 } res_u; 820}; 821typedef struct am_RENAME3res am_RENAME3res; 822 823struct am_READDIRPLUS3args { 824 am_nfs_fh3 dir; 825 am_cookie3 cookie; 826 am_cookieverf3 cookieverf; 827 am_count3 dircount; 828 am_count3 maxcount; 829}; 830typedef struct am_READDIRPLUS3args am_READDIRPLUS3args; 831 832struct am_entryplus3 { 833 am_fileid3 fileid; 834 am_filename3 name; 835 am_cookie3 cookie; 836 am_post_op_attr name_attributes; 837 am_post_op_fh3 name_handle; 838 struct am_entryplus3 *nextentry; 839}; 840typedef struct am_entryplus3 am_entryplus3; 841 842struct am_dirlistplus3 { 843 am_entryplus3 *entries; 844 bool_t eof; 845}; 846typedef struct am_dirlistplus3 am_dirlistplus3; 847 848struct am_READDIRPLUS3resok { 849 am_post_op_attr dir_attributes; 850 am_cookieverf3 cookieverf; 851 am_dirlistplus3 reply; 852}; 853typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok; 854 855struct am_READDIRPLUS3resfail { 856 am_post_op_attr dir_attributes; 857}; 858typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail; 859 860struct am_READDIRPLUS3res { 861 am_nfsstat3 status; 862 union { 863 am_READDIRPLUS3resok ok; 864 am_READDIRPLUS3resfail fail; 865 } res_u; 866}; 867typedef struct am_READDIRPLUS3res am_READDIRPLUS3res; 868 869struct am_READDIR3args { 870 am_nfs_fh3 dir; 871 am_cookie3 cookie; 872 am_cookieverf3 cookieverf; 873 am_count3 count; 874}; 875typedef struct am_READDIR3args am_READDIR3args; 876 877struct am_entry3 { 878 am_fileid3 fileid; 879 am_filename3 name; 880 am_cookie3 cookie; 881 struct am_entry3 *nextentry; 882}; 883typedef struct am_entry3 am_entry3; 884 885struct am_dirlist3 { 886 am_entry3 *entries; 887 bool_t eof; 888}; 889typedef struct am_dirlist3 am_dirlist3; 890 891struct am_READDIR3resok { 892 am_post_op_attr dir_attributes; 893 am_cookieverf3 cookieverf; 894 am_dirlist3 reply; 895}; 896typedef struct am_READDIR3resok am_READDIR3resok; 897 898struct am_READDIR3resfail { 899 am_post_op_attr dir_attributes; 900}; 901typedef struct am_READDIR3resfail am_READDIR3resfail; 902 903struct am_READDIR3res { 904 am_nfsstat3 status; 905 union { 906 am_READDIR3resok ok; 907 am_READDIR3resfail fail; 908 } res_u; 909}; 910typedef struct am_READDIR3res am_READDIR3res; 911 912struct am_LINK3args { 913 am_nfs_fh3 file; 914 am_diropargs3 link; 915}; 916typedef struct am_LINK3args am_LINK3args; 917 918struct am_LINK3resok { 919 am_post_op_attr file_attributes; 920 am_wcc_data linkdir_wcc; 921}; 922typedef struct am_LINK3resok am_LINK3resok; 923 924struct am_LINK3resfail { 925 am_post_op_attr file_attributes; 926 am_wcc_data linkdir_wcc; 927}; 928typedef struct am_LINK3resfail am_LINK3resfail; 929 930struct am_LINK3res { 931 am_nfsstat3 status; 932 union { 933 am_LINK3resok ok; 934 am_LINK3resfail fail; 935 } res_u; 936}; 937typedef struct am_LINK3res am_LINK3res; 938 939struct am_sattrguard3 { 940 bool_t check; 941 union { 942 am_nfstime3 obj_ctime; 943 } am_sattrguard3_u; 944}; 945typedef struct am_sattrguard3 am_sattrguard3; 946 947struct am_SETATTR3args { 948 am_nfs_fh3 object; 949 am_sattr3 new_attributes; 950 am_sattrguard3 guard; 951}; 952typedef struct am_SETATTR3args am_SETATTR3args; 953 954struct am_SETATTR3resok { 955 am_wcc_data obj_wcc; 956}; 957typedef struct am_SETATTR3resok am_SETATTR3resok; 958 959struct am_SETATTR3resfail { 960 am_wcc_data obj_wcc; 961}; 962typedef struct am_SETATTR3resfail am_SETATTR3resfail; 963 964struct am_SETATTR3res { 965 am_nfsstat3 status; 966 union { 967 am_SETATTR3resok ok; 968 am_SETATTR3resfail fail; 969 } res_u; 970}; 971typedef struct am_SETATTR3res am_SETATTR3res; 972#endif /* HAVE_FS_NFS3 */ 973 974/* 975 * Multi-protocol NFS file handle 976 */ 977union am_nfs_handle { 978 /* placeholder for V4 file handle */ 979#ifdef HAVE_FS_NFS3 980 am_nfs_fh3 v3; /* NFS version 3 handle */ 981#endif /* HAVE_FS_NFS3 */ 982 am_nfs_fh v2; /* NFS version 2 handle */ 983}; 984typedef union am_nfs_handle am_nfs_handle_t; 985 986 987/* 988 * Definitions of all possible xdr functions that are otherwise 989 * not defined elsewhere. 990 */ 991 992#ifndef _AM_XDR_FUNC_H 993#define _AM_XDR_FUNC_H 994 995#ifndef HAVE_XDR_ATTRSTAT 996bool_t xdr_attrstat(XDR *xdrs, nfsattrstat *objp); 997#endif /* not HAVE_XDR_ATTRSTAT */ 998#ifndef HAVE_XDR_CREATEARGS 999bool_t xdr_createargs(XDR *xdrs, nfscreateargs *objp); 1000#endif /* not HAVE_XDR_CREATEARGS */ 1001#ifndef HAVE_XDR_DIRLIST 1002bool_t xdr_dirlist(XDR *xdrs, nfsdirlist *objp); 1003#endif /* not HAVE_XDR_DIRLIST */ 1004#ifndef HAVE_XDR_DIROPARGS 1005bool_t xdr_diropargs(XDR *xdrs, nfsdiropargs *objp); 1006#endif /* not HAVE_XDR_DIROPARGS */ 1007#ifndef HAVE_XDR_DIROPOKRES 1008bool_t xdr_diropokres(XDR *xdrs, nfsdiropokres *objp); 1009#endif /* not HAVE_XDR_DIROPOKRES */ 1010#ifndef HAVE_XDR_DIROPRES 1011bool_t xdr_diropres(XDR *xdrs, nfsdiropres *objp); 1012#endif /* not HAVE_XDR_DIROPRES */ 1013#ifndef HAVE_XDR_DIRPATH 1014bool_t xdr_dirpath(XDR *xdrs, dirpath *objp); 1015#endif /* not HAVE_XDR_DIRPATH */ 1016#ifndef HAVE_XDR_ENTRY 1017bool_t xdr_entry(XDR *xdrs, nfsentry *objp); 1018#endif /* not HAVE_XDR_ENTRY */ 1019#ifndef HAVE_XDR_EXPORTNODE 1020bool_t xdr_exportnode(XDR *xdrs, exportnode *objp); 1021#endif /* not HAVE_XDR_EXPORTNODE */ 1022#ifndef HAVE_XDR_EXPORTS 1023bool_t xdr_exports(XDR *xdrs, exports *objp); 1024#endif /* not HAVE_XDR_EXPORTS */ 1025#ifndef HAVE_XDR_FATTR 1026bool_t xdr_fattr(XDR *xdrs, nfsfattr *objp); 1027#endif /* not HAVE_XDR_FATTR */ 1028#ifndef HAVE_XDR_FHANDLE 1029bool_t xdr_fhandle(XDR *xdrs, fhandle objp); 1030#endif /* not HAVE_XDR_FHANDLE */ 1031#ifndef HAVE_XDR_FHSTATUS 1032bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp); 1033#endif /* not HAVE_XDR_FHSTATUS */ 1034#ifndef HAVE_XDR_FILENAME 1035bool_t xdr_filename(XDR *xdrs, filename *objp); 1036#endif /* not HAVE_XDR_FILENAME */ 1037#ifndef HAVE_XDR_FTYPE 1038bool_t xdr_ftype(XDR *xdrs, nfsftype *objp); 1039#endif /* not HAVE_XDR_FTYPE */ 1040#ifndef HAVE_XDR_GROUPNODE 1041bool_t xdr_groupnode(XDR *xdrs, groupnode *objp); 1042#endif /* not HAVE_XDR_GROUPNODE */ 1043#ifndef HAVE_XDR_GROUPS 1044bool_t xdr_groups(XDR *xdrs, groups *objp); 1045#endif /* not HAVE_XDR_GROUPS */ 1046#ifndef HAVE_XDR_LINKARGS 1047bool_t xdr_linkargs(XDR *xdrs, nfslinkargs *objp); 1048#endif /* not HAVE_XDR_LINKARGS */ 1049#ifndef HAVE_XDR_MOUNTBODY 1050bool_t xdr_mountbody(XDR *xdrs, mountbody *objp); 1051#endif /* not HAVE_XDR_MOUNTBODY */ 1052#ifndef HAVE_XDR_MOUNTLIST 1053bool_t xdr_mountlist(XDR *xdrs, mountlist *objp); 1054#endif /* not HAVE_XDR_MOUNTLIST */ 1055#ifndef HAVE_XDR_NAME 1056bool_t xdr_name(XDR *xdrs, name *objp); 1057#endif /* not HAVE_XDR_NAME */ 1058#ifndef HAVE_XDR_NFS_FH 1059bool_t xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp); 1060#endif /* not HAVE_XDR_NFS_FH */ 1061#ifndef HAVE_XDR_NFSCOOKIE 1062bool_t xdr_nfscookie(XDR *xdrs, nfscookie objp); 1063#endif /* not HAVE_XDR_NFSCOOKIE */ 1064#ifndef HAVE_XDR_NFSPATH 1065bool_t xdr_nfspath(XDR *xdrs, nfspath *objp); 1066#endif /* not HAVE_XDR_NFSPATH */ 1067#ifndef HAVE_XDR_NFSSTAT 1068bool_t xdr_nfsstat(XDR *xdrs, nfsstat *objp); 1069#endif /* not HAVE_XDR_NFSSTAT */ 1070#ifndef HAVE_XDR_NFSTIME 1071bool_t xdr_nfstime(XDR *xdrs, nfstime *objp); 1072#endif /* not HAVE_XDR_NFSTIME */ 1073#ifndef HAVE_XDR_POINTER 1074bool_t xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj); 1075#endif /* not HAVE_XDR_POINTER */ 1076#ifndef HAVE_XDR_READARGS 1077bool_t xdr_readargs(XDR *xdrs, nfsreadargs *objp); 1078#endif /* not HAVE_XDR_READARGS */ 1079#ifndef HAVE_XDR_READDIRARGS 1080bool_t xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp); 1081#endif /* not HAVE_XDR_READDIRARGS */ 1082#ifndef HAVE_XDR_READDIRRES 1083bool_t xdr_readdirres(XDR *xdrs, nfsreaddirres *objp); 1084#endif /* not HAVE_XDR_READDIRRES */ 1085#ifndef HAVE_XDR_READLINKRES 1086bool_t xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp); 1087#endif /* not HAVE_XDR_READLINKRES */ 1088#ifndef HAVE_XDR_READOKRES 1089bool_t xdr_readokres(XDR *xdrs, nfsreadokres *objp); 1090#endif /* not HAVE_XDR_READOKRES */ 1091#ifndef HAVE_XDR_READRES 1092bool_t xdr_readres(XDR *xdrs, nfsreadres *objp); 1093#endif /* not HAVE_XDR_READRES */ 1094#ifndef HAVE_XDR_RENAMEARGS 1095bool_t xdr_renameargs(XDR *xdrs, nfsrenameargs *objp); 1096#endif /* not HAVE_XDR_RENAMEARGS */ 1097#ifndef HAVE_XDR_SATTR 1098bool_t xdr_sattr(XDR *xdrs, nfssattr *objp); 1099#endif /* not HAVE_XDR_SATTR */ 1100#ifndef HAVE_XDR_SATTRARGS 1101bool_t xdr_sattrargs(XDR *xdrs, nfssattrargs *objp); 1102#endif /* not HAVE_XDR_SATTRARGS */ 1103#ifndef HAVE_XDR_STATFSOKRES 1104bool_t xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp); 1105#endif /* not HAVE_XDR_STATFSOKRES */ 1106#ifndef HAVE_XDR_STATFSRES 1107bool_t xdr_statfsres(XDR *xdrs, nfsstatfsres *objp); 1108#endif /* not HAVE_XDR_STATFSRES */ 1109#ifndef HAVE_XDR_SYMLINKARGS 1110bool_t xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp); 1111#endif /* not HAVE_XDR_SYMLINKARGS */ 1112#ifndef HAVE_XDR_WRITEARGS 1113bool_t xdr_writeargs(XDR *xdrs, nfswriteargs *objp); 1114#endif /* not HAVE_XDR_WRITEARGS */ 1115 1116/* 1117 * NFS3 XDR FUNCTIONS: 1118 */ 1119#ifdef HAVE_FS_NFS3 1120#define AM_NFS3_NULL 0 1121void * am_nfs3_null_3(void *, CLIENT *); 1122void * am_nfs3_null_3_svc(void *, struct svc_req *); 1123#define AM_NFS3_GETATTR 1 1124am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *); 1125am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *); 1126#define AM_NFS3_SETATTR 2 1127am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *); 1128am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *); 1129#define AM_NFS3_LOOKUP 3 1130am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *); 1131am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *); 1132#define AM_NFS3_ACCESS 4 1133am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *); 1134am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *); 1135#define AM_NFS3_READLINK 5 1136am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *); 1137am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *); 1138#define AM_NFS3_READ 6 1139am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *); 1140am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *); 1141#define AM_NFS3_WRITE 7 1142am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *); 1143am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *); 1144#define AM_NFS3_CREATE 8 1145am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *); 1146am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *); 1147#define AM_NFS3_MKDIR 9 1148am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *); 1149am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *); 1150#define AM_NFS3_SYMLINK 10 1151am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *); 1152am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *); 1153#define AM_NFS3_MKNOD 11 1154am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *); 1155am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *); 1156#define AM_NFS3_REMOVE 12 1157am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *); 1158am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *); 1159#define AM_NFS3_RMDIR 13 1160am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *); 1161am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *); 1162#define AM_NFS3_RENAME 14 1163am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *); 1164am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *); 1165#define AM_NFS3_LINK 15 1166am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *); 1167am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *); 1168#define AM_NFS3_READDIR 16 1169am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *); 1170am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *); 1171#define AM_NFS3_READDIRPLUS 17 1172am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *); 1173am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *); 1174#define AM_NFS3_FSSTAT 18 1175am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *); 1176am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *); 1177#define AM_NFS3_FSINFO 19 1178am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *); 1179am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *); 1180#define AM_NFS3_PATHCONF 20 1181am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *); 1182am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *); 1183#define AM_NFS3_COMMIT 21 1184am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *); 1185am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *); 1186int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); 1187 1188bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp); 1189bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp); 1190bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp); 1191bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp); 1192bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp); 1193bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp); 1194bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp); 1195bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp); 1196bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp); 1197bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp); 1198bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp); 1199bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp); 1200bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3); 1201bool_t xdr_uint64 (XDR *, uint64*); 1202bool_t xdr_am_cookie3 (XDR *, am_cookie3*); 1203bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*); 1204bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*); 1205bool_t xdr_am_filename3 (XDR *, am_filename3*); 1206bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*); 1207bool_t xdr_am_ftype3 (XDR *, am_ftype3*); 1208bool_t xdr_am_mode3 (XDR *, am_mode3*); 1209bool_t xdr_am_uid3 (XDR *, am_uid3*); 1210bool_t xdr_am_gid3 (XDR *, am_gid3*); 1211bool_t xdr_am_size3 (XDR *, am_size3*); 1212bool_t xdr_am_fileid3 (XDR *, am_fileid3*); 1213bool_t xdr_am_specdata3 (XDR *, am_specdata3*); 1214bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*); 1215bool_t xdr_am_fattr3 (XDR *, am_fattr3*); 1216bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*); 1217bool_t xdr_am_stable_how (XDR *, am_stable_how*); 1218bool_t xdr_am_offset3 (XDR *, am_offset3*); 1219bool_t xdr_am_count3 (XDR *, am_count3*); 1220bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*); 1221bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*); 1222bool_t xdr_am_wcc_data (XDR *, am_wcc_data*); 1223bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*); 1224bool_t xdr_am_writeverf3 (XDR *, am_writeverf3); 1225bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*); 1226bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*); 1227bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*); 1228bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*); 1229bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*); 1230bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*); 1231bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*); 1232bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*); 1233bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*); 1234bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*); 1235bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*); 1236bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*); 1237bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*); 1238bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*); 1239bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*); 1240bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*); 1241bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*); 1242bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*); 1243bool_t xdr_am_time_how (XDR *, am_time_how*); 1244bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*); 1245bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*); 1246bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*); 1247bool_t xdr_am_set_size3 (XDR *, am_set_size3*); 1248bool_t xdr_am_set_atime (XDR *, am_set_atime*); 1249bool_t xdr_am_set_mtime (XDR *, am_set_mtime*); 1250bool_t xdr_am_sattr3 (XDR *, am_sattr3*); 1251bool_t xdr_am_createmode3 (XDR *, am_createmode3*); 1252bool_t xdr_am_createverf3 (XDR *, am_createverf3); 1253bool_t xdr_am_createhow3 (XDR *, am_createhow3*); 1254bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*); 1255bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*); 1256bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*); 1257bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*); 1258bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*); 1259bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*); 1260bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*); 1261bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*); 1262bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*); 1263bool_t xdr_am_READ3args (XDR *, am_READ3args*); 1264bool_t xdr_am_READ3resok (XDR *, am_READ3resok*); 1265bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*); 1266bool_t xdr_am_READ3res (XDR *, am_READ3res*); 1267bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*); 1268bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*); 1269bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*); 1270bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*); 1271bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*); 1272bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*); 1273bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*); 1274bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*); 1275bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*); 1276bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*); 1277bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*); 1278bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*); 1279bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*); 1280bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*); 1281bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*); 1282bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*); 1283bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*); 1284bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*); 1285bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*); 1286bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*); 1287bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*); 1288bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*); 1289bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*); 1290bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*); 1291bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*); 1292bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*); 1293bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*); 1294bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*); 1295bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*); 1296bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*); 1297bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*); 1298bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*); 1299bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*); 1300bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*); 1301bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*); 1302bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*); 1303bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*); 1304bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*); 1305bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*); 1306bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*); 1307bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*); 1308bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*); 1309bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*); 1310bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*); 1311bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*); 1312bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*); 1313bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*); 1314bool_t xdr_am_entry3 (XDR *, am_entry3*); 1315bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*); 1316bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*); 1317bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*); 1318bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*); 1319bool_t xdr_am_LINK3args (XDR *, am_LINK3args*); 1320bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*); 1321bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*); 1322bool_t xdr_am_LINK3res (XDR *, am_LINK3res*); 1323bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*); 1324bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*); 1325bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*); 1326bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*); 1327bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*); 1328#endif /* HAVE_FS_NFS3 */ 1329 1330#endif /* not _AM_XDR_FUNC_H */ 1331