1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 #ifndef _NFS4_PROT_H 27 #define _NFS4_PROT_H 28 29 #include <rpc/rpc.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #ifndef _AUTH_SYS_DEFINE_FOR_NFSv41 36 #define _AUTH_SYS_DEFINE_FOR_NFSv41 37 #include <rpc/auth_sys.h> 38 typedef struct authsys_parms authsys_parms; 39 #endif /* _AUTH_SYS_DEFINE_FOR_NFSv41 */ 40 #define NFS4_FHSIZE 128 41 #define NFS4_VERIFIER_SIZE 8 42 #define NFS4_OPAQUE_LIMIT 1024 43 #define NFS4_SESSIONID_SIZE 16 44 #define NFS4_INT64_MAX 0x7fffffffffffffff 45 #define NFS4_UINT64_MAX 0xffffffffffffffff 46 #define NFS4_INT32_MAX 0x7fffffff 47 #define NFS4_UINT32_MAX 0xffffffff 48 #define NFS4_MAXFILELEN 0xffffffffffffffff 49 #define NFS4_MAXFILEOFF 0xfffffffffffffffe 50 51 enum nfs_ftype4 { 52 NF4REG = 1, 53 NF4DIR = 2, 54 NF4BLK = 3, 55 NF4CHR = 4, 56 NF4LNK = 5, 57 NF4SOCK = 6, 58 NF4FIFO = 7, 59 NF4ATTRDIR = 8, 60 NF4NAMEDATTR = 9 61 }; 62 typedef enum nfs_ftype4 nfs_ftype4; 63 64 enum nfsstat4 { 65 NFS4_OK = 0, 66 NFS4ERR_PERM = 1, 67 NFS4ERR_NOENT = 2, 68 NFS4ERR_IO = 5, 69 NFS4ERR_NXIO = 6, 70 NFS4ERR_ACCESS = 13, 71 NFS4ERR_EXIST = 17, 72 NFS4ERR_XDEV = 18, 73 NFS4ERR_NOTDIR = 20, 74 NFS4ERR_ISDIR = 21, 75 NFS4ERR_INVAL = 22, 76 NFS4ERR_FBIG = 27, 77 NFS4ERR_NOSPC = 28, 78 NFS4ERR_ROFS = 30, 79 NFS4ERR_MLINK = 31, 80 NFS4ERR_NAMETOOLONG = 63, 81 NFS4ERR_NOTEMPTY = 66, 82 NFS4ERR_DQUOT = 69, 83 NFS4ERR_STALE = 70, 84 NFS4ERR_BADHANDLE = 10001, 85 NFS4ERR_BAD_COOKIE = 10003, 86 NFS4ERR_NOTSUPP = 10004, 87 NFS4ERR_TOOSMALL = 10005, 88 NFS4ERR_SERVERFAULT = 10006, 89 NFS4ERR_BADTYPE = 10007, 90 NFS4ERR_DELAY = 10008, 91 NFS4ERR_SAME = 10009, 92 NFS4ERR_DENIED = 10010, 93 NFS4ERR_EXPIRED = 10011, 94 NFS4ERR_LOCKED = 10012, 95 NFS4ERR_GRACE = 10013, 96 NFS4ERR_FHEXPIRED = 10014, 97 NFS4ERR_SHARE_DENIED = 10015, 98 NFS4ERR_WRONGSEC = 10016, 99 NFS4ERR_CLID_INUSE = 10017, 100 NFS4ERR_RESOURCE = 10018, 101 NFS4ERR_MOVED = 10019, 102 NFS4ERR_NOFILEHANDLE = 10020, 103 NFS4ERR_MINOR_VERS_MISMATCH = 10021, 104 NFS4ERR_STALE_CLIENTID = 10022, 105 NFS4ERR_STALE_STATEID = 10023, 106 NFS4ERR_OLD_STATEID = 10024, 107 NFS4ERR_BAD_STATEID = 10025, 108 NFS4ERR_BAD_SEQID = 10026, 109 NFS4ERR_NOT_SAME = 10027, 110 NFS4ERR_LOCK_RANGE = 10028, 111 NFS4ERR_SYMLINK = 10029, 112 NFS4ERR_RESTOREFH = 10030, 113 NFS4ERR_LEASE_MOVED = 10031, 114 NFS4ERR_ATTRNOTSUPP = 10032, 115 NFS4ERR_NO_GRACE = 10033, 116 NFS4ERR_RECLAIM_BAD = 10034, 117 NFS4ERR_RECLAIM_CONFLICT = 10035, 118 NFS4ERR_BADXDR = 10036, 119 NFS4ERR_LOCKS_HELD = 10037, 120 NFS4ERR_OPENMODE = 10038, 121 NFS4ERR_BADOWNER = 10039, 122 NFS4ERR_BADCHAR = 10040, 123 NFS4ERR_BADNAME = 10041, 124 NFS4ERR_BAD_RANGE = 10042, 125 NFS4ERR_LOCK_NOTSUPP = 10043, 126 NFS4ERR_OP_ILLEGAL = 10044, 127 NFS4ERR_DEADLOCK = 10045, 128 NFS4ERR_FILE_OPEN = 10046, 129 NFS4ERR_ADMIN_REVOKED = 10047, 130 NFS4ERR_CB_PATH_DOWN = 10048, 131 NFS4ERR_BADIOMODE = 10049, 132 NFS4ERR_BADLAYOUT = 10050, 133 NFS4ERR_BAD_SESSION_DIGEST = 10051, 134 NFS4ERR_BADSESSION = 10052, 135 NFS4ERR_BADSLOT = 10053, 136 NFS4ERR_COMPLETE_ALREADY = 10054, 137 NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055, 138 NFS4ERR_DELEG_ALREADY_WANTED = 10056, 139 NFS4ERR_BACK_CHAN_BUSY = 10057, 140 NFS4ERR_LAYOUTTRYLATER = 10058, 141 NFS4ERR_LAYOUTUNAVAILABLE = 10059, 142 NFS4ERR_NOMATCHING_LAYOUT = 10060, 143 NFS4ERR_RECALLCONFLICT = 10061, 144 NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062, 145 NFS4ERR_SEQ_MISORDERED = 10063, 146 NFS4ERR_SEQUENCE_POS = 10064, 147 NFS4ERR_REQ_TOO_BIG = 10065, 148 NFS4ERR_REP_TOO_BIG = 10066, 149 NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067, 150 NFS4ERR_RETRY_UNCACHED_REP = 10068, 151 NFS4ERR_UNSAFE_COMPOUND = 10069, 152 NFS4ERR_TOO_MANY_OPS = 10070, 153 NFS4ERR_OP_NOT_IN_SESSION = 10071, 154 NFS4ERR_HASH_ALG_UNSUPP = 10072, 155 /* Error 10073 is unused. */ 156 NFS4ERR_CLIENTID_BUSY = 10074, 157 NFS4ERR_PNFS_IO_HOLE = 10075, 158 NFS4ERR_SEQ_FALSE_RETRY = 10076, 159 NFS4ERR_BAD_HIGH_SLOT = 10077, 160 NFS4ERR_DEADSESSION = 10078, 161 NFS4ERR_ENCR_ALG_UNSUPP = 10079, 162 NFS4ERR_PNFS_NO_LAYOUT = 10080, 163 NFS4ERR_NOT_ONLY_OP = 10081, 164 NFS4ERR_WRONG_CRED = 10082, 165 NFS4ERR_WRONG_TYPE = 10083, 166 NFS4ERR_DIRDELEG_UNAVAIL = 10084, 167 NFS4ERR_REJECT_DELEG = 10085, 168 NFS4ERR_RETURNCONFLICT = 10086 169 }; 170 typedef enum nfsstat4 nfsstat4; 171 172 typedef struct { 173 uint_t attrlist4_len; 174 char *attrlist4_val; 175 } attrlist4; 176 177 typedef struct { 178 uint_t bitmap4_len; 179 uint32_t *bitmap4_val; 180 } bitmap4; 181 182 typedef uint64_t changeid4; 183 184 typedef uint64_t clientid4; 185 186 typedef uint32_t count4; 187 188 typedef uint64_t length4; 189 190 typedef uint32_t mode4; 191 192 typedef uint64_t nfs_cookie4; 193 194 typedef struct { 195 uint_t nfs_fh4_len; 196 char *nfs_fh4_val; 197 } nfs_fh4; 198 199 typedef uint64_t offset4; 200 201 typedef uint32_t qop4; 202 203 typedef struct { 204 uint_t sec_oid4_len; 205 char *sec_oid4_val; 206 } sec_oid4; 207 208 typedef uint32_t sequenceid4; 209 210 typedef uint32_t seqid4; 211 212 typedef char sessionid4[NFS4_SESSIONID_SIZE]; 213 214 typedef uint32_t slotid4; 215 216 typedef struct { 217 uint_t utf8string_len; 218 char *utf8string_val; 219 } utf8string; 220 221 typedef utf8string utf8str_cis; 222 223 typedef utf8string utf8str_cs; 224 225 typedef utf8string utf8str_mixed; 226 227 typedef utf8str_cs component4; 228 229 typedef utf8str_cs linktext4; 230 231 typedef struct { 232 uint_t pathname4_len; 233 component4 *pathname4_val; 234 } pathname4; 235 236 typedef char verifier4[NFS4_VERIFIER_SIZE]; 237 238 struct nfstime4 { 239 int64_t seconds; 240 uint32_t nseconds; 241 }; 242 typedef struct nfstime4 nfstime4; 243 244 enum time_how4 { 245 SET_TO_SERVER_TIME4 = 0, 246 SET_TO_CLIENT_TIME4 = 1 247 }; 248 typedef enum time_how4 time_how4; 249 250 struct settime4 { 251 time_how4 set_it; 252 union { 253 nfstime4 time; 254 } settime4_u; 255 }; 256 typedef struct settime4 settime4; 257 258 typedef uint32_t nfs_lease4; 259 260 struct fsid4 { 261 uint64_t major; 262 uint64_t minor; 263 }; 264 typedef struct fsid4 fsid4; 265 266 struct change_policy4 { 267 uint64_t cp_major; 268 uint64_t cp_minor; 269 }; 270 typedef struct change_policy4 change_policy4; 271 272 struct fs_location4 { 273 struct { 274 uint_t server_len; 275 utf8str_cis *server_val; 276 } server; 277 pathname4 rootpath; 278 }; 279 typedef struct fs_location4 fs_location4; 280 281 struct fs_locations4 { 282 pathname4 fs_root; 283 struct { 284 uint_t locations_len; 285 fs_location4 *locations_val; 286 } locations; 287 }; 288 typedef struct fs_locations4 fs_locations4; 289 #define ACL4_SUPPORT_ALLOW_ACL 0x00000001 290 #define ACL4_SUPPORT_DENY_ACL 0x00000002 291 #define ACL4_SUPPORT_AUDIT_ACL 0x00000004 292 #define ACL4_SUPPORT_ALARM_ACL 0x00000008 293 294 typedef uint32_t acetype4; 295 #define ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000 296 #define ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001 297 #define ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002 298 #define ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003 299 300 typedef uint32_t aceflag4; 301 #define ACE4_FILE_INHERIT_ACE 0x00000001 302 #define ACE4_DIRECTORY_INHERIT_ACE 0x00000002 303 #define ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004 304 #define ACE4_INHERIT_ONLY_ACE 0x00000008 305 #define ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010 306 #define ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020 307 #define ACE4_IDENTIFIER_GROUP 0x00000040 308 #define ACE4_INHERITED_ACE 0x00000080 309 310 typedef uint32_t acemask4; 311 #define ACE4_READ_DATA 0x00000001 312 #define ACE4_LIST_DIRECTORY 0x00000001 313 #define ACE4_WRITE_DATA 0x00000002 314 #define ACE4_ADD_FILE 0x00000002 315 #define ACE4_APPEND_DATA 0x00000004 316 #define ACE4_ADD_SUBDIRECTORY 0x00000004 317 #define ACE4_READ_NAMED_ATTRS 0x00000008 318 #define ACE4_WRITE_NAMED_ATTRS 0x00000010 319 #define ACE4_EXECUTE 0x00000020 320 #define ACE4_DELETE_CHILD 0x00000040 321 #define ACE4_READ_ATTRIBUTES 0x00000080 322 #define ACE4_WRITE_ATTRIBUTES 0x00000100 323 #define ACE4_WRITE_RETENTION 0x00000200 324 #define ACE4_WRITE_RETENTION_HOLD 0x00000400 325 #define ACE4_DELETE 0x00010000 326 #define ACE4_READ_ACL 0x00020000 327 #define ACE4_WRITE_ACL 0x00040000 328 #define ACE4_WRITE_OWNER 0x00080000 329 #define ACE4_SYNCHRONIZE 0x00100000 330 #define ACE4_GENERIC_READ 0x00120081 331 #define ACE4_GENERIC_WRITE 0x00160106 332 #define ACE4_GENERIC_EXECUTE 0x001200A0 333 334 struct nfsace4 { 335 acetype4 type; 336 aceflag4 flag; 337 acemask4 access_mask; 338 utf8str_mixed who; 339 }; 340 typedef struct nfsace4 nfsace4; 341 342 typedef uint32_t aclflag4; 343 #define ACL4_AUTO_INHERIT 0x00000001 344 #define ACL4_PROTECTED 0x00000002 345 #define ACL4_DEFAULTED 0x00000004 346 347 struct nfsacl41 { 348 aclflag4 na41_flag; 349 struct { 350 uint_t na41_aces_len; 351 nfsace4 *na41_aces_val; 352 } na41_aces; 353 }; 354 typedef struct nfsacl41 nfsacl41; 355 #define MODE4_SUID 0x800 356 #define MODE4_SGID 0x400 357 #define MODE4_SVTX 0x200 358 #define MODE4_RUSR 0x100 359 #define MODE4_WUSR 0x080 360 #define MODE4_XUSR 0x040 361 #define MODE4_RGRP 0x020 362 #define MODE4_WGRP 0x010 363 #define MODE4_XGRP 0x008 364 #define MODE4_ROTH 0x004 365 #define MODE4_WOTH 0x002 366 #define MODE4_XOTH 0x001 367 368 struct mode_masked4 { 369 mode4 mm_value_to_set; 370 mode4 mm_mask_bits; 371 }; 372 typedef struct mode_masked4 mode_masked4; 373 374 struct specdata4 { 375 uint32_t specdata1; 376 uint32_t specdata2; 377 }; 378 typedef struct specdata4 specdata4; 379 #define FH4_PERSISTENT 0x00000000 380 #define FH4_NOEXPIRE_WITH_OPEN 0x00000001 381 #define FH4_VOLATILE_ANY 0x00000002 382 #define FH4_VOL_MIGRATION 0x00000004 383 #define FH4_VOL_RENAME 0x00000008 384 385 struct netaddr4 { 386 char *na_r_netid; 387 char *na_r_addr; 388 }; 389 typedef struct netaddr4 netaddr4; 390 391 struct nfs_impl_id4 { 392 utf8str_cis nii_domain; 393 utf8str_cs nii_name; 394 nfstime4 nii_date; 395 }; 396 typedef struct nfs_impl_id4 nfs_impl_id4; 397 398 struct stateid4 { 399 uint32_t seqid; 400 char other[12]; 401 }; 402 typedef struct stateid4 stateid4; 403 404 enum layouttype4 { 405 LAYOUT4_NFSV4_1_FILES = 0x1, 406 LAYOUT4_OSD2_OBJECTS = 0x2, 407 LAYOUT4_BLOCK_VOLUME = 0x3 408 }; 409 typedef enum layouttype4 layouttype4; 410 411 struct layout_content4 { 412 layouttype4 loc_type; 413 struct { 414 uint_t loc_body_len; 415 char *loc_body_val; 416 } loc_body; 417 }; 418 typedef struct layout_content4 layout_content4; 419 /* 420 * LAYOUT4_OSD2_OBJECTS loc_body description 421 * is in a separate .x file 422 */ 423 424 /* 425 * LAYOUT4_BLOCK_VOLUME loc_body description 426 * is in a separate .x file 427 */ 428 429 struct layouthint4 { 430 layouttype4 loh_type; 431 struct { 432 uint_t loh_body_len; 433 char *loh_body_val; 434 } loh_body; 435 }; 436 typedef struct layouthint4 layouthint4; 437 438 enum layoutiomode4 { 439 LAYOUTIOMODE4_READ = 1, 440 LAYOUTIOMODE4_RW = 2, 441 LAYOUTIOMODE4_ANY = 3 442 }; 443 typedef enum layoutiomode4 layoutiomode4; 444 445 struct layout4 { 446 offset4 lo_offset; 447 length4 lo_length; 448 layoutiomode4 lo_iomode; 449 layout_content4 lo_content; 450 }; 451 typedef struct layout4 layout4; 452 #define NFS4_DEVICEID4_SIZE 16 453 454 typedef char deviceid4[NFS4_DEVICEID4_SIZE]; 455 456 struct device_addr4 { 457 layouttype4 da_layout_type; 458 struct { 459 uint_t da_addr_body_len; 460 char *da_addr_body_val; 461 } da_addr_body; 462 }; 463 typedef struct device_addr4 device_addr4; 464 465 struct layoutupdate4 { 466 layouttype4 lou_type; 467 struct { 468 uint_t lou_body_len; 469 char *lou_body_val; 470 } lou_body; 471 }; 472 typedef struct layoutupdate4 layoutupdate4; 473 474 #define LAYOUT4_RET_REC_FILE 1 475 #define LAYOUT4_RET_REC_FSID 2 476 #define LAYOUT4_RET_REC_ALL 3 477 478 479 enum layoutreturn_type4 { 480 LAYOUTRETURN4_FILE = LAYOUT4_RET_REC_FILE, 481 LAYOUTRETURN4_FSID = LAYOUT4_RET_REC_FSID, 482 LAYOUTRETURN4_ALL = LAYOUT4_RET_REC_ALL 483 }; 484 typedef enum layoutreturn_type4 layoutreturn_type4; 485 /* layouttype4 specific data */ 486 487 struct layoutreturn_file4 { 488 offset4 lrf_offset; 489 length4 lrf_length; 490 stateid4 lrf_stateid; 491 struct { 492 uint_t lrf_body_len; 493 char *lrf_body_val; 494 } lrf_body; 495 }; 496 typedef struct layoutreturn_file4 layoutreturn_file4; 497 498 struct layoutreturn4 { 499 layoutreturn_type4 lr_returntype; 500 union { 501 layoutreturn_file4 lr_layout; 502 } layoutreturn4_u; 503 }; 504 typedef struct layoutreturn4 layoutreturn4; 505 506 507 enum fs4_status_type { 508 STATUS4_FIXED = 1, 509 STATUS4_UPDATED = 2, 510 STATUS4_VERSIONED = 3, 511 STATUS4_WRITABLE = 4, 512 STATUS4_REFERRAL = 5 513 }; 514 typedef enum fs4_status_type fs4_status_type; 515 516 struct fs4_status { 517 bool_t fss_absent; 518 fs4_status_type fss_type; 519 utf8str_cs fss_source; 520 utf8str_cs fss_current; 521 int32_t fss_age; 522 nfstime4 fss_version; 523 }; 524 typedef struct fs4_status fs4_status; 525 #define TH4_READ_SIZE 0 526 #define TH4_WRITE_SIZE 1 527 #define TH4_READ_IOSIZE 2 528 #define TH4_WRITE_IOSIZE 3 529 #define TH4_NUM_HINTS 4 530 531 typedef length4 threshold4_read_size; 532 533 typedef length4 threshold4_write_size; 534 535 typedef length4 threshold4_read_iosize; 536 537 typedef length4 threshold4_write_iosize; 538 539 struct threshold_item4 { 540 layouttype4 thi_layout_type; 541 bitmap4 thi_hintset; 542 struct { 543 uint_t thi_hintlist_len; 544 char *thi_hintlist_val; 545 } thi_hintlist; 546 }; 547 typedef struct threshold_item4 threshold_item4; 548 549 struct mdsthreshold4 { 550 struct { 551 uint_t mth_hints_len; 552 threshold_item4 *mth_hints_val; 553 } mth_hints; 554 }; 555 typedef struct mdsthreshold4 mdsthreshold4; 556 #define RET4_DURATION_INFINITE 0xffffffffffffffff 557 558 struct retention_get4 { 559 uint64_t rg_duration; 560 struct { 561 uint_t rg_begin_time_len; 562 nfstime4 *rg_begin_time_val; 563 } rg_begin_time; 564 }; 565 typedef struct retention_get4 retention_get4; 566 567 struct retention_set4 { 568 bool_t rs_enable; 569 struct { 570 uint_t rs_duration_len; 571 uint64_t *rs_duration_val; 572 } rs_duration; 573 }; 574 typedef struct retention_set4 retention_set4; 575 #define FSCHARSET_CAP4_CONTAINS_NON_UTF8 0x1 576 #define FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 0x2 577 578 typedef uint32_t fs_charset_cap4; 579 580 typedef bitmap4 fattr4_supported_attrs; 581 582 typedef bitmap4 fattr4_suppattr_exclcreat; 583 584 typedef nfs_ftype4 fattr4_type; 585 586 typedef uint32_t fattr4_fh_expire_type; 587 588 typedef changeid4 fattr4_change; 589 590 typedef uint64_t fattr4_size; 591 592 typedef bool_t fattr4_link_support; 593 594 typedef bool_t fattr4_symlink_support; 595 596 typedef bool_t fattr4_named_attr; 597 598 typedef fsid4 fattr4_fsid; 599 600 typedef bool_t fattr4_unique_handles; 601 602 typedef nfs_lease4 fattr4_lease_time; 603 604 typedef nfsstat4 fattr4_rdattr_error; 605 606 typedef struct { 607 uint_t fattr4_acl_len; 608 nfsace4 *fattr4_acl_val; 609 } fattr4_acl; 610 611 typedef uint32_t fattr4_aclsupport; 612 613 typedef bool_t fattr4_archive; 614 615 typedef bool_t fattr4_cansettime; 616 617 typedef bool_t fattr4_case_insensitive; 618 619 typedef bool_t fattr4_case_preserving; 620 621 typedef bool_t fattr4_chown_restricted; 622 623 typedef uint64_t fattr4_fileid; 624 625 typedef uint64_t fattr4_files_avail; 626 627 typedef nfs_fh4 fattr4_filehandle; 628 629 typedef uint64_t fattr4_files_free; 630 631 typedef uint64_t fattr4_files_total; 632 633 typedef fs_locations4 fattr4_fs_locations; 634 635 typedef bool_t fattr4_hidden; 636 637 typedef bool_t fattr4_homogeneous; 638 639 typedef uint64_t fattr4_maxfilesize; 640 641 typedef uint32_t fattr4_maxlink; 642 643 typedef uint32_t fattr4_maxname; 644 645 typedef uint64_t fattr4_maxread; 646 647 typedef uint64_t fattr4_maxwrite; 648 649 typedef utf8str_cs fattr4_mimetype; 650 651 typedef mode4 fattr4_mode; 652 653 typedef mode_masked4 fattr4_mode_set_masked; 654 655 typedef uint64_t fattr4_mounted_on_fileid; 656 657 typedef bool_t fattr4_no_trunc; 658 659 typedef uint32_t fattr4_numlinks; 660 661 typedef utf8str_mixed fattr4_owner; 662 663 typedef utf8str_mixed fattr4_owner_group; 664 665 typedef uint64_t fattr4_quota_avail_hard; 666 667 typedef uint64_t fattr4_quota_avail_soft; 668 669 typedef uint64_t fattr4_quota_used; 670 671 typedef specdata4 fattr4_rawdev; 672 673 typedef uint64_t fattr4_space_avail; 674 675 typedef uint64_t fattr4_space_free; 676 677 typedef uint64_t fattr4_space_total; 678 679 typedef uint64_t fattr4_space_used; 680 681 typedef bool_t fattr4_system; 682 683 typedef nfstime4 fattr4_time_access; 684 685 typedef settime4 fattr4_time_access_set; 686 687 typedef nfstime4 fattr4_time_backup; 688 689 typedef nfstime4 fattr4_time_create; 690 691 typedef nfstime4 fattr4_time_delta; 692 693 typedef nfstime4 fattr4_time_metadata; 694 695 typedef nfstime4 fattr4_time_modify; 696 697 typedef settime4 fattr4_time_modify_set; 698 699 typedef nfstime4 fattr4_dir_notif_delay; 700 701 typedef nfstime4 fattr4_dirent_notif_delay; 702 703 typedef bool_t fattr4_absent; 704 705 typedef struct { 706 uint_t fattr4_fs_layout_types_len; 707 layouttype4 *fattr4_fs_layout_types_val; 708 } fattr4_fs_layout_types; 709 710 typedef fs4_status fattr4_fs_status; 711 712 typedef fs_charset_cap4 fattr4_fs_charset_cap4; 713 714 typedef uint32_t fattr4_layout_alignment; 715 716 typedef uint32_t fattr4_layout_blksize; 717 718 typedef layouthint4 fattr4_layout_hint; 719 720 typedef struct { 721 uint_t fattr4_layout_types_len; 722 layouttype4 *fattr4_layout_types_val; 723 } fattr4_layout_types; 724 725 typedef mdsthreshold4 fattr4_mdsthreshold; 726 727 typedef retention_get4 fattr4_retention_get; 728 729 typedef retention_set4 fattr4_retention_set; 730 731 typedef retention_get4 fattr4_retentevt_get; 732 733 typedef retention_set4 fattr4_retentevt_set; 734 735 typedef uint64_t fattr4_retention_hold; 736 737 typedef nfsacl41 fattr4_dacl; 738 739 typedef nfsacl41 fattr4_sacl; 740 #define FATTR4_SUPPORTED_ATTRS 0 741 #define FATTR4_TYPE 1 742 #define FATTR4_FH_EXPIRE_TYPE 2 743 #define FATTR4_CHANGE 3 744 #define FATTR4_SIZE 4 745 #define FATTR4_LINK_SUPPORT 5 746 #define FATTR4_SYMLINK_SUPPORT 6 747 #define FATTR4_NAMED_ATTR 7 748 #define FATTR4_FSID 8 749 #define FATTR4_UNIQUE_HANDLES 9 750 #define FATTR4_LEASE_TIME 10 751 #define FATTR4_RDATTR_ERROR 11 752 #define FATTR4_FILEHANDLE 19 753 #define FATTR4_SUPPATTR_EXCLCREAT 75 754 #define FATTR4_ACL 12 755 #define FATTR4_ACLSUPPORT 13 756 #define FATTR4_ARCHIVE 14 757 #define FATTR4_CANSETTIME 15 758 #define FATTR4_CASE_INSENSITIVE 16 759 #define FATTR4_CASE_PRESERVING 17 760 #define FATTR4_CHOWN_RESTRICTED 18 761 #define FATTR4_FILEID 20 762 #define FATTR4_FILES_AVAIL 21 763 #define FATTR4_FILES_FREE 22 764 #define FATTR4_FILES_TOTAL 23 765 #define FATTR4_FS_LOCATIONS 24 766 #define FATTR4_HIDDEN 25 767 #define FATTR4_HOMOGENEOUS 26 768 #define FATTR4_MAXFILESIZE 27 769 #define FATTR4_MAXLINK 28 770 #define FATTR4_MAXNAME 29 771 #define FATTR4_MAXREAD 30 772 #define FATTR4_MAXWRITE 31 773 #define FATTR4_MIMETYPE 32 774 #define FATTR4_MODE 33 775 #define FATTR4_NO_TRUNC 34 776 #define FATTR4_NUMLINKS 35 777 #define FATTR4_OWNER 36 778 #define FATTR4_OWNER_GROUP 37 779 #define FATTR4_QUOTA_AVAIL_HARD 38 780 #define FATTR4_QUOTA_AVAIL_SOFT 39 781 #define FATTR4_QUOTA_USED 40 782 #define FATTR4_RAWDEV 41 783 #define FATTR4_SPACE_AVAIL 42 784 #define FATTR4_SPACE_FREE 43 785 #define FATTR4_SPACE_TOTAL 44 786 #define FATTR4_SPACE_USED 45 787 #define FATTR4_SYSTEM 46 788 #define FATTR4_TIME_ACCESS 47 789 #define FATTR4_TIME_ACCESS_SET 48 790 #define FATTR4_TIME_BACKUP 49 791 #define FATTR4_TIME_CREATE 50 792 #define FATTR4_TIME_DELTA 51 793 #define FATTR4_TIME_METADATA 52 794 #define FATTR4_TIME_MODIFY 53 795 #define FATTR4_TIME_MODIFY_SET 54 796 #define FATTR4_MOUNTED_ON_FILEID 55 797 #define FATTR4_DIR_NOTIF_DELAY 56 798 #define FATTR4_DIRENT_NOTIF_DELAY 57 799 #define FATTR4_DACL 58 800 #define FATTR4_SACL 59 801 #define FATTR4_CHANGE_POLICY 60 802 #define FATTR4_FS_STATUS 61 803 #define FATTR4_FS_LAYOUT_TYPE 62 804 #define FATTR4_LAYOUT_HINT 63 805 #define FATTR4_LAYOUT_TYPE 64 806 #define FATTR4_LAYOUT_BLKSIZE 65 807 #define FATTR4_LAYOUT_ALIGNMENT 66 808 #define FATTR4_FS_LOCATIONS_INFO 67 809 #define FATTR4_MDSTHRESHOLD 68 810 #define FATTR4_RETENTION_GET 69 811 #define FATTR4_RETENTION_SET 70 812 #define FATTR4_RETENTEVT_GET 71 813 #define FATTR4_RETENTEVT_SET 72 814 #define FATTR4_RETENTION_HOLD 73 815 #define FATTR4_MODE_SET_MASKED 74 816 #define FATTR4_SUPPATTR_EXCLCREAT 75 817 #define FATTR4_FS_CHARSET_CAP 76 818 819 struct fattr4 { 820 bitmap4 attrmask; 821 attrlist4 attr_vals; 822 }; 823 typedef struct fattr4 fattr4; 824 825 struct change_info4 { 826 bool_t atomic; 827 changeid4 before; 828 changeid4 after; 829 }; 830 typedef struct change_info4 change_info4; 831 832 typedef netaddr4 clientaddr4; 833 834 struct cb_client4 { 835 uint32_t cb_program; 836 netaddr4 cb_location; 837 }; 838 typedef struct cb_client4 cb_client4; 839 840 struct nfs_client_id4 { 841 verifier4 verifier; 842 struct { 843 uint_t id_len; 844 char *id_val; 845 } id; 846 }; 847 typedef struct nfs_client_id4 nfs_client_id4; 848 849 struct client_owner4 { 850 verifier4 co_verifier; 851 struct { 852 uint_t co_ownerid_len; 853 char *co_ownerid_val; 854 } co_ownerid; 855 }; 856 typedef struct client_owner4 client_owner4; 857 858 struct server_owner4 { 859 uint64_t so_minor_id; 860 struct { 861 uint_t so_major_id_len; 862 char *so_major_id_val; 863 } so_major_id; 864 }; 865 typedef struct server_owner4 server_owner4; 866 867 struct state_owner4 { 868 clientid4 clientid; 869 struct { 870 uint_t owner_len; 871 char *owner_val; 872 } owner; 873 }; 874 typedef struct state_owner4 state_owner4; 875 876 typedef state_owner4 open_owner4; 877 878 typedef state_owner4 lock_owner4; 879 880 enum nfs_lock_type4 { 881 READ_LT = 1, 882 WRITE_LT = 2, 883 READW_LT = 3, 884 WRITEW_LT = 4 885 }; 886 typedef enum nfs_lock_type4 nfs_lock_type4; 887 888 /* Input for computing subkeys */ 889 890 enum ssv_subkey4 { 891 SSV4_SUBKEY_MIC_I2T = 1, 892 SSV4_SUBKEY_MIC_T2I = 2, 893 SSV4_SUBKEY_SEAL_I2T = 3, 894 SSV4_SUBKEY_SEAL_T2I = 4 895 }; 896 typedef enum ssv_subkey4 ssv_subkey4; 897 898 899 /* Input for computing smt_hmac */ 900 901 struct ssv_mic_plain_tkn4 { 902 uint32_t smpt_ssv_seq; 903 struct { 904 uint_t smpt_orig_plain_len; 905 char *smpt_orig_plain_val; 906 } smpt_orig_plain; 907 }; 908 typedef struct ssv_mic_plain_tkn4 ssv_mic_plain_tkn4; 909 910 911 /* SSV GSS PerMsgToken token */ 912 913 struct ssv_mic_tkn4 { 914 uint32_t smt_ssv_seq; 915 struct { 916 uint_t smt_hmac_len; 917 char *smt_hmac_val; 918 } smt_hmac; 919 }; 920 typedef struct ssv_mic_tkn4 ssv_mic_tkn4; 921 922 923 /* Input for computing ssct_encr_data and ssct_hmac */ 924 925 struct ssv_seal_plain_tkn4 { 926 struct { 927 uint_t sspt_confounder_len; 928 char *sspt_confounder_val; 929 } sspt_confounder; 930 uint32_t sspt_ssv_seq; 931 struct { 932 uint_t sspt_orig_plain_len; 933 char *sspt_orig_plain_val; 934 } sspt_orig_plain; 935 struct { 936 uint_t sspt_pad_len; 937 char *sspt_pad_val; 938 } sspt_pad; 939 }; 940 typedef struct ssv_seal_plain_tkn4 ssv_seal_plain_tkn4; 941 942 943 /* SSV GSS SealedMessage token */ 944 945 struct ssv_seal_cipher_tkn4 { 946 uint32_t ssct_ssv_seq; 947 struct { 948 uint_t ssct_iv_len; 949 char *ssct_iv_val; 950 } ssct_iv; 951 struct { 952 uint_t ssct_encr_data_len; 953 char *ssct_encr_data_val; 954 } ssct_encr_data; 955 struct { 956 uint_t ssct_hmac_len; 957 char *ssct_hmac_val; 958 } ssct_hmac; 959 }; 960 typedef struct ssv_seal_cipher_tkn4 ssv_seal_cipher_tkn4; 961 962 963 struct fs_locations_server4 { 964 int32_t fls_currency; 965 struct { 966 uint_t fls_info_len; 967 char *fls_info_val; 968 } fls_info; 969 utf8str_cis fls_server; 970 }; 971 typedef struct fs_locations_server4 fs_locations_server4; 972 #define FSLI4BX_GFLAGS 0 973 #define FSLI4BX_TFLAGS 1 974 #define FSLI4BX_CLSIMUL 2 975 #define FSLI4BX_CLHANDLE 3 976 #define FSLI4BX_CLFILEID 4 977 #define FSLI4BX_CLWRITEVER 5 978 #define FSLI4BX_CLCHANGE 6 979 #define FSLI4BX_CLREADDIR 7 980 #define FSLI4BX_READRANK 8 981 #define FSLI4BX_WRITERANK 9 982 #define FSLI4BX_READORDER 10 983 #define FSLI4BX_WRITEORDER 11 984 #define FSLI4GF_WRITABLE 0x01 985 #define FSLI4GF_CUR_REQ 0x02 986 #define FSLI4GF_ABSENT 0x04 987 #define FSLI4GF_GOING 0x08 988 #define FSLI4GF_SPLIT 0x10 989 #define FSLI4TF_RDMA 0x01 990 991 struct fs_locations_item4 { 992 struct { 993 uint_t fli_entries_len; 994 fs_locations_server4 *fli_entries_val; 995 } fli_entries; 996 pathname4 fli_rootpath; 997 }; 998 typedef struct fs_locations_item4 fs_locations_item4; 999 1000 struct fs_locations_info4 { 1001 uint32_t fli_flags; 1002 int32_t fli_valid_for; 1003 pathname4 fli_fs_root; 1004 struct { 1005 uint_t fli_items_len; 1006 fs_locations_item4 *fli_items_val; 1007 } fli_items; 1008 }; 1009 typedef struct fs_locations_info4 fs_locations_info4; 1010 #define FSLI4IF_VAR_SUB 0x00000001 1011 1012 typedef fs_locations_info4 fattr4_fs_locations_info; 1013 #define NFL4_UFLG_MASK 0x0000003F 1014 #define NFL4_UFLG_DENSE 0x00000001 1015 #define NFL4_UFLG_COMMIT_THRU_MDS 0x00000002 1016 #define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK 0xFFFFFFC0 1017 1018 typedef uint32_t nfl_util4; 1019 1020 1021 enum filelayout_hint_care4 { 1022 NFLH4_CARE_DENSE = NFL4_UFLG_DENSE, 1023 NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS, 1024 NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040, 1025 NFLH4_CARE_STRIPE_COUNT = 0x00000080 1026 }; 1027 typedef enum filelayout_hint_care4 filelayout_hint_care4; 1028 1029 /* Encoded in the loh_body field of type layouthint4: */ 1030 1031 1032 struct nfsv4_1_file_layouthint4 { 1033 uint32_t nflh_care; 1034 nfl_util4 nflh_util; 1035 count4 nflh_stripe_count; 1036 }; 1037 typedef struct nfsv4_1_file_layouthint4 nfsv4_1_file_layouthint4; 1038 1039 1040 1041 typedef struct { 1042 uint_t multipath_list4_len; 1043 netaddr4 *multipath_list4_val; 1044 } multipath_list4; 1045 1046 /* Encoded in the da_addr_body field of type device_addr4: */ 1047 1048 struct nfsv4_1_file_layout_ds_addr4 { 1049 struct { 1050 uint_t nflda_stripe_indices_len; 1051 uint32_t *nflda_stripe_indices_val; 1052 } nflda_stripe_indices; 1053 struct { 1054 uint_t nflda_multipath_ds_list_len; 1055 multipath_list4 *nflda_multipath_ds_list_val; 1056 } nflda_multipath_ds_list; 1057 }; 1058 typedef struct nfsv4_1_file_layout_ds_addr4 nfsv4_1_file_layout_ds_addr4; 1059 1060 1061 /* Encoded in the loc_body field of type layout_content4: */ 1062 1063 struct nfsv4_1_file_layout4 { 1064 deviceid4 nfl_deviceid; 1065 nfl_util4 nfl_util; 1066 uint32_t nfl_first_stripe_index; 1067 offset4 nfl_pattern_offset; 1068 struct { 1069 uint_t nfl_fh_list_len; 1070 nfs_fh4 *nfl_fh_list_val; 1071 } nfl_fh_list; 1072 }; 1073 typedef struct nfsv4_1_file_layout4 nfsv4_1_file_layout4; 1074 1075 /* 1076 * Encoded in the lou_body field of type layoutupdate4: 1077 * Nothing. lou_body is a zero length array of octets. 1078 */ 1079 1080 #define ACCESS4_READ 0x00000001 1081 #define ACCESS4_LOOKUP 0x00000002 1082 #define ACCESS4_MODIFY 0x00000004 1083 #define ACCESS4_EXTEND 0x00000008 1084 #define ACCESS4_DELETE 0x00000010 1085 #define ACCESS4_EXECUTE 0x00000020 1086 1087 struct ACCESS4args { 1088 uint32_t access; 1089 }; 1090 typedef struct ACCESS4args ACCESS4args; 1091 1092 struct ACCESS4resok { 1093 uint32_t supported; 1094 uint32_t access; 1095 }; 1096 typedef struct ACCESS4resok ACCESS4resok; 1097 1098 struct ACCESS4res { 1099 nfsstat4 status; 1100 union { 1101 ACCESS4resok resok4; 1102 } ACCESS4res_u; 1103 }; 1104 typedef struct ACCESS4res ACCESS4res; 1105 1106 struct CLOSE4args { 1107 seqid4 seqid; 1108 stateid4 open_stateid; 1109 }; 1110 typedef struct CLOSE4args CLOSE4args; 1111 1112 struct CLOSE4res { 1113 nfsstat4 status; 1114 union { 1115 stateid4 open_stateid; 1116 } CLOSE4res_u; 1117 }; 1118 typedef struct CLOSE4res CLOSE4res; 1119 1120 struct COMMIT4args { 1121 offset4 offset; 1122 count4 count; 1123 }; 1124 typedef struct COMMIT4args COMMIT4args; 1125 1126 struct COMMIT4resok { 1127 verifier4 writeverf; 1128 }; 1129 typedef struct COMMIT4resok COMMIT4resok; 1130 1131 struct COMMIT4res { 1132 nfsstat4 status; 1133 union { 1134 COMMIT4resok resok4; 1135 } COMMIT4res_u; 1136 }; 1137 typedef struct COMMIT4res COMMIT4res; 1138 1139 struct createtype4 { 1140 nfs_ftype4 type; 1141 union { 1142 linktext4 linkdata; 1143 specdata4 devdata; 1144 } createtype4_u; 1145 }; 1146 typedef struct createtype4 createtype4; 1147 1148 struct CREATE4args { 1149 createtype4 objtype; 1150 component4 objname; 1151 fattr4 createattrs; 1152 }; 1153 typedef struct CREATE4args CREATE4args; 1154 1155 struct CREATE4resok { 1156 change_info4 cinfo; 1157 bitmap4 attrset; 1158 }; 1159 typedef struct CREATE4resok CREATE4resok; 1160 1161 struct CREATE4res { 1162 nfsstat4 status; 1163 union { 1164 CREATE4resok resok4; 1165 } CREATE4res_u; 1166 }; 1167 typedef struct CREATE4res CREATE4res; 1168 1169 struct DELEGPURGE4args { 1170 clientid4 clientid; 1171 }; 1172 typedef struct DELEGPURGE4args DELEGPURGE4args; 1173 1174 struct DELEGPURGE4res { 1175 nfsstat4 status; 1176 }; 1177 typedef struct DELEGPURGE4res DELEGPURGE4res; 1178 1179 struct DELEGRETURN4args { 1180 stateid4 deleg_stateid; 1181 }; 1182 typedef struct DELEGRETURN4args DELEGRETURN4args; 1183 1184 struct DELEGRETURN4res { 1185 nfsstat4 status; 1186 }; 1187 typedef struct DELEGRETURN4res DELEGRETURN4res; 1188 1189 struct GETATTR4args { 1190 bitmap4 attr_request; 1191 }; 1192 typedef struct GETATTR4args GETATTR4args; 1193 1194 struct GETATTR4resok { 1195 fattr4 obj_attributes; 1196 }; 1197 typedef struct GETATTR4resok GETATTR4resok; 1198 1199 struct GETATTR4res { 1200 nfsstat4 status; 1201 union { 1202 GETATTR4resok resok4; 1203 } GETATTR4res_u; 1204 }; 1205 typedef struct GETATTR4res GETATTR4res; 1206 1207 struct GETFH4resok { 1208 nfs_fh4 object; 1209 }; 1210 typedef struct GETFH4resok GETFH4resok; 1211 1212 struct GETFH4res { 1213 nfsstat4 status; 1214 union { 1215 GETFH4resok resok4; 1216 } GETFH4res_u; 1217 }; 1218 typedef struct GETFH4res GETFH4res; 1219 1220 struct LINK4args { 1221 component4 newname; 1222 }; 1223 typedef struct LINK4args LINK4args; 1224 1225 struct LINK4resok { 1226 change_info4 cinfo; 1227 }; 1228 typedef struct LINK4resok LINK4resok; 1229 1230 struct LINK4res { 1231 nfsstat4 status; 1232 union { 1233 LINK4resok resok4; 1234 } LINK4res_u; 1235 }; 1236 typedef struct LINK4res LINK4res; 1237 1238 struct open_to_lock_owner4 { 1239 seqid4 open_seqid; 1240 stateid4 open_stateid; 1241 seqid4 lock_seqid; 1242 lock_owner4 lock_owner; 1243 }; 1244 typedef struct open_to_lock_owner4 open_to_lock_owner4; 1245 1246 struct exist_lock_owner4 { 1247 stateid4 lock_stateid; 1248 seqid4 lock_seqid; 1249 }; 1250 typedef struct exist_lock_owner4 exist_lock_owner4; 1251 1252 struct locker4 { 1253 bool_t new_lock_owner; 1254 union { 1255 open_to_lock_owner4 open_owner; 1256 exist_lock_owner4 lock_owner; 1257 } locker4_u; 1258 }; 1259 typedef struct locker4 locker4; 1260 1261 struct LOCK4args { 1262 nfs_lock_type4 locktype; 1263 bool_t reclaim; 1264 offset4 offset; 1265 length4 length; 1266 locker4 locker; 1267 }; 1268 typedef struct LOCK4args LOCK4args; 1269 1270 struct LOCK4denied { 1271 offset4 offset; 1272 length4 length; 1273 nfs_lock_type4 locktype; 1274 lock_owner4 owner; 1275 }; 1276 typedef struct LOCK4denied LOCK4denied; 1277 1278 struct LOCK4resok { 1279 stateid4 lock_stateid; 1280 }; 1281 typedef struct LOCK4resok LOCK4resok; 1282 1283 struct LOCK4res { 1284 nfsstat4 status; 1285 union { 1286 LOCK4resok resok4; 1287 LOCK4denied denied; 1288 } LOCK4res_u; 1289 }; 1290 typedef struct LOCK4res LOCK4res; 1291 1292 struct LOCKT4args { 1293 nfs_lock_type4 locktype; 1294 offset4 offset; 1295 length4 length; 1296 lock_owner4 owner; 1297 }; 1298 typedef struct LOCKT4args LOCKT4args; 1299 1300 struct LOCKT4res { 1301 nfsstat4 status; 1302 union { 1303 LOCK4denied denied; 1304 } LOCKT4res_u; 1305 }; 1306 typedef struct LOCKT4res LOCKT4res; 1307 1308 struct LOCKU4args { 1309 nfs_lock_type4 locktype; 1310 seqid4 seqid; 1311 stateid4 lock_stateid; 1312 offset4 offset; 1313 length4 length; 1314 }; 1315 typedef struct LOCKU4args LOCKU4args; 1316 1317 struct LOCKU4res { 1318 nfsstat4 status; 1319 union { 1320 stateid4 lock_stateid; 1321 } LOCKU4res_u; 1322 }; 1323 typedef struct LOCKU4res LOCKU4res; 1324 1325 struct LOOKUP4args { 1326 component4 objname; 1327 }; 1328 typedef struct LOOKUP4args LOOKUP4args; 1329 1330 struct LOOKUP4res { 1331 nfsstat4 status; 1332 }; 1333 typedef struct LOOKUP4res LOOKUP4res; 1334 1335 struct LOOKUPP4res { 1336 nfsstat4 status; 1337 }; 1338 typedef struct LOOKUPP4res LOOKUPP4res; 1339 1340 struct NVERIFY4args { 1341 fattr4 obj_attributes; 1342 }; 1343 typedef struct NVERIFY4args NVERIFY4args; 1344 1345 struct NVERIFY4res { 1346 nfsstat4 status; 1347 }; 1348 typedef struct NVERIFY4res NVERIFY4res; 1349 1350 enum createmode4 { 1351 UNCHECKED4 = 0, 1352 GUARDED4 = 1, 1353 EXCLUSIVE4 = 2, 1354 EXCLUSIVE4_1 = 3 1355 }; 1356 typedef enum createmode4 createmode4; 1357 1358 struct creatverfattr { 1359 verifier4 cva_verf; 1360 fattr4 cva_attrs; 1361 }; 1362 typedef struct creatverfattr creatverfattr; 1363 1364 struct createhow4 { 1365 createmode4 mode; 1366 union { 1367 fattr4 createattrs; 1368 verifier4 createverf; 1369 creatverfattr ch_createboth; 1370 } createhow4_u; 1371 }; 1372 typedef struct createhow4 createhow4; 1373 1374 enum opentype4 { 1375 OPEN4_NOCREATE = 0, 1376 OPEN4_CREATE = 1 1377 }; 1378 typedef enum opentype4 opentype4; 1379 1380 struct openflag4 { 1381 opentype4 opentype; 1382 union { 1383 createhow4 how; 1384 } openflag4_u; 1385 }; 1386 typedef struct openflag4 openflag4; 1387 1388 enum limit_by4 { 1389 NFS_LIMIT_SIZE = 1, 1390 NFS_LIMIT_BLOCKS = 2 1391 }; 1392 typedef enum limit_by4 limit_by4; 1393 1394 struct nfs_modified_limit4 { 1395 uint32_t num_blocks; 1396 uint32_t bytes_per_block; 1397 }; 1398 typedef struct nfs_modified_limit4 nfs_modified_limit4; 1399 1400 struct nfs_space_limit4 { 1401 limit_by4 limitby; 1402 union { 1403 uint64_t filesize; 1404 nfs_modified_limit4 mod_blocks; 1405 } nfs_space_limit4_u; 1406 }; 1407 typedef struct nfs_space_limit4 nfs_space_limit4; 1408 #define OPEN4_SHARE_ACCESS_READ 0x00000001 1409 #define OPEN4_SHARE_ACCESS_WRITE 0x00000002 1410 #define OPEN4_SHARE_ACCESS_BOTH 0x00000003 1411 #define OPEN4_SHARE_DENY_NONE 0x00000000 1412 #define OPEN4_SHARE_DENY_READ 0x00000001 1413 #define OPEN4_SHARE_DENY_WRITE 0x00000002 1414 #define OPEN4_SHARE_DENY_BOTH 0x00000003 1415 #define OPEN4_SHARE_ACCESS_WANT_DELEG_MASK 0xFF00 1416 #define OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE 0x0000 1417 #define OPEN4_SHARE_ACCESS_WANT_READ_DELEG 0x0100 1418 #define OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG 0x0200 1419 #define OPEN4_SHARE_ACCESS_WANT_ANY_DELEG 0x0300 1420 #define OPEN4_SHARE_ACCESS_WANT_NO_DELEG 0x0400 1421 #define OPEN4_SHARE_ACCESS_WANT_CANCEL 0x0500 1422 #define OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000 1423 #define OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED 0x20000 1424 1425 enum open_delegation_type4 { 1426 OPEN_DELEGATE_NONE = 0, 1427 OPEN_DELEGATE_READ = 1, 1428 OPEN_DELEGATE_WRITE = 2, 1429 OPEN_DELEGATE_NONE_EXT = 3 1430 }; 1431 typedef enum open_delegation_type4 open_delegation_type4; 1432 1433 enum open_claim_type4 { 1434 CLAIM_NULL = 0, 1435 CLAIM_PREVIOUS = 1, 1436 CLAIM_DELEGATE_CUR = 2, 1437 CLAIM_DELEGATE_PREV = 3, 1438 CLAIM_FH = 4, 1439 CLAIM_DELEG_CUR_FH = 5, 1440 CLAIM_DELEG_PREV_FH = 6 1441 }; 1442 typedef enum open_claim_type4 open_claim_type4; 1443 1444 struct open_claim_delegate_cur4 { 1445 stateid4 delegate_stateid; 1446 component4 file; 1447 }; 1448 typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4; 1449 1450 struct open_claim4 { 1451 open_claim_type4 claim; 1452 union { 1453 component4 file; 1454 open_delegation_type4 delegate_type; 1455 open_claim_delegate_cur4 delegate_cur_info; 1456 component4 file_delegate_prev; 1457 stateid4 oc_delegate_stateid; 1458 } open_claim4_u; 1459 }; 1460 typedef struct open_claim4 open_claim4; 1461 1462 struct OPEN4args { 1463 seqid4 seqid; 1464 uint32_t share_access; 1465 uint32_t share_deny; 1466 open_owner4 owner; 1467 openflag4 openhow; 1468 open_claim4 claim; 1469 }; 1470 typedef struct OPEN4args OPEN4args; 1471 1472 struct open_read_delegation4 { 1473 stateid4 stateid; 1474 bool_t recall; 1475 nfsace4 permissions; 1476 }; 1477 typedef struct open_read_delegation4 open_read_delegation4; 1478 1479 struct open_write_delegation4 { 1480 stateid4 stateid; 1481 bool_t recall; 1482 nfs_space_limit4 space_limit; 1483 nfsace4 permissions; 1484 }; 1485 typedef struct open_write_delegation4 open_write_delegation4; 1486 1487 enum why_no_delegation4 { 1488 WND4_NOT_WANTED = 0, 1489 WND4_CONTENTION = 1, 1490 WND4_RESOURCE = 2, 1491 WND4_NOT_SUPP_FTYPE = 3, 1492 WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, 1493 WND4_NOT_SUPP_UPGRADE = 5, 1494 WND4_NOT_SUPP_DOWNGRADE = 6, 1495 WND4_CANCELED = 7, 1496 WND4_IS_DIR = 8 1497 }; 1498 typedef enum why_no_delegation4 why_no_delegation4; 1499 1500 struct open_none_delegation4 { 1501 why_no_delegation4 ond_why; 1502 union { 1503 bool_t ond_server_will_push_deleg; 1504 bool_t ond_server_will_signal_avail; 1505 } open_none_delegation4_u; 1506 }; 1507 typedef struct open_none_delegation4 open_none_delegation4; 1508 1509 struct open_delegation4 { 1510 open_delegation_type4 delegation_type; 1511 union { 1512 open_read_delegation4 read; 1513 open_write_delegation4 write; 1514 open_none_delegation4 od_whynone; 1515 } open_delegation4_u; 1516 }; 1517 typedef struct open_delegation4 open_delegation4; 1518 #define OPEN4_RESULT_CONFIRM 0x00000002 1519 #define OPEN4_RESULT_LOCKTYPE_POSIX 0x00000004 1520 #define OPEN4_RESULT_PRESERVE_UNLINKED 0x00000008 1521 #define OPEN4_RESULT_MAY_NOTIFY_LOCK 0x00000020 1522 1523 struct OPEN4resok { 1524 stateid4 stateid; 1525 change_info4 cinfo; 1526 uint32_t rflags; 1527 bitmap4 attrset; 1528 open_delegation4 delegation; 1529 }; 1530 typedef struct OPEN4resok OPEN4resok; 1531 1532 struct OPEN4res { 1533 nfsstat4 status; 1534 union { 1535 OPEN4resok resok4; 1536 } OPEN4res_u; 1537 }; 1538 typedef struct OPEN4res OPEN4res; 1539 1540 struct OPENATTR4args { 1541 bool_t createdir; 1542 }; 1543 typedef struct OPENATTR4args OPENATTR4args; 1544 1545 struct OPENATTR4res { 1546 nfsstat4 status; 1547 }; 1548 typedef struct OPENATTR4res OPENATTR4res; 1549 1550 struct OPEN_CONFIRM4args { 1551 stateid4 open_stateid; 1552 seqid4 seqid; 1553 }; 1554 typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args; 1555 1556 struct OPEN_CONFIRM4resok { 1557 stateid4 open_stateid; 1558 }; 1559 typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok; 1560 1561 struct OPEN_CONFIRM4res { 1562 nfsstat4 status; 1563 union { 1564 OPEN_CONFIRM4resok resok4; 1565 } OPEN_CONFIRM4res_u; 1566 }; 1567 typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res; 1568 1569 struct OPEN_DOWNGRADE4args { 1570 stateid4 open_stateid; 1571 seqid4 seqid; 1572 uint32_t share_access; 1573 uint32_t share_deny; 1574 }; 1575 typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args; 1576 1577 struct OPEN_DOWNGRADE4resok { 1578 stateid4 open_stateid; 1579 }; 1580 typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok; 1581 1582 struct OPEN_DOWNGRADE4res { 1583 nfsstat4 status; 1584 union { 1585 OPEN_DOWNGRADE4resok resok4; 1586 } OPEN_DOWNGRADE4res_u; 1587 }; 1588 typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res; 1589 1590 struct PUTFH4args { 1591 nfs_fh4 object; 1592 }; 1593 typedef struct PUTFH4args PUTFH4args; 1594 1595 struct PUTFH4res { 1596 nfsstat4 status; 1597 }; 1598 typedef struct PUTFH4res PUTFH4res; 1599 1600 struct PUTPUBFH4res { 1601 nfsstat4 status; 1602 }; 1603 typedef struct PUTPUBFH4res PUTPUBFH4res; 1604 1605 struct PUTROOTFH4res { 1606 nfsstat4 status; 1607 }; 1608 typedef struct PUTROOTFH4res PUTROOTFH4res; 1609 1610 struct READ4args { 1611 stateid4 stateid; 1612 offset4 offset; 1613 count4 count; 1614 }; 1615 typedef struct READ4args READ4args; 1616 1617 struct READ4resok { 1618 bool_t eof; 1619 struct { 1620 uint_t data_len; 1621 char *data_val; 1622 } data; 1623 }; 1624 typedef struct READ4resok READ4resok; 1625 1626 struct READ4res { 1627 nfsstat4 status; 1628 union { 1629 READ4resok resok4; 1630 } READ4res_u; 1631 }; 1632 typedef struct READ4res READ4res; 1633 1634 struct READDIR4args { 1635 nfs_cookie4 cookie; 1636 verifier4 cookieverf; 1637 count4 dircount; 1638 count4 maxcount; 1639 bitmap4 attr_request; 1640 }; 1641 typedef struct READDIR4args READDIR4args; 1642 1643 struct entry4 { 1644 nfs_cookie4 cookie; 1645 component4 name; 1646 fattr4 attrs; 1647 struct entry4 *nextentry; 1648 }; 1649 typedef struct entry4 entry4; 1650 1651 struct dirlist4 { 1652 entry4 *entries; 1653 bool_t eof; 1654 }; 1655 typedef struct dirlist4 dirlist4; 1656 1657 struct READDIR4resok { 1658 verifier4 cookieverf; 1659 dirlist4 reply; 1660 }; 1661 typedef struct READDIR4resok READDIR4resok; 1662 1663 struct READDIR4res { 1664 nfsstat4 status; 1665 union { 1666 READDIR4resok resok4; 1667 } READDIR4res_u; 1668 }; 1669 typedef struct READDIR4res READDIR4res; 1670 1671 struct READLINK4resok { 1672 linktext4 link; 1673 }; 1674 typedef struct READLINK4resok READLINK4resok; 1675 1676 struct READLINK4res { 1677 nfsstat4 status; 1678 union { 1679 READLINK4resok resok4; 1680 } READLINK4res_u; 1681 }; 1682 typedef struct READLINK4res READLINK4res; 1683 1684 struct REMOVE4args { 1685 component4 target; 1686 }; 1687 typedef struct REMOVE4args REMOVE4args; 1688 1689 struct REMOVE4resok { 1690 change_info4 cinfo; 1691 }; 1692 typedef struct REMOVE4resok REMOVE4resok; 1693 1694 struct REMOVE4res { 1695 nfsstat4 status; 1696 union { 1697 REMOVE4resok resok4; 1698 } REMOVE4res_u; 1699 }; 1700 typedef struct REMOVE4res REMOVE4res; 1701 1702 struct RENAME4args { 1703 component4 oldname; 1704 component4 newname; 1705 }; 1706 typedef struct RENAME4args RENAME4args; 1707 1708 struct RENAME4resok { 1709 change_info4 source_cinfo; 1710 change_info4 target_cinfo; 1711 }; 1712 typedef struct RENAME4resok RENAME4resok; 1713 1714 struct RENAME4res { 1715 nfsstat4 status; 1716 union { 1717 RENAME4resok resok4; 1718 } RENAME4res_u; 1719 }; 1720 typedef struct RENAME4res RENAME4res; 1721 1722 struct RENEW4args { 1723 clientid4 clientid; 1724 }; 1725 typedef struct RENEW4args RENEW4args; 1726 1727 struct RENEW4res { 1728 nfsstat4 status; 1729 }; 1730 typedef struct RENEW4res RENEW4res; 1731 1732 struct RESTOREFH4res { 1733 nfsstat4 status; 1734 }; 1735 typedef struct RESTOREFH4res RESTOREFH4res; 1736 1737 struct SAVEFH4res { 1738 nfsstat4 status; 1739 }; 1740 typedef struct SAVEFH4res SAVEFH4res; 1741 1742 struct SECINFO4args { 1743 component4 name; 1744 }; 1745 typedef struct SECINFO4args SECINFO4args; 1746 1747 enum rpc_gss_svc_t { 1748 RPC_GSS_SVC_NONE = 1, 1749 RPC_GSS_SVC_INTEGRITY = 2, 1750 RPC_GSS_SVC_PRIVACY = 3 1751 }; 1752 typedef enum rpc_gss_svc_t rpc_gss_svc_t; 1753 1754 struct rpcsec_gss_info { 1755 sec_oid4 oid; 1756 qop4 qop; 1757 rpc_gss_svc_t service; 1758 }; 1759 typedef struct rpcsec_gss_info rpcsec_gss_info; 1760 1761 struct secinfo4 { 1762 uint32_t flavor; 1763 union { 1764 rpcsec_gss_info flavor_info; 1765 } secinfo4_u; 1766 }; 1767 typedef struct secinfo4 secinfo4; 1768 1769 typedef struct { 1770 uint_t SECINFO4resok_len; 1771 secinfo4 *SECINFO4resok_val; 1772 } SECINFO4resok; 1773 1774 struct SECINFO4res { 1775 nfsstat4 status; 1776 union { 1777 SECINFO4resok resok4; 1778 } SECINFO4res_u; 1779 }; 1780 typedef struct SECINFO4res SECINFO4res; 1781 1782 struct SETATTR4args { 1783 stateid4 stateid; 1784 fattr4 obj_attributes; 1785 }; 1786 typedef struct SETATTR4args SETATTR4args; 1787 1788 struct SETATTR4res { 1789 nfsstat4 status; 1790 bitmap4 attrsset; 1791 }; 1792 typedef struct SETATTR4res SETATTR4res; 1793 1794 struct SETCLIENTID4args { 1795 nfs_client_id4 client; 1796 cb_client4 callback; 1797 uint32_t callback_ident; 1798 }; 1799 typedef struct SETCLIENTID4args SETCLIENTID4args; 1800 1801 struct SETCLIENTID4resok { 1802 clientid4 clientid; 1803 verifier4 setclientid_confirm; 1804 }; 1805 typedef struct SETCLIENTID4resok SETCLIENTID4resok; 1806 1807 struct SETCLIENTID4res { 1808 nfsstat4 status; 1809 union { 1810 SETCLIENTID4resok resok4; 1811 clientaddr4 client_using; 1812 } SETCLIENTID4res_u; 1813 }; 1814 typedef struct SETCLIENTID4res SETCLIENTID4res; 1815 1816 struct SETCLIENTID_CONFIRM4args { 1817 clientid4 clientid; 1818 verifier4 setclientid_confirm; 1819 }; 1820 typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args; 1821 1822 struct SETCLIENTID_CONFIRM4res { 1823 nfsstat4 status; 1824 }; 1825 typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res; 1826 1827 struct VERIFY4args { 1828 fattr4 obj_attributes; 1829 }; 1830 typedef struct VERIFY4args VERIFY4args; 1831 1832 struct VERIFY4res { 1833 nfsstat4 status; 1834 }; 1835 typedef struct VERIFY4res VERIFY4res; 1836 1837 enum stable_how4 { 1838 UNSTABLE4 = 0, 1839 DATA_SYNC4 = 1, 1840 FILE_SYNC4 = 2 1841 }; 1842 typedef enum stable_how4 stable_how4; 1843 1844 struct WRITE4args { 1845 stateid4 stateid; 1846 offset4 offset; 1847 stable_how4 stable; 1848 struct { 1849 uint_t data_len; 1850 char *data_val; 1851 } data; 1852 }; 1853 typedef struct WRITE4args WRITE4args; 1854 1855 struct WRITE4resok { 1856 count4 count; 1857 stable_how4 committed; 1858 verifier4 writeverf; 1859 }; 1860 typedef struct WRITE4resok WRITE4resok; 1861 1862 struct WRITE4res { 1863 nfsstat4 status; 1864 union { 1865 WRITE4resok resok4; 1866 } WRITE4res_u; 1867 }; 1868 typedef struct WRITE4res WRITE4res; 1869 1870 struct RELEASE_LOCKOWNER4args { 1871 lock_owner4 lock_owner; 1872 }; 1873 typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args; 1874 1875 struct RELEASE_LOCKOWNER4res { 1876 nfsstat4 status; 1877 }; 1878 typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res; 1879 1880 struct ILLEGAL4res { 1881 nfsstat4 status; 1882 }; 1883 typedef struct ILLEGAL4res ILLEGAL4res; 1884 1885 typedef struct { 1886 uint_t gsshandle4_t_len; 1887 char *gsshandle4_t_val; 1888 } gsshandle4_t; 1889 1890 struct gss_cb_handles4 { 1891 rpc_gss_svc_t gcbp_service; 1892 gsshandle4_t gcbp_handle_from_server; 1893 gsshandle4_t gcbp_handle_from_client; 1894 }; 1895 typedef struct gss_cb_handles4 gss_cb_handles4; 1896 1897 struct callback_sec_parms4 { 1898 uint32_t cb_secflavor; 1899 union { 1900 authsys_parms cbsp_sys_cred; 1901 gss_cb_handles4 cbsp_gss_handles; 1902 } callback_sec_parms4_u; 1903 }; 1904 typedef struct callback_sec_parms4 callback_sec_parms4; 1905 1906 struct BACKCHANNEL_CTL4args { 1907 uint32_t bca_cb_program; 1908 struct { 1909 uint_t bca_sec_parms_len; 1910 callback_sec_parms4 *bca_sec_parms_val; 1911 } bca_sec_parms; 1912 }; 1913 typedef struct BACKCHANNEL_CTL4args BACKCHANNEL_CTL4args; 1914 1915 struct BACKCHANNEL_CTL4res { 1916 nfsstat4 bcr_status; 1917 }; 1918 typedef struct BACKCHANNEL_CTL4res BACKCHANNEL_CTL4res; 1919 1920 enum channel_dir_from_client4 { 1921 CDFC4_FORE = 0x1, 1922 CDFC4_BACK = 0x2, 1923 CDFC4_FORE_OR_BOTH = 0x3, 1924 CDFC4_BACK_OR_BOTH = 0x7 1925 }; 1926 typedef enum channel_dir_from_client4 channel_dir_from_client4; 1927 1928 struct BIND_CONN_TO_SESSION4args { 1929 sessionid4 bctsa_sessid; 1930 channel_dir_from_client4 bctsa_dir; 1931 bool_t bctsa_use_conn_in_rdma_mode; 1932 }; 1933 typedef struct BIND_CONN_TO_SESSION4args BIND_CONN_TO_SESSION4args; 1934 1935 enum channel_dir_from_server4 { 1936 CDFS4_FORE = 0x1, 1937 CDFS4_BACK = 0x2, 1938 CDFS4_BOTH = 0x3 1939 }; 1940 typedef enum channel_dir_from_server4 channel_dir_from_server4; 1941 1942 struct BIND_CONN_TO_SESSION4resok { 1943 sessionid4 bctsr_sessid; 1944 channel_dir_from_server4 bctsr_dir; 1945 bool_t bctsr_use_conn_in_rdma_mode; 1946 }; 1947 typedef struct BIND_CONN_TO_SESSION4resok BIND_CONN_TO_SESSION4resok; 1948 1949 struct BIND_CONN_TO_SESSION4res { 1950 nfsstat4 bctsr_status; 1951 union { 1952 BIND_CONN_TO_SESSION4resok bctsr_resok4; 1953 } BIND_CONN_TO_SESSION4res_u; 1954 }; 1955 typedef struct BIND_CONN_TO_SESSION4res BIND_CONN_TO_SESSION4res; 1956 #define EXCHGID4_FLAG_SUPP_MOVED_REFER 0x00000001 1957 #define EXCHGID4_FLAG_SUPP_MOVED_MIGR 0x00000002 1958 #define EXCHGID4_FLAG_BIND_PRINC_STATEID 0x00000100 1959 #define EXCHGID4_FLAG_USE_NON_PNFS 0x00010000 1960 #define EXCHGID4_FLAG_USE_PNFS_MDS 0x00020000 1961 #define EXCHGID4_FLAG_USE_PNFS_DS 0x00040000 1962 #define EXCHGID4_FLAG_MASK_PNFS 0x00070000 1963 #define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000 1964 #define EXCHGID4_FLAG_CONFIRMED_R 0x80000000 1965 1966 struct state_protect_ops4 { 1967 bitmap4 spo_must_enforce; 1968 bitmap4 spo_must_allow; 1969 }; 1970 typedef struct state_protect_ops4 state_protect_ops4; 1971 1972 struct ssv_sp_parms4 { 1973 state_protect_ops4 ssp_ops; 1974 struct { 1975 uint_t ssp_hash_algs_len; 1976 sec_oid4 *ssp_hash_algs_val; 1977 } ssp_hash_algs; 1978 struct { 1979 uint_t ssp_encr_algs_len; 1980 sec_oid4 *ssp_encr_algs_val; 1981 } ssp_encr_algs; 1982 uint32_t ssp_window; 1983 uint32_t ssp_num_gss_handles; 1984 }; 1985 typedef struct ssv_sp_parms4 ssv_sp_parms4; 1986 1987 enum state_protect_how4 { 1988 SP4_NONE = 0, 1989 SP4_MACH_CRED = 1, 1990 SP4_SSV = 2 1991 }; 1992 typedef enum state_protect_how4 state_protect_how4; 1993 1994 struct state_protect4_a { 1995 state_protect_how4 spa_how; 1996 union { 1997 state_protect_ops4 spa_mach_ops; 1998 ssv_sp_parms4 spa_ssv_parms; 1999 } state_protect4_a_u; 2000 }; 2001 typedef struct state_protect4_a state_protect4_a; 2002 2003 struct EXCHANGE_ID4args { 2004 client_owner4 eia_clientowner; 2005 uint32_t eia_flags; 2006 state_protect4_a eia_state_protect; 2007 struct { 2008 uint_t eia_client_impl_id_len; 2009 nfs_impl_id4 *eia_client_impl_id_val; 2010 } eia_client_impl_id; 2011 }; 2012 typedef struct EXCHANGE_ID4args EXCHANGE_ID4args; 2013 2014 struct ssv_prot_info4 { 2015 state_protect_ops4 spi_ops; 2016 uint32_t spi_hash_alg; 2017 uint32_t spi_encr_alg; 2018 uint32_t spi_ssv_len; 2019 uint32_t spi_window; 2020 struct { 2021 uint_t spi_handles_len; 2022 gsshandle4_t *spi_handles_val; 2023 } spi_handles; 2024 }; 2025 typedef struct ssv_prot_info4 ssv_prot_info4; 2026 2027 struct state_protect4_r { 2028 state_protect_how4 spr_how; 2029 union { 2030 state_protect_ops4 spr_mach_ops; 2031 ssv_prot_info4 spr_ssv_info; 2032 } state_protect4_r_u; 2033 }; 2034 typedef struct state_protect4_r state_protect4_r; 2035 2036 struct EXCHANGE_ID4resok { 2037 clientid4 eir_clientid; 2038 sequenceid4 eir_sequenceid; 2039 uint32_t eir_flags; 2040 state_protect4_r eir_state_protect; 2041 server_owner4 eir_server_owner; 2042 struct { 2043 uint_t eir_server_scope_len; 2044 char *eir_server_scope_val; 2045 } eir_server_scope; 2046 struct { 2047 uint_t eir_server_impl_id_len; 2048 nfs_impl_id4 *eir_server_impl_id_val; 2049 } eir_server_impl_id; 2050 }; 2051 typedef struct EXCHANGE_ID4resok EXCHANGE_ID4resok; 2052 2053 struct EXCHANGE_ID4res { 2054 nfsstat4 eir_status; 2055 union { 2056 EXCHANGE_ID4resok eir_resok4; 2057 } EXCHANGE_ID4res_u; 2058 }; 2059 typedef struct EXCHANGE_ID4res EXCHANGE_ID4res; 2060 2061 struct channel_attrs4 { 2062 count4 ca_headerpadsize; 2063 count4 ca_maxrequestsize; 2064 count4 ca_maxresponsesize; 2065 count4 ca_maxresponsesize_cached; 2066 count4 ca_maxoperations; 2067 count4 ca_maxrequests; 2068 struct { 2069 uint_t ca_rdma_ird_len; 2070 uint32_t *ca_rdma_ird_val; 2071 } ca_rdma_ird; 2072 }; 2073 typedef struct channel_attrs4 channel_attrs4; 2074 #define CREATE_SESSION4_FLAG_PERSIST 0x00000001 2075 #define CREATE_SESSION4_FLAG_CONN_BACK_CHAN 0x00000002 2076 #define CREATE_SESSION4_FLAG_CONN_RDMA 0x00000004 2077 2078 struct CREATE_SESSION4args { 2079 clientid4 csa_clientid; 2080 sequenceid4 csa_sequence; 2081 uint32_t csa_flags; 2082 channel_attrs4 csa_fore_chan_attrs; 2083 channel_attrs4 csa_back_chan_attrs; 2084 uint32_t csa_cb_program; 2085 struct { 2086 uint_t csa_sec_parms_len; 2087 callback_sec_parms4 *csa_sec_parms_val; 2088 } csa_sec_parms; 2089 }; 2090 typedef struct CREATE_SESSION4args CREATE_SESSION4args; 2091 2092 struct CREATE_SESSION4resok { 2093 sessionid4 csr_sessionid; 2094 sequenceid4 csr_sequence; 2095 uint32_t csr_flags; 2096 channel_attrs4 csr_fore_chan_attrs; 2097 channel_attrs4 csr_back_chan_attrs; 2098 }; 2099 typedef struct CREATE_SESSION4resok CREATE_SESSION4resok; 2100 2101 struct CREATE_SESSION4res { 2102 nfsstat4 csr_status; 2103 union { 2104 CREATE_SESSION4resok csr_resok4; 2105 } CREATE_SESSION4res_u; 2106 }; 2107 typedef struct CREATE_SESSION4res CREATE_SESSION4res; 2108 2109 struct DESTROY_SESSION4args { 2110 sessionid4 dsa_sessionid; 2111 }; 2112 typedef struct DESTROY_SESSION4args DESTROY_SESSION4args; 2113 2114 struct DESTROY_SESSION4res { 2115 nfsstat4 dsr_status; 2116 }; 2117 typedef struct DESTROY_SESSION4res DESTROY_SESSION4res; 2118 2119 struct FREE_STATEID4args { 2120 stateid4 fsa_stateid; 2121 }; 2122 typedef struct FREE_STATEID4args FREE_STATEID4args; 2123 2124 struct FREE_STATEID4res { 2125 nfsstat4 fsr_status; 2126 }; 2127 typedef struct FREE_STATEID4res FREE_STATEID4res; 2128 2129 typedef nfstime4 attr_notice4; 2130 2131 struct GET_DIR_DELEGATION4args { 2132 bool_t gdda_signal_deleg_avail; 2133 bitmap4 gdda_notification_types; 2134 attr_notice4 gdda_child_attr_delay; 2135 attr_notice4 gdda_dir_attr_delay; 2136 bitmap4 gdda_child_attributes; 2137 bitmap4 gdda_dir_attributes; 2138 }; 2139 typedef struct GET_DIR_DELEGATION4args GET_DIR_DELEGATION4args; 2140 2141 struct GET_DIR_DELEGATION4resok { 2142 verifier4 gddr_cookieverf; 2143 stateid4 gddr_stateid; 2144 bitmap4 gddr_notification; 2145 bitmap4 gddr_child_attributes; 2146 bitmap4 gddr_dir_attributes; 2147 }; 2148 typedef struct GET_DIR_DELEGATION4resok GET_DIR_DELEGATION4resok; 2149 2150 enum gddrnf4_status { 2151 GDD4_OK = 0, 2152 GDD4_UNAVAIL = 1 2153 }; 2154 typedef enum gddrnf4_status gddrnf4_status; 2155 2156 struct GET_DIR_DELEGATION4res_non_fatal { 2157 gddrnf4_status gddrnf_status; 2158 union { 2159 GET_DIR_DELEGATION4resok gddrnf_resok4; 2160 bool_t gddrnf_will_signal_deleg_avail; 2161 } GET_DIR_DELEGATION4res_non_fatal_u; 2162 }; 2163 typedef struct GET_DIR_DELEGATION4res_non_fatal 2164 GET_DIR_DELEGATION4res_non_fatal; 2165 2166 struct GET_DIR_DELEGATION4res { 2167 nfsstat4 gddr_status; 2168 union { 2169 GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; 2170 } GET_DIR_DELEGATION4res_u; 2171 }; 2172 typedef struct GET_DIR_DELEGATION4res GET_DIR_DELEGATION4res; 2173 2174 struct GETDEVICEINFO4args { 2175 deviceid4 gdia_device_id; 2176 layouttype4 gdia_layout_type; 2177 count4 gdia_maxcount; 2178 bitmap4 gdia_notify_types; 2179 }; 2180 typedef struct GETDEVICEINFO4args GETDEVICEINFO4args; 2181 2182 struct GETDEVICEINFO4resok { 2183 device_addr4 gdir_device_addr; 2184 bitmap4 gdir_notification; 2185 }; 2186 typedef struct GETDEVICEINFO4resok GETDEVICEINFO4resok; 2187 2188 struct GETDEVICEINFO4res { 2189 nfsstat4 gdir_status; 2190 union { 2191 GETDEVICEINFO4resok gdir_resok4; 2192 count4 gdir_mincount; 2193 } GETDEVICEINFO4res_u; 2194 }; 2195 typedef struct GETDEVICEINFO4res GETDEVICEINFO4res; 2196 2197 struct GETDEVICELIST4args { 2198 layouttype4 gdla_layout_type; 2199 count4 gdla_maxdevices; 2200 nfs_cookie4 gdla_cookie; 2201 verifier4 gdla_cookieverf; 2202 }; 2203 typedef struct GETDEVICELIST4args GETDEVICELIST4args; 2204 2205 struct GETDEVICELIST4resok { 2206 nfs_cookie4 gdlr_cookie; 2207 verifier4 gdlr_cookieverf; 2208 struct { 2209 uint_t gdlr_deviceid_list_len; 2210 deviceid4 *gdlr_deviceid_list_val; 2211 } gdlr_deviceid_list; 2212 bool_t gdlr_eof; 2213 }; 2214 typedef struct GETDEVICELIST4resok GETDEVICELIST4resok; 2215 2216 struct GETDEVICELIST4res { 2217 nfsstat4 gdlr_status; 2218 union { 2219 GETDEVICELIST4resok gdlr_resok4; 2220 } GETDEVICELIST4res_u; 2221 }; 2222 typedef struct GETDEVICELIST4res GETDEVICELIST4res; 2223 2224 struct newtime4 { 2225 bool_t nt_timechanged; 2226 union { 2227 nfstime4 nt_time; 2228 } newtime4_u; 2229 }; 2230 typedef struct newtime4 newtime4; 2231 2232 struct newoffset4 { 2233 bool_t no_newoffset; 2234 union { 2235 offset4 no_offset; 2236 } newoffset4_u; 2237 }; 2238 typedef struct newoffset4 newoffset4; 2239 2240 struct LAYOUTCOMMIT4args { 2241 offset4 loca_offset; 2242 length4 loca_length; 2243 bool_t loca_reclaim; 2244 stateid4 loca_stateid; 2245 newoffset4 loca_last_write_offset; 2246 newtime4 loca_time_modify; 2247 layoutupdate4 loca_layoutupdate; 2248 }; 2249 typedef struct LAYOUTCOMMIT4args LAYOUTCOMMIT4args; 2250 2251 struct newsize4 { 2252 bool_t ns_sizechanged; 2253 union { 2254 length4 ns_size; 2255 } newsize4_u; 2256 }; 2257 typedef struct newsize4 newsize4; 2258 2259 struct LAYOUTCOMMIT4resok { 2260 newsize4 locr_newsize; 2261 }; 2262 typedef struct LAYOUTCOMMIT4resok LAYOUTCOMMIT4resok; 2263 2264 struct LAYOUTCOMMIT4res { 2265 nfsstat4 locr_status; 2266 union { 2267 LAYOUTCOMMIT4resok locr_resok4; 2268 } LAYOUTCOMMIT4res_u; 2269 }; 2270 typedef struct LAYOUTCOMMIT4res LAYOUTCOMMIT4res; 2271 2272 struct LAYOUTGET4args { 2273 bool_t loga_signal_layout_avail; 2274 layouttype4 loga_layout_type; 2275 layoutiomode4 loga_iomode; 2276 offset4 loga_offset; 2277 length4 loga_length; 2278 length4 loga_minlength; 2279 stateid4 loga_stateid; 2280 count4 loga_maxcount; 2281 }; 2282 typedef struct LAYOUTGET4args LAYOUTGET4args; 2283 2284 struct LAYOUTGET4resok { 2285 bool_t logr_return_on_close; 2286 stateid4 logr_stateid; 2287 struct { 2288 uint_t logr_layout_len; 2289 layout4 *logr_layout_val; 2290 } logr_layout; 2291 }; 2292 typedef struct LAYOUTGET4resok LAYOUTGET4resok; 2293 2294 struct LAYOUTGET4res { 2295 nfsstat4 logr_status; 2296 union { 2297 LAYOUTGET4resok logr_resok4; 2298 bool_t logr_will_signal_layout_avail; 2299 } LAYOUTGET4res_u; 2300 }; 2301 typedef struct LAYOUTGET4res LAYOUTGET4res; 2302 2303 struct LAYOUTRETURN4args { 2304 bool_t lora_reclaim; 2305 layouttype4 lora_layout_type; 2306 layoutiomode4 lora_iomode; 2307 layoutreturn4 lora_layoutreturn; 2308 }; 2309 typedef struct LAYOUTRETURN4args LAYOUTRETURN4args; 2310 2311 struct layoutreturn_stateid { 2312 bool_t lrs_present; 2313 union { 2314 stateid4 lrs_stateid; 2315 } layoutreturn_stateid_u; 2316 }; 2317 typedef struct layoutreturn_stateid layoutreturn_stateid; 2318 2319 struct LAYOUTRETURN4res { 2320 nfsstat4 lorr_status; 2321 union { 2322 layoutreturn_stateid lorr_stateid; 2323 } LAYOUTRETURN4res_u; 2324 }; 2325 typedef struct LAYOUTRETURN4res LAYOUTRETURN4res; 2326 2327 enum secinfo_style4 { 2328 SECINFO_STYLE4_CURRENT_FH = 0, 2329 SECINFO_STYLE4_PARENT = 1 2330 }; 2331 typedef enum secinfo_style4 secinfo_style4; 2332 2333 typedef secinfo_style4 SECINFO_NO_NAME4args; 2334 2335 typedef SECINFO4res SECINFO_NO_NAME4res; 2336 2337 struct SEQUENCE4args { 2338 sessionid4 sa_sessionid; 2339 sequenceid4 sa_sequenceid; 2340 slotid4 sa_slotid; 2341 slotid4 sa_highest_slotid; 2342 bool_t sa_cachethis; 2343 }; 2344 typedef struct SEQUENCE4args SEQUENCE4args; 2345 #define SEQ4_STATUS_CB_PATH_DOWN 0x00000001 2346 #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002 2347 #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED 0x00000004 2348 #define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED 0x00000008 2349 #define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED 0x00000010 2350 #define SEQ4_STATUS_ADMIN_STATE_REVOKED 0x00000020 2351 #define SEQ4_STATUS_RECALLABLE_STATE_REVOKED 0x00000040 2352 #define SEQ4_STATUS_LEASE_MOVED 0x00000080 2353 #define SEQ4_STATUS_RESTART_RECLAIM_NEEDED 0x00000100 2354 #define SEQ4_STATUS_CB_PATH_DOWN_SESSION 0x00000200 2355 #define SEQ4_STATUS_BACKCHANNEL_FAULT 0x00000400 2356 #define SEQ4_STATUS_DEVID_CHANGED 0x00000800 2357 #define SEQ4_STATUS_DEVID_DELETED 0x00001000 2358 2359 struct SEQUENCE4resok { 2360 sessionid4 sr_sessionid; 2361 sequenceid4 sr_sequenceid; 2362 slotid4 sr_slotid; 2363 slotid4 sr_highest_slotid; 2364 slotid4 sr_target_highest_slotid; 2365 uint32_t sr_status_flags; 2366 }; 2367 typedef struct SEQUENCE4resok SEQUENCE4resok; 2368 2369 struct SEQUENCE4res { 2370 nfsstat4 sr_status; 2371 union { 2372 SEQUENCE4resok sr_resok4; 2373 } SEQUENCE4res_u; 2374 }; 2375 typedef struct SEQUENCE4res SEQUENCE4res; 2376 2377 struct ssa_digest_input4 { 2378 SEQUENCE4args sdi_seqargs; 2379 }; 2380 typedef struct ssa_digest_input4 ssa_digest_input4; 2381 2382 struct SET_SSV4args { 2383 struct { 2384 uint_t ssa_ssv_len; 2385 char *ssa_ssv_val; 2386 } ssa_ssv; 2387 struct { 2388 uint_t ssa_digest_len; 2389 char *ssa_digest_val; 2390 } ssa_digest; 2391 }; 2392 typedef struct SET_SSV4args SET_SSV4args; 2393 2394 struct ssr_digest_input4 { 2395 SEQUENCE4res sdi_seqres; 2396 }; 2397 typedef struct ssr_digest_input4 ssr_digest_input4; 2398 2399 struct SET_SSV4resok { 2400 struct { 2401 uint_t ssr_digest_len; 2402 char *ssr_digest_val; 2403 } ssr_digest; 2404 }; 2405 typedef struct SET_SSV4resok SET_SSV4resok; 2406 2407 struct SET_SSV4res { 2408 nfsstat4 ssr_status; 2409 union { 2410 SET_SSV4resok ssr_resok4; 2411 } SET_SSV4res_u; 2412 }; 2413 typedef struct SET_SSV4res SET_SSV4res; 2414 2415 struct TEST_STATEID4args { 2416 struct { 2417 uint_t ts_stateids_len; 2418 stateid4 *ts_stateids_val; 2419 } ts_stateids; 2420 }; 2421 typedef struct TEST_STATEID4args TEST_STATEID4args; 2422 2423 struct TEST_STATEID4resok { 2424 struct { 2425 uint_t tsr_status_codes_len; 2426 nfsstat4 *tsr_status_codes_val; 2427 } tsr_status_codes; 2428 }; 2429 typedef struct TEST_STATEID4resok TEST_STATEID4resok; 2430 2431 struct TEST_STATEID4res { 2432 nfsstat4 tsr_status; 2433 union { 2434 TEST_STATEID4resok tsr_resok4; 2435 } TEST_STATEID4res_u; 2436 }; 2437 typedef struct TEST_STATEID4res TEST_STATEID4res; 2438 2439 struct deleg_claim4 { 2440 open_claim_type4 dc_claim; 2441 union { 2442 open_delegation_type4 dc_delegate_type; 2443 } deleg_claim4_u; 2444 }; 2445 typedef struct deleg_claim4 deleg_claim4; 2446 2447 struct WANT_DELEGATION4args { 2448 uint32_t wda_want; 2449 deleg_claim4 wda_claim; 2450 }; 2451 typedef struct WANT_DELEGATION4args WANT_DELEGATION4args; 2452 2453 struct WANT_DELEGATION4res { 2454 nfsstat4 wdr_status; 2455 union { 2456 open_delegation4 wdr_resok4; 2457 } WANT_DELEGATION4res_u; 2458 }; 2459 typedef struct WANT_DELEGATION4res WANT_DELEGATION4res; 2460 2461 struct DESTROY_CLIENTID4args { 2462 clientid4 dca_clientid; 2463 }; 2464 typedef struct DESTROY_CLIENTID4args DESTROY_CLIENTID4args; 2465 2466 struct DESTROY_CLIENTID4res { 2467 nfsstat4 dcr_status; 2468 }; 2469 typedef struct DESTROY_CLIENTID4res DESTROY_CLIENTID4res; 2470 2471 struct RECLAIM_COMPLETE4args { 2472 bool_t rca_one_fs; 2473 }; 2474 typedef struct RECLAIM_COMPLETE4args RECLAIM_COMPLETE4args; 2475 2476 struct RECLAIM_COMPLETE4res { 2477 nfsstat4 rcr_status; 2478 }; 2479 typedef struct RECLAIM_COMPLETE4res RECLAIM_COMPLETE4res; 2480 2481 /* new operations for NFSv4.1 */ 2482 2483 2484 enum nfs_opnum4 { 2485 OP_ACCESS = 3, 2486 OP_CLOSE = 4, 2487 OP_COMMIT = 5, 2488 OP_CREATE = 6, 2489 OP_DELEGPURGE = 7, 2490 OP_DELEGRETURN = 8, 2491 OP_GETATTR = 9, 2492 OP_GETFH = 10, 2493 OP_LINK = 11, 2494 OP_LOCK = 12, 2495 OP_LOCKT = 13, 2496 OP_LOCKU = 14, 2497 OP_LOOKUP = 15, 2498 OP_LOOKUPP = 16, 2499 OP_NVERIFY = 17, 2500 OP_OPEN = 18, 2501 OP_OPENATTR = 19, 2502 OP_OPEN_CONFIRM = 20, 2503 OP_OPEN_DOWNGRADE = 21, 2504 OP_PUTFH = 22, 2505 OP_PUTPUBFH = 23, 2506 OP_PUTROOTFH = 24, 2507 OP_READ = 25, 2508 OP_READDIR = 26, 2509 OP_READLINK = 27, 2510 OP_REMOVE = 28, 2511 OP_RENAME = 29, 2512 OP_RENEW = 30, 2513 OP_RESTOREFH = 31, 2514 OP_SAVEFH = 32, 2515 OP_SECINFO = 33, 2516 OP_SETATTR = 34, 2517 OP_SETCLIENTID = 35, 2518 OP_SETCLIENTID_CONFIRM = 36, 2519 OP_VERIFY = 37, 2520 OP_WRITE = 38, 2521 OP_RELEASE_LOCKOWNER = 39, 2522 OP_BACKCHANNEL_CTL = 40, 2523 OP_BIND_CONN_TO_SESSION = 41, 2524 OP_EXCHANGE_ID = 42, 2525 OP_CREATE_SESSION = 43, 2526 OP_DESTROY_SESSION = 44, 2527 OP_FREE_STATEID = 45, 2528 OP_GET_DIR_DELEGATION = 46, 2529 OP_GETDEVICEINFO = 47, 2530 OP_GETDEVICELIST = 48, 2531 OP_LAYOUTCOMMIT = 49, 2532 OP_LAYOUTGET = 50, 2533 OP_LAYOUTRETURN = 51, 2534 OP_SECINFO_NO_NAME = 52, 2535 OP_SEQUENCE = 53, 2536 OP_SET_SSV = 54, 2537 OP_TEST_STATEID = 55, 2538 OP_WANT_DELEGATION = 56, 2539 OP_DESTROY_CLIENTID = 57, 2540 OP_RECLAIM_COMPLETE = 58, 2541 OP_ILLEGAL = 10044 2542 }; 2543 typedef enum nfs_opnum4 nfs_opnum4; 2544 2545 struct nfs_argop4 { 2546 nfs_opnum4 argop; 2547 union { 2548 ACCESS4args opaccess; 2549 CLOSE4args opclose; 2550 COMMIT4args opcommit; 2551 CREATE4args opcreate; 2552 DELEGPURGE4args opdelegpurge; 2553 DELEGRETURN4args opdelegreturn; 2554 GETATTR4args opgetattr; 2555 LINK4args oplink; 2556 LOCK4args oplock; 2557 LOCKT4args oplockt; 2558 LOCKU4args oplocku; 2559 LOOKUP4args oplookup; 2560 NVERIFY4args opnverify; 2561 OPEN4args opopen; 2562 OPENATTR4args opopenattr; 2563 OPEN_CONFIRM4args opopen_confirm; 2564 OPEN_DOWNGRADE4args opopen_downgrade; 2565 PUTFH4args opputfh; 2566 READ4args opread; 2567 READDIR4args opreaddir; 2568 REMOVE4args opremove; 2569 RENAME4args oprename; 2570 RENEW4args oprenew; 2571 SECINFO4args opsecinfo; 2572 SETATTR4args opsetattr; 2573 SETCLIENTID4args opsetclientid; 2574 SETCLIENTID_CONFIRM4args opsetclientid_confirm; 2575 VERIFY4args opverify; 2576 WRITE4args opwrite; 2577 RELEASE_LOCKOWNER4args oprelease_lockowner; 2578 BACKCHANNEL_CTL4args opbackchannel_ctl; 2579 BIND_CONN_TO_SESSION4args opbind_conn_to_session; 2580 EXCHANGE_ID4args opexchange_id; 2581 CREATE_SESSION4args opcreate_session; 2582 DESTROY_SESSION4args opdestroy_session; 2583 FREE_STATEID4args opfree_stateid; 2584 GET_DIR_DELEGATION4args opget_dir_delegation; 2585 GETDEVICEINFO4args opgetdeviceinfo; 2586 GETDEVICELIST4args opgetdevicelist; 2587 LAYOUTCOMMIT4args oplayoutcommit; 2588 LAYOUTGET4args oplayoutget; 2589 LAYOUTRETURN4args oplayoutreturn; 2590 SECINFO_NO_NAME4args opsecinfo_no_name; 2591 SEQUENCE4args opsequence; 2592 SET_SSV4args opset_ssv; 2593 TEST_STATEID4args optest_stateid; 2594 WANT_DELEGATION4args opwant_delegation; 2595 DESTROY_CLIENTID4args opdestroy_clientid; 2596 RECLAIM_COMPLETE4args opreclaim_complete; 2597 } nfs_argop4_u; 2598 }; 2599 typedef struct nfs_argop4 nfs_argop4; 2600 2601 struct nfs_resop4 { 2602 nfs_opnum4 resop; 2603 union { 2604 ACCESS4res opaccess; 2605 CLOSE4res opclose; 2606 COMMIT4res opcommit; 2607 CREATE4res opcreate; 2608 DELEGPURGE4res opdelegpurge; 2609 DELEGRETURN4res opdelegreturn; 2610 GETATTR4res opgetattr; 2611 GETFH4res opgetfh; 2612 LINK4res oplink; 2613 LOCK4res oplock; 2614 LOCKT4res oplockt; 2615 LOCKU4res oplocku; 2616 LOOKUP4res oplookup; 2617 LOOKUPP4res oplookupp; 2618 NVERIFY4res opnverify; 2619 OPEN4res opopen; 2620 OPENATTR4res opopenattr; 2621 OPEN_CONFIRM4res opopen_confirm; 2622 OPEN_DOWNGRADE4res opopen_downgrade; 2623 PUTFH4res opputfh; 2624 PUTPUBFH4res opputpubfh; 2625 PUTROOTFH4res opputrootfh; 2626 READ4res opread; 2627 READDIR4res opreaddir; 2628 READLINK4res opreadlink; 2629 REMOVE4res opremove; 2630 RENAME4res oprename; 2631 RENEW4res oprenew; 2632 RESTOREFH4res oprestorefh; 2633 SAVEFH4res opsavefh; 2634 SECINFO4res opsecinfo; 2635 SETATTR4res opsetattr; 2636 SETCLIENTID4res opsetclientid; 2637 SETCLIENTID_CONFIRM4res opsetclientid_confirm; 2638 VERIFY4res opverify; 2639 WRITE4res opwrite; 2640 RELEASE_LOCKOWNER4res oprelease_lockowner; 2641 BACKCHANNEL_CTL4res opbackchannel_ctl; 2642 BIND_CONN_TO_SESSION4res opbind_conn_to_session; 2643 EXCHANGE_ID4res opexchange_id; 2644 CREATE_SESSION4res opcreate_session; 2645 DESTROY_SESSION4res opdestroy_session; 2646 FREE_STATEID4res opfree_stateid; 2647 GET_DIR_DELEGATION4res opget_dir_delegation; 2648 GETDEVICEINFO4res opgetdeviceinfo; 2649 GETDEVICELIST4res opgetdevicelist; 2650 LAYOUTCOMMIT4res oplayoutcommit; 2651 LAYOUTGET4res oplayoutget; 2652 LAYOUTRETURN4res oplayoutreturn; 2653 SECINFO_NO_NAME4res opsecinfo_no_name; 2654 SEQUENCE4res opsequence; 2655 SET_SSV4res opset_ssv; 2656 TEST_STATEID4res optest_stateid; 2657 WANT_DELEGATION4res opwant_delegation; 2658 DESTROY_CLIENTID4res opdestroy_clientid; 2659 RECLAIM_COMPLETE4res opreclaim_complete; 2660 ILLEGAL4res opillegal; 2661 } nfs_resop4_u; 2662 }; 2663 typedef struct nfs_resop4 nfs_resop4; 2664 2665 struct COMPOUND4args { 2666 utf8str_cs tag; 2667 uint32_t minorversion; 2668 struct { 2669 uint_t argarray_len; 2670 nfs_argop4 *argarray_val; 2671 } argarray; 2672 }; 2673 typedef struct COMPOUND4args COMPOUND4args; 2674 2675 struct COMPOUND4res { 2676 nfsstat4 status; 2677 utf8str_cs tag; 2678 struct { 2679 uint_t resarray_len; 2680 nfs_resop4 *resarray_val; 2681 } resarray; 2682 }; 2683 typedef struct COMPOUND4res COMPOUND4res; 2684 2685 struct CB_GETATTR4args { 2686 nfs_fh4 fh; 2687 bitmap4 attr_request; 2688 }; 2689 typedef struct CB_GETATTR4args CB_GETATTR4args; 2690 2691 struct CB_GETATTR4resok { 2692 fattr4 obj_attributes; 2693 }; 2694 typedef struct CB_GETATTR4resok CB_GETATTR4resok; 2695 2696 struct CB_GETATTR4res { 2697 nfsstat4 status; 2698 union { 2699 CB_GETATTR4resok resok4; 2700 } CB_GETATTR4res_u; 2701 }; 2702 typedef struct CB_GETATTR4res CB_GETATTR4res; 2703 2704 struct CB_RECALL4args { 2705 stateid4 stateid; 2706 bool_t truncate; 2707 nfs_fh4 fh; 2708 }; 2709 typedef struct CB_RECALL4args CB_RECALL4args; 2710 2711 struct CB_RECALL4res { 2712 nfsstat4 status; 2713 }; 2714 typedef struct CB_RECALL4res CB_RECALL4res; 2715 2716 struct CB_ILLEGAL4res { 2717 nfsstat4 status; 2718 }; 2719 typedef struct CB_ILLEGAL4res CB_ILLEGAL4res; 2720 2721 enum layoutrecall_type4 { 2722 LAYOUTRECALL4_FILE = LAYOUT4_RET_REC_FILE, 2723 LAYOUTRECALL4_FSID = LAYOUT4_RET_REC_FSID, 2724 LAYOUTRECALL4_ALL = LAYOUT4_RET_REC_ALL 2725 }; 2726 typedef enum layoutrecall_type4 layoutrecall_type4; 2727 2728 struct layoutrecall_file4 { 2729 nfs_fh4 lor_fh; 2730 offset4 lor_offset; 2731 length4 lor_length; 2732 stateid4 lor_stateid; 2733 }; 2734 typedef struct layoutrecall_file4 layoutrecall_file4; 2735 2736 struct layoutrecall4 { 2737 layoutrecall_type4 lor_recalltype; 2738 union { 2739 layoutrecall_file4 lor_layout; 2740 fsid4 lor_fsid; 2741 } layoutrecall4_u; 2742 }; 2743 typedef struct layoutrecall4 layoutrecall4; 2744 2745 struct CB_LAYOUTRECALL4args { 2746 layouttype4 clora_type; 2747 layoutiomode4 clora_iomode; 2748 bool_t clora_changed; 2749 layoutrecall4 clora_recall; 2750 }; 2751 typedef struct CB_LAYOUTRECALL4args CB_LAYOUTRECALL4args; 2752 2753 struct CB_LAYOUTRECALL4res { 2754 nfsstat4 clorr_status; 2755 }; 2756 typedef struct CB_LAYOUTRECALL4res CB_LAYOUTRECALL4res; 2757 2758 enum notify_type4 { 2759 NOTIFY4_CHANGE_CHILD_ATTRS = 0, 2760 NOTIFY4_CHANGE_DIR_ATTRS = 1, 2761 NOTIFY4_REMOVE_ENTRY = 2, 2762 NOTIFY4_ADD_ENTRY = 3, 2763 NOTIFY4_RENAME_ENTRY = 4, 2764 NOTIFY4_CHANGE_COOKIE_VERIFIER = 5 2765 }; 2766 typedef enum notify_type4 notify_type4; 2767 2768 struct notify_entry4 { 2769 component4 ne_file; 2770 fattr4 ne_attrs; 2771 }; 2772 typedef struct notify_entry4 notify_entry4; 2773 2774 struct prev_entry4 { 2775 notify_entry4 pe_prev_entry; 2776 nfs_cookie4 pe_prev_entry_cookie; 2777 }; 2778 typedef struct prev_entry4 prev_entry4; 2779 2780 struct notify_remove4 { 2781 notify_entry4 nrm_old_entry; 2782 nfs_cookie4 nrm_old_entry_cookie; 2783 }; 2784 typedef struct notify_remove4 notify_remove4; 2785 2786 struct notify_add4 { 2787 struct { 2788 uint_t nad_old_entry_len; 2789 notify_remove4 *nad_old_entry_val; 2790 } nad_old_entry; 2791 notify_entry4 nad_new_entry; 2792 struct { 2793 uint_t nad_new_entry_cookie_len; 2794 nfs_cookie4 *nad_new_entry_cookie_val; 2795 } nad_new_entry_cookie; 2796 struct { 2797 uint_t nad_prev_entry_len; 2798 prev_entry4 *nad_prev_entry_val; 2799 } nad_prev_entry; 2800 bool_t nad_last_entry; 2801 }; 2802 typedef struct notify_add4 notify_add4; 2803 2804 struct notify_attr4 { 2805 notify_entry4 na_changed_entry; 2806 }; 2807 typedef struct notify_attr4 notify_attr4; 2808 2809 struct notify_rename4 { 2810 notify_remove4 nrn_old_entry; 2811 notify_add4 nrn_new_entry; 2812 }; 2813 typedef struct notify_rename4 notify_rename4; 2814 2815 struct notify_verifier4 { 2816 verifier4 nv_old_cookieverf; 2817 verifier4 nv_new_cookieverf; 2818 }; 2819 typedef struct notify_verifier4 notify_verifier4; 2820 2821 typedef struct { 2822 uint_t notifylist4_len; 2823 char *notifylist4_val; 2824 } notifylist4; 2825 2826 struct notify4 { 2827 bitmap4 notify_mask; 2828 notifylist4 notify_vals; 2829 }; 2830 typedef struct notify4 notify4; 2831 2832 struct CB_NOTIFY4args { 2833 stateid4 cna_stateid; 2834 nfs_fh4 cna_fh; 2835 struct { 2836 uint_t cna_changes_len; 2837 notify4 *cna_changes_val; 2838 } cna_changes; 2839 }; 2840 typedef struct CB_NOTIFY4args CB_NOTIFY4args; 2841 2842 struct CB_NOTIFY4res { 2843 nfsstat4 cnr_status; 2844 }; 2845 typedef struct CB_NOTIFY4res CB_NOTIFY4res; 2846 2847 struct CB_PUSH_DELEG4args { 2848 nfs_fh4 cpda_fh; 2849 open_delegation4 cpda_delegation; 2850 }; 2851 typedef struct CB_PUSH_DELEG4args CB_PUSH_DELEG4args; 2852 2853 struct CB_PUSH_DELEG4res { 2854 nfsstat4 cpdr_status; 2855 }; 2856 typedef struct CB_PUSH_DELEG4res CB_PUSH_DELEG4res; 2857 #define RCA4_TYPE_MASK_RDATA_DLG 0 2858 #define RCA4_TYPE_MASK_WDATA_DLG 1 2859 #define RCA4_TYPE_MASK_DIR_DLG 2 2860 #define RCA4_TYPE_MASK_FILE_LAYOUT 3 2861 #define RCA4_TYPE_MASK_BLK_LAYOUT 4 2862 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MIN 8 2863 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MAX 9 2864 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MIN 12 2865 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MAX 15 2866 2867 struct CB_RECALL_ANY4args { 2868 uint32_t craa_objects_to_keep; 2869 bitmap4 craa_type_mask; 2870 }; 2871 typedef struct CB_RECALL_ANY4args CB_RECALL_ANY4args; 2872 2873 struct CB_RECALL_ANY4res { 2874 nfsstat4 crar_status; 2875 }; 2876 typedef struct CB_RECALL_ANY4res CB_RECALL_ANY4res; 2877 2878 typedef CB_RECALL_ANY4args CB_RECALLABLE_OBJ_AVAIL4args; 2879 2880 struct CB_RECALLABLE_OBJ_AVAIL4res { 2881 nfsstat4 croa_status; 2882 }; 2883 typedef struct CB_RECALLABLE_OBJ_AVAIL4res CB_RECALLABLE_OBJ_AVAIL4res; 2884 2885 struct CB_RECALL_SLOT4args { 2886 slotid4 rsa_target_highest_slotid; 2887 }; 2888 typedef struct CB_RECALL_SLOT4args CB_RECALL_SLOT4args; 2889 2890 struct CB_RECALL_SLOT4res { 2891 nfsstat4 rsr_status; 2892 }; 2893 typedef struct CB_RECALL_SLOT4res CB_RECALL_SLOT4res; 2894 2895 struct referring_call4 { 2896 sequenceid4 rc_sequenceid; 2897 slotid4 rc_slotid; 2898 }; 2899 typedef struct referring_call4 referring_call4; 2900 2901 struct referring_call_list4 { 2902 sessionid4 rcl_sessionid; 2903 struct { 2904 uint_t rcl_referring_calls_len; 2905 referring_call4 *rcl_referring_calls_val; 2906 } rcl_referring_calls; 2907 }; 2908 typedef struct referring_call_list4 referring_call_list4; 2909 2910 struct CB_SEQUENCE4args { 2911 sessionid4 csa_sessionid; 2912 sequenceid4 csa_sequenceid; 2913 slotid4 csa_slotid; 2914 slotid4 csa_highest_slotid; 2915 bool_t csa_cachethis; 2916 struct { 2917 uint_t csa_referring_call_lists_len; 2918 referring_call_list4 *csa_referring_call_lists_val; 2919 } csa_referring_call_lists; 2920 }; 2921 typedef struct CB_SEQUENCE4args CB_SEQUENCE4args; 2922 2923 struct CB_SEQUENCE4resok { 2924 sessionid4 csr_sessionid; 2925 sequenceid4 csr_sequenceid; 2926 slotid4 csr_slotid; 2927 slotid4 csr_highest_slotid; 2928 slotid4 csr_target_highest_slotid; 2929 }; 2930 typedef struct CB_SEQUENCE4resok CB_SEQUENCE4resok; 2931 2932 struct CB_SEQUENCE4res { 2933 nfsstat4 csr_status; 2934 union { 2935 CB_SEQUENCE4resok csr_resok4; 2936 } CB_SEQUENCE4res_u; 2937 }; 2938 typedef struct CB_SEQUENCE4res CB_SEQUENCE4res; 2939 2940 struct CB_WANTS_CANCELLED4args { 2941 bool_t cwca_contended_wants_cancelled; 2942 bool_t cwca_resourced_wants_cancelled; 2943 }; 2944 typedef struct CB_WANTS_CANCELLED4args CB_WANTS_CANCELLED4args; 2945 2946 struct CB_WANTS_CANCELLED4res { 2947 nfsstat4 cwcr_status; 2948 }; 2949 typedef struct CB_WANTS_CANCELLED4res CB_WANTS_CANCELLED4res; 2950 2951 struct CB_NOTIFY_LOCK4args { 2952 nfs_fh4 cnla_fh; 2953 lock_owner4 cnla_lock_owner; 2954 }; 2955 typedef struct CB_NOTIFY_LOCK4args CB_NOTIFY_LOCK4args; 2956 2957 struct CB_NOTIFY_LOCK4res { 2958 nfsstat4 cnlr_status; 2959 }; 2960 typedef struct CB_NOTIFY_LOCK4res CB_NOTIFY_LOCK4res; 2961 2962 enum notify_deviceid_type4 { 2963 NOTIFY_DEVICEID4_CHANGE = 1, 2964 NOTIFY_DEVICEID4_DELETE = 2 2965 }; 2966 typedef enum notify_deviceid_type4 notify_deviceid_type4; 2967 2968 struct notify_deviceid_delete4 { 2969 layouttype4 ndd_layouttype; 2970 deviceid4 ndd_deviceid; 2971 }; 2972 typedef struct notify_deviceid_delete4 notify_deviceid_delete4; 2973 2974 struct notify_deviceid_change4 { 2975 layouttype4 ndc_layouttype; 2976 deviceid4 ndc_deviceid; 2977 bool_t ndc_immediate; 2978 }; 2979 typedef struct notify_deviceid_change4 notify_deviceid_change4; 2980 2981 struct CB_NOTIFY_DEVICEID4args { 2982 struct { 2983 uint_t cnda_changes_len; 2984 notify4 *cnda_changes_val; 2985 } cnda_changes; 2986 }; 2987 typedef struct CB_NOTIFY_DEVICEID4args CB_NOTIFY_DEVICEID4args; 2988 2989 struct CB_NOTIFY_DEVICEID4res { 2990 nfsstat4 cndr_status; 2991 }; 2992 typedef struct CB_NOTIFY_DEVICEID4res CB_NOTIFY_DEVICEID4res; 2993 2994 /* Callback operations new to NFSv4.1 */ 2995 2996 enum nfs_cb_opnum4 { 2997 OP_CB_GETATTR = 3, 2998 OP_CB_RECALL = 4, 2999 OP_CB_LAYOUTRECALL = 5, 3000 OP_CB_NOTIFY = 6, 3001 OP_CB_PUSH_DELEG = 7, 3002 OP_CB_RECALL_ANY = 8, 3003 OP_CB_RECALLABLE_OBJ_AVAIL = 9, 3004 OP_CB_RECALL_SLOT = 10, 3005 OP_CB_SEQUENCE = 11, 3006 OP_CB_WANTS_CANCELLED = 12, 3007 OP_CB_NOTIFY_LOCK = 13, 3008 OP_CB_NOTIFY_DEVICEID = 14, 3009 OP_CB_ILLEGAL = 10044 3010 }; 3011 typedef enum nfs_cb_opnum4 nfs_cb_opnum4; 3012 3013 struct nfs_cb_argop4 { 3014 uint_t argop; 3015 union { 3016 CB_GETATTR4args opcbgetattr; 3017 CB_RECALL4args opcbrecall; 3018 CB_LAYOUTRECALL4args opcblayoutrecall; 3019 CB_NOTIFY4args opcbnotify; 3020 CB_PUSH_DELEG4args opcbpush_deleg; 3021 CB_RECALL_ANY4args opcbrecall_any; 3022 CB_RECALLABLE_OBJ_AVAIL4args opcbrecallable_obj_avail; 3023 CB_RECALL_SLOT4args opcbrecall_slot; 3024 CB_SEQUENCE4args opcbsequence; 3025 CB_WANTS_CANCELLED4args opcbwants_cancelled; 3026 CB_NOTIFY_LOCK4args opcbnotify_lock; 3027 CB_NOTIFY_DEVICEID4args opcbnotify_deviceid; 3028 } nfs_cb_argop4_u; 3029 }; 3030 typedef struct nfs_cb_argop4 nfs_cb_argop4; 3031 3032 struct nfs_cb_resop4 { 3033 uint_t resop; 3034 union { 3035 CB_GETATTR4res opcbgetattr; 3036 CB_RECALL4res opcbrecall; 3037 CB_LAYOUTRECALL4res opcblayoutrecall; 3038 CB_NOTIFY4res opcbnotify; 3039 CB_PUSH_DELEG4res opcbpush_deleg; 3040 CB_RECALL_ANY4res opcbrecall_any; 3041 CB_RECALLABLE_OBJ_AVAIL4res opcbrecallable_obj_avail; 3042 CB_RECALL_SLOT4res opcbrecall_slot; 3043 CB_SEQUENCE4res opcbsequence; 3044 CB_WANTS_CANCELLED4res opcbwants_cancelled; 3045 CB_NOTIFY_LOCK4res opcbnotify_lock; 3046 CB_NOTIFY_DEVICEID4res opcbnotify_deviceid; 3047 CB_ILLEGAL4res opcbillegal; 3048 } nfs_cb_resop4_u; 3049 }; 3050 typedef struct nfs_cb_resop4 nfs_cb_resop4; 3051 3052 struct CB_COMPOUND4args { 3053 utf8str_cs tag; 3054 uint32_t minorversion; 3055 uint32_t callback_ident; 3056 struct { 3057 uint_t argarray_len; 3058 nfs_cb_argop4 *argarray_val; 3059 } argarray; 3060 }; 3061 typedef struct CB_COMPOUND4args CB_COMPOUND4args; 3062 3063 struct CB_COMPOUND4res { 3064 nfsstat4 status; 3065 utf8str_cs tag; 3066 struct { 3067 uint_t resarray_len; 3068 nfs_cb_resop4 *resarray_val; 3069 } resarray; 3070 }; 3071 typedef struct CB_COMPOUND4res CB_COMPOUND4res; 3072 3073 #define NFS4_PROGRAM 100003 3074 #define NFS_V4 4 3075 3076 #if defined(__STDC__) || defined(__cplusplus) 3077 #define NFSPROC4_NULL 0 3078 extern void * nfsproc4_null_4(void *, CLIENT *); 3079 extern void * nfsproc4_null_4_svc(void *, struct svc_req *); 3080 #define NFSPROC4_COMPOUND 1 3081 extern COMPOUND4res * nfsproc4_compound_4(COMPOUND4args *, CLIENT *); 3082 extern COMPOUND4res * nfsproc4_compound_4_svc(COMPOUND4args *, 3083 struct svc_req *); 3084 extern int nfs4_program_4_freeresult(SVCXPRT *, xdrproc_t, caddr_t); 3085 3086 #else /* K&R C */ 3087 #define NFSPROC4_NULL 0 3088 extern void * nfsproc4_null_4(); 3089 extern void * nfsproc4_null_4_svc(); 3090 #define NFSPROC4_COMPOUND 1 3091 extern COMPOUND4res * nfsproc4_compound_4(); 3092 extern COMPOUND4res * nfsproc4_compound_4_svc(); 3093 extern int nfs4_program_4_freeresult(); 3094 #endif /* K&R C */ 3095 3096 #define NFS4_CALLBACK 0x40000000 3097 #define NFS_CB 1 3098 3099 #if defined(__STDC__) || defined(__cplusplus) 3100 #define CB_NULL 0 3101 extern void * cb_null_1(void *, CLIENT *); 3102 extern void * cb_null_1_svc(void *, struct svc_req *); 3103 #define CB_COMPOUND 1 3104 extern CB_COMPOUND4res * cb_compound_1(CB_COMPOUND4args *, CLIENT *); 3105 extern CB_COMPOUND4res * cb_compound_1_svc(CB_COMPOUND4args *, 3106 struct svc_req *); 3107 extern int nfs4_callback_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t); 3108 3109 #else /* K&R C */ 3110 #define CB_NULL 0 3111 extern void * cb_null_1(); 3112 extern void * cb_null_1_svc(); 3113 #define CB_COMPOUND 1 3114 extern CB_COMPOUND4res * cb_compound_1(); 3115 extern CB_COMPOUND4res * cb_compound_1_svc(); 3116 extern int nfs4_callback_1_freeresult(); 3117 #endif /* K&R C */ 3118 3119 /* the xdr functions */ 3120 3121 #if defined(__STDC__) || defined(__cplusplus) 3122 extern bool_t xdr_nfs_ftype4(XDR *, nfs_ftype4*); 3123 extern bool_t xdr_nfsstat4(XDR *, nfsstat4*); 3124 extern bool_t xdr_attrlist4(XDR *, attrlist4*); 3125 extern bool_t xdr_bitmap4(XDR *, bitmap4*); 3126 extern bool_t xdr_changeid4(XDR *, changeid4*); 3127 extern bool_t xdr_clientid4(XDR *, clientid4*); 3128 extern bool_t xdr_count4(XDR *, count4*); 3129 extern bool_t xdr_length4(XDR *, length4*); 3130 extern bool_t xdr_mode4(XDR *, mode4*); 3131 extern bool_t xdr_nfs_cookie4(XDR *, nfs_cookie4*); 3132 extern bool_t xdr_nfs_fh4(XDR *, nfs_fh4*); 3133 extern bool_t xdr_offset4(XDR *, offset4*); 3134 extern bool_t xdr_qop4(XDR *, qop4*); 3135 extern bool_t xdr_sec_oid4(XDR *, sec_oid4*); 3136 extern bool_t xdr_sequenceid4(XDR *, sequenceid4*); 3137 extern bool_t xdr_seqid4(XDR *, seqid4*); 3138 extern bool_t xdr_sessionid4(XDR *, sessionid4); 3139 extern bool_t xdr_slotid4(XDR *, slotid4*); 3140 extern bool_t xdr_utf8string(XDR *, utf8string*); 3141 extern bool_t xdr_utf8str_cis(XDR *, utf8str_cis*); 3142 extern bool_t xdr_utf8str_cs(XDR *, utf8str_cs*); 3143 extern bool_t xdr_utf8str_mixed(XDR *, utf8str_mixed*); 3144 extern bool_t xdr_component4(XDR *, component4*); 3145 extern bool_t xdr_linktext4(XDR *, linktext4*); 3146 extern bool_t xdr_pathname4(XDR *, pathname4*); 3147 extern bool_t xdr_verifier4(XDR *, verifier4); 3148 extern bool_t xdr_nfstime4(XDR *, nfstime4*); 3149 extern bool_t xdr_time_how4(XDR *, time_how4*); 3150 extern bool_t xdr_settime4(XDR *, settime4*); 3151 extern bool_t xdr_nfs_lease4(XDR *, nfs_lease4*); 3152 extern bool_t xdr_fsid4(XDR *, fsid4*); 3153 extern bool_t xdr_change_policy4(XDR *, change_policy4*); 3154 extern bool_t xdr_fs_location4(XDR *, fs_location4*); 3155 extern bool_t xdr_fs_locations4(XDR *, fs_locations4*); 3156 extern bool_t xdr_acetype4(XDR *, acetype4*); 3157 extern bool_t xdr_aceflag4(XDR *, aceflag4*); 3158 extern bool_t xdr_acemask4(XDR *, acemask4*); 3159 extern bool_t xdr_nfsace4(XDR *, nfsace4*); 3160 extern bool_t xdr_aclflag4(XDR *, aclflag4*); 3161 extern bool_t xdr_nfsacl41(XDR *, nfsacl41*); 3162 extern bool_t xdr_mode_masked4(XDR *, mode_masked4*); 3163 extern bool_t xdr_specdata4(XDR *, specdata4*); 3164 extern bool_t xdr_netaddr4(XDR *, netaddr4*); 3165 extern bool_t xdr_nfs_impl_id4(XDR *, nfs_impl_id4*); 3166 extern bool_t xdr_stateid4(XDR *, stateid4*); 3167 extern bool_t xdr_layouttype4(XDR *, layouttype4*); 3168 extern bool_t xdr_layout_content4(XDR *, layout_content4*); 3169 extern bool_t xdr_layouthint4(XDR *, layouthint4*); 3170 extern bool_t xdr_layoutiomode4(XDR *, layoutiomode4*); 3171 extern bool_t xdr_layout4(XDR *, layout4*); 3172 extern bool_t xdr_deviceid4(XDR *, deviceid4); 3173 extern bool_t xdr_device_addr4(XDR *, device_addr4*); 3174 extern bool_t xdr_layoutupdate4(XDR *, layoutupdate4*); 3175 extern bool_t xdr_layoutreturn_type4(XDR *, layoutreturn_type4*); 3176 extern bool_t xdr_layoutreturn_file4(XDR *, layoutreturn_file4*); 3177 extern bool_t xdr_layoutreturn4(XDR *, layoutreturn4*); 3178 extern bool_t xdr_fs4_status_type(XDR *, fs4_status_type*); 3179 extern bool_t xdr_fs4_status(XDR *, fs4_status*); 3180 extern bool_t xdr_threshold4_read_size(XDR *, threshold4_read_size*); 3181 extern bool_t xdr_threshold4_write_size(XDR *, threshold4_write_size*); 3182 extern bool_t xdr_threshold4_read_iosize(XDR *, threshold4_read_iosize*); 3183 extern bool_t xdr_threshold4_write_iosize(XDR *, threshold4_write_iosize*); 3184 extern bool_t xdr_threshold_item4(XDR *, threshold_item4*); 3185 extern bool_t xdr_mdsthreshold4(XDR *, mdsthreshold4*); 3186 extern bool_t xdr_retention_get4(XDR *, retention_get4*); 3187 extern bool_t xdr_retention_set4(XDR *, retention_set4*); 3188 extern bool_t xdr_fs_charset_cap4(XDR *, fs_charset_cap4*); 3189 extern bool_t xdr_fattr4_supported_attrs(XDR *, fattr4_supported_attrs*); 3190 extern bool_t xdr_fattr4_suppattr_exclcreat(XDR *, fattr4_suppattr_exclcreat*); 3191 extern bool_t xdr_fattr4_type(XDR *, fattr4_type*); 3192 extern bool_t xdr_fattr4_fh_expire_type(XDR *, fattr4_fh_expire_type*); 3193 extern bool_t xdr_fattr4_change(XDR *, fattr4_change*); 3194 extern bool_t xdr_fattr4_size(XDR *, fattr4_size*); 3195 extern bool_t xdr_fattr4_link_support(XDR *, fattr4_link_support*); 3196 extern bool_t xdr_fattr4_symlink_support(XDR *, fattr4_symlink_support*); 3197 extern bool_t xdr_fattr4_named_attr(XDR *, fattr4_named_attr*); 3198 extern bool_t xdr_fattr4_fsid(XDR *, fattr4_fsid*); 3199 extern bool_t xdr_fattr4_unique_handles(XDR *, fattr4_unique_handles*); 3200 extern bool_t xdr_fattr4_lease_time(XDR *, fattr4_lease_time*); 3201 extern bool_t xdr_fattr4_rdattr_error(XDR *, fattr4_rdattr_error*); 3202 extern bool_t xdr_fattr4_acl(XDR *, fattr4_acl*); 3203 extern bool_t xdr_fattr4_aclsupport(XDR *, fattr4_aclsupport*); 3204 extern bool_t xdr_fattr4_archive(XDR *, fattr4_archive*); 3205 extern bool_t xdr_fattr4_cansettime(XDR *, fattr4_cansettime*); 3206 extern bool_t xdr_fattr4_case_insensitive(XDR *, fattr4_case_insensitive*); 3207 extern bool_t xdr_fattr4_case_preserving(XDR *, fattr4_case_preserving*); 3208 extern bool_t xdr_fattr4_chown_restricted(XDR *, fattr4_chown_restricted*); 3209 extern bool_t xdr_fattr4_fileid(XDR *, fattr4_fileid*); 3210 extern bool_t xdr_fattr4_files_avail(XDR *, fattr4_files_avail*); 3211 extern bool_t xdr_fattr4_filehandle(XDR *, fattr4_filehandle*); 3212 extern bool_t xdr_fattr4_files_free(XDR *, fattr4_files_free*); 3213 extern bool_t xdr_fattr4_files_total(XDR *, fattr4_files_total*); 3214 extern bool_t xdr_fattr4_fs_locations(XDR *, fattr4_fs_locations*); 3215 extern bool_t xdr_fattr4_hidden(XDR *, fattr4_hidden*); 3216 extern bool_t xdr_fattr4_homogeneous(XDR *, fattr4_homogeneous*); 3217 extern bool_t xdr_fattr4_maxfilesize(XDR *, fattr4_maxfilesize*); 3218 extern bool_t xdr_fattr4_maxlink(XDR *, fattr4_maxlink*); 3219 extern bool_t xdr_fattr4_maxname(XDR *, fattr4_maxname*); 3220 extern bool_t xdr_fattr4_maxread(XDR *, fattr4_maxread*); 3221 extern bool_t xdr_fattr4_maxwrite(XDR *, fattr4_maxwrite*); 3222 extern bool_t xdr_fattr4_mimetype(XDR *, fattr4_mimetype*); 3223 extern bool_t xdr_fattr4_mode(XDR *, fattr4_mode*); 3224 extern bool_t xdr_fattr4_mode_set_masked(XDR *, fattr4_mode_set_masked*); 3225 extern bool_t xdr_fattr4_mounted_on_fileid(XDR *, fattr4_mounted_on_fileid*); 3226 extern bool_t xdr_fattr4_no_trunc(XDR *, fattr4_no_trunc*); 3227 extern bool_t xdr_fattr4_numlinks(XDR *, fattr4_numlinks*); 3228 extern bool_t xdr_fattr4_owner(XDR *, fattr4_owner*); 3229 extern bool_t xdr_fattr4_owner_group(XDR *, fattr4_owner_group*); 3230 extern bool_t xdr_fattr4_quota_avail_hard(XDR *, fattr4_quota_avail_hard*); 3231 extern bool_t xdr_fattr4_quota_avail_soft(XDR *, fattr4_quota_avail_soft*); 3232 extern bool_t xdr_fattr4_quota_used(XDR *, fattr4_quota_used*); 3233 extern bool_t xdr_fattr4_rawdev(XDR *, fattr4_rawdev*); 3234 extern bool_t xdr_fattr4_space_avail(XDR *, fattr4_space_avail*); 3235 extern bool_t xdr_fattr4_space_free(XDR *, fattr4_space_free*); 3236 extern bool_t xdr_fattr4_space_total(XDR *, fattr4_space_total*); 3237 extern bool_t xdr_fattr4_space_used(XDR *, fattr4_space_used*); 3238 extern bool_t xdr_fattr4_system(XDR *, fattr4_system*); 3239 extern bool_t xdr_fattr4_time_access(XDR *, fattr4_time_access*); 3240 extern bool_t xdr_fattr4_time_access_set(XDR *, fattr4_time_access_set*); 3241 extern bool_t xdr_fattr4_time_backup(XDR *, fattr4_time_backup*); 3242 extern bool_t xdr_fattr4_time_create(XDR *, fattr4_time_create*); 3243 extern bool_t xdr_fattr4_time_delta(XDR *, fattr4_time_delta*); 3244 extern bool_t xdr_fattr4_time_metadata(XDR *, fattr4_time_metadata*); 3245 extern bool_t xdr_fattr4_time_modify(XDR *, fattr4_time_modify*); 3246 extern bool_t xdr_fattr4_time_modify_set(XDR *, fattr4_time_modify_set*); 3247 extern bool_t xdr_fattr4_dir_notif_delay(XDR *, fattr4_dir_notif_delay*); 3248 extern bool_t xdr_fattr4_dirent_notif_delay(XDR *, fattr4_dirent_notif_delay*); 3249 extern bool_t xdr_fattr4_absent(XDR *, fattr4_absent*); 3250 extern bool_t xdr_fattr4_fs_layout_types(XDR *, fattr4_fs_layout_types*); 3251 extern bool_t xdr_fattr4_fs_status(XDR *, fattr4_fs_status*); 3252 extern bool_t xdr_fattr4_fs_charset_cap4(XDR *, fattr4_fs_charset_cap4*); 3253 extern bool_t xdr_fattr4_layout_alignment(XDR *, fattr4_layout_alignment*); 3254 extern bool_t xdr_fattr4_layout_blksize(XDR *, fattr4_layout_blksize*); 3255 extern bool_t xdr_fattr4_layout_hint(XDR *, fattr4_layout_hint*); 3256 extern bool_t xdr_fattr4_layout_types(XDR *, fattr4_layout_types*); 3257 extern bool_t xdr_fattr4_mdsthreshold(XDR *, fattr4_mdsthreshold*); 3258 extern bool_t xdr_fattr4_retention_get(XDR *, fattr4_retention_get*); 3259 extern bool_t xdr_fattr4_retention_set(XDR *, fattr4_retention_set*); 3260 extern bool_t xdr_fattr4_retentevt_get(XDR *, fattr4_retentevt_get*); 3261 extern bool_t xdr_fattr4_retentevt_set(XDR *, fattr4_retentevt_set*); 3262 extern bool_t xdr_fattr4_retention_hold(XDR *, fattr4_retention_hold*); 3263 extern bool_t xdr_fattr4_dacl(XDR *, fattr4_dacl*); 3264 extern bool_t xdr_fattr4_sacl(XDR *, fattr4_sacl*); 3265 extern bool_t xdr_fattr4(XDR *, fattr4*); 3266 extern bool_t xdr_change_info4(XDR *, change_info4*); 3267 extern bool_t xdr_clientaddr4(XDR *, clientaddr4*); 3268 extern bool_t xdr_cb_client4(XDR *, cb_client4*); 3269 extern bool_t xdr_nfs_client_id4(XDR *, nfs_client_id4*); 3270 extern bool_t xdr_client_owner4(XDR *, client_owner4*); 3271 extern bool_t xdr_server_owner4(XDR *, server_owner4*); 3272 extern bool_t xdr_state_owner4(XDR *, state_owner4*); 3273 extern bool_t xdr_open_owner4(XDR *, open_owner4*); 3274 extern bool_t xdr_lock_owner4(XDR *, lock_owner4*); 3275 extern bool_t xdr_nfs_lock_type4(XDR *, nfs_lock_type4*); 3276 extern bool_t xdr_ssv_subkey4(XDR *, ssv_subkey4*); 3277 extern bool_t xdr_ssv_mic_plain_tkn4(XDR *, ssv_mic_plain_tkn4*); 3278 extern bool_t xdr_ssv_mic_tkn4(XDR *, ssv_mic_tkn4*); 3279 extern bool_t xdr_ssv_seal_plain_tkn4(XDR *, ssv_seal_plain_tkn4*); 3280 extern bool_t xdr_ssv_seal_cipher_tkn4(XDR *, ssv_seal_cipher_tkn4*); 3281 extern bool_t xdr_fs_locations_server4(XDR *, fs_locations_server4*); 3282 extern bool_t xdr_fs_locations_item4(XDR *, fs_locations_item4*); 3283 extern bool_t xdr_fs_locations_info4(XDR *, fs_locations_info4*); 3284 extern bool_t xdr_fattr4_fs_locations_info(XDR *, fattr4_fs_locations_info*); 3285 extern bool_t xdr_nfl_util4(XDR *, nfl_util4*); 3286 extern bool_t xdr_filelayout_hint_care4(XDR *, filelayout_hint_care4*); 3287 extern bool_t xdr_nfsv4_1_file_layouthint4(XDR *, nfsv4_1_file_layouthint4*); 3288 extern bool_t xdr_multipath_list4(XDR *, multipath_list4*); 3289 extern bool_t xdr_nfsv4_1_file_layout_ds_addr4(XDR *, 3290 nfsv4_1_file_layout_ds_addr4*); 3291 extern bool_t xdr_nfsv4_1_file_layout4(XDR *, nfsv4_1_file_layout4*); 3292 extern bool_t xdr_ACCESS4args(XDR *, ACCESS4args*); 3293 extern bool_t xdr_ACCESS4resok(XDR *, ACCESS4resok*); 3294 extern bool_t xdr_ACCESS4res(XDR *, ACCESS4res*); 3295 extern bool_t xdr_CLOSE4args(XDR *, CLOSE4args*); 3296 extern bool_t xdr_CLOSE4res(XDR *, CLOSE4res*); 3297 extern bool_t xdr_COMMIT4args(XDR *, COMMIT4args*); 3298 extern bool_t xdr_COMMIT4resok(XDR *, COMMIT4resok*); 3299 extern bool_t xdr_COMMIT4res(XDR *, COMMIT4res*); 3300 extern bool_t xdr_createtype4(XDR *, createtype4*); 3301 extern bool_t xdr_CREATE4args(XDR *, CREATE4args*); 3302 extern bool_t xdr_CREATE4resok(XDR *, CREATE4resok*); 3303 extern bool_t xdr_CREATE4res(XDR *, CREATE4res*); 3304 extern bool_t xdr_DELEGPURGE4args(XDR *, DELEGPURGE4args*); 3305 extern bool_t xdr_DELEGPURGE4res(XDR *, DELEGPURGE4res*); 3306 extern bool_t xdr_DELEGRETURN4args(XDR *, DELEGRETURN4args*); 3307 extern bool_t xdr_DELEGRETURN4res(XDR *, DELEGRETURN4res*); 3308 extern bool_t xdr_GETATTR4args(XDR *, GETATTR4args*); 3309 extern bool_t xdr_GETATTR4resok(XDR *, GETATTR4resok*); 3310 extern bool_t xdr_GETATTR4res(XDR *, GETATTR4res*); 3311 extern bool_t xdr_GETFH4resok(XDR *, GETFH4resok*); 3312 extern bool_t xdr_GETFH4res(XDR *, GETFH4res*); 3313 extern bool_t xdr_LINK4args(XDR *, LINK4args*); 3314 extern bool_t xdr_LINK4resok(XDR *, LINK4resok*); 3315 extern bool_t xdr_LINK4res(XDR *, LINK4res*); 3316 extern bool_t xdr_open_to_lock_owner4(XDR *, open_to_lock_owner4*); 3317 extern bool_t xdr_exist_lock_owner4(XDR *, exist_lock_owner4*); 3318 extern bool_t xdr_locker4(XDR *, locker4*); 3319 extern bool_t xdr_LOCK4args(XDR *, LOCK4args*); 3320 extern bool_t xdr_LOCK4denied(XDR *, LOCK4denied*); 3321 extern bool_t xdr_LOCK4resok(XDR *, LOCK4resok*); 3322 extern bool_t xdr_LOCK4res(XDR *, LOCK4res*); 3323 extern bool_t xdr_LOCKT4args(XDR *, LOCKT4args*); 3324 extern bool_t xdr_LOCKT4res(XDR *, LOCKT4res*); 3325 extern bool_t xdr_LOCKU4args(XDR *, LOCKU4args*); 3326 extern bool_t xdr_LOCKU4res(XDR *, LOCKU4res*); 3327 extern bool_t xdr_LOOKUP4args(XDR *, LOOKUP4args*); 3328 extern bool_t xdr_LOOKUP4res(XDR *, LOOKUP4res*); 3329 extern bool_t xdr_LOOKUPP4res(XDR *, LOOKUPP4res*); 3330 extern bool_t xdr_NVERIFY4args(XDR *, NVERIFY4args*); 3331 extern bool_t xdr_NVERIFY4res(XDR *, NVERIFY4res*); 3332 extern bool_t xdr_createmode4(XDR *, createmode4*); 3333 extern bool_t xdr_creatverfattr(XDR *, creatverfattr*); 3334 extern bool_t xdr_createhow4(XDR *, createhow4*); 3335 extern bool_t xdr_opentype4(XDR *, opentype4*); 3336 extern bool_t xdr_openflag4(XDR *, openflag4*); 3337 extern bool_t xdr_limit_by4(XDR *, limit_by4*); 3338 extern bool_t xdr_nfs_modified_limit4(XDR *, nfs_modified_limit4*); 3339 extern bool_t xdr_nfs_space_limit4(XDR *, nfs_space_limit4*); 3340 extern bool_t xdr_open_delegation_type4(XDR *, open_delegation_type4*); 3341 extern bool_t xdr_open_claim_type4(XDR *, open_claim_type4*); 3342 extern bool_t xdr_open_claim_delegate_cur4(XDR *, open_claim_delegate_cur4*); 3343 extern bool_t xdr_open_claim4(XDR *, open_claim4*); 3344 extern bool_t xdr_OPEN4args(XDR *, OPEN4args*); 3345 extern bool_t xdr_open_read_delegation4(XDR *, open_read_delegation4*); 3346 extern bool_t xdr_open_write_delegation4(XDR *, open_write_delegation4*); 3347 extern bool_t xdr_why_no_delegation4(XDR *, why_no_delegation4*); 3348 extern bool_t xdr_open_none_delegation4(XDR *, open_none_delegation4*); 3349 extern bool_t xdr_open_delegation4(XDR *, open_delegation4*); 3350 extern bool_t xdr_OPEN4resok(XDR *, OPEN4resok*); 3351 extern bool_t xdr_OPEN4res(XDR *, OPEN4res*); 3352 extern bool_t xdr_OPENATTR4args(XDR *, OPENATTR4args*); 3353 extern bool_t xdr_OPENATTR4res(XDR *, OPENATTR4res*); 3354 extern bool_t xdr_OPEN_CONFIRM4args(XDR *, OPEN_CONFIRM4args*); 3355 extern bool_t xdr_OPEN_CONFIRM4resok(XDR *, OPEN_CONFIRM4resok*); 3356 extern bool_t xdr_OPEN_CONFIRM4res(XDR *, OPEN_CONFIRM4res*); 3357 extern bool_t xdr_OPEN_DOWNGRADE4args(XDR *, OPEN_DOWNGRADE4args*); 3358 extern bool_t xdr_OPEN_DOWNGRADE4resok(XDR *, OPEN_DOWNGRADE4resok*); 3359 extern bool_t xdr_OPEN_DOWNGRADE4res(XDR *, OPEN_DOWNGRADE4res*); 3360 extern bool_t xdr_PUTFH4args(XDR *, PUTFH4args*); 3361 extern bool_t xdr_PUTFH4res(XDR *, PUTFH4res*); 3362 extern bool_t xdr_PUTPUBFH4res(XDR *, PUTPUBFH4res*); 3363 extern bool_t xdr_PUTROOTFH4res(XDR *, PUTROOTFH4res*); 3364 extern bool_t xdr_READ4args(XDR *, READ4args*); 3365 extern bool_t xdr_READ4resok(XDR *, READ4resok*); 3366 extern bool_t xdr_READ4res(XDR *, READ4res*); 3367 extern bool_t xdr_READDIR4args(XDR *, READDIR4args*); 3368 extern bool_t xdr_entry4(XDR *, entry4*); 3369 extern bool_t xdr_dirlist4(XDR *, dirlist4*); 3370 extern bool_t xdr_READDIR4resok(XDR *, READDIR4resok*); 3371 extern bool_t xdr_READDIR4res(XDR *, READDIR4res*); 3372 extern bool_t xdr_READLINK4resok(XDR *, READLINK4resok*); 3373 extern bool_t xdr_READLINK4res(XDR *, READLINK4res*); 3374 extern bool_t xdr_REMOVE4args(XDR *, REMOVE4args*); 3375 extern bool_t xdr_REMOVE4resok(XDR *, REMOVE4resok*); 3376 extern bool_t xdr_REMOVE4res(XDR *, REMOVE4res*); 3377 extern bool_t xdr_RENAME4args(XDR *, RENAME4args*); 3378 extern bool_t xdr_RENAME4resok(XDR *, RENAME4resok*); 3379 extern bool_t xdr_RENAME4res(XDR *, RENAME4res*); 3380 extern bool_t xdr_RENEW4args(XDR *, RENEW4args*); 3381 extern bool_t xdr_RENEW4res(XDR *, RENEW4res*); 3382 extern bool_t xdr_RESTOREFH4res(XDR *, RESTOREFH4res*); 3383 extern bool_t xdr_SAVEFH4res(XDR *, SAVEFH4res*); 3384 extern bool_t xdr_SECINFO4args(XDR *, SECINFO4args*); 3385 extern bool_t xdr_rpc_gss_svc_t(XDR *, rpc_gss_svc_t *); 3386 extern bool_t xdr_rpcsec_gss_info(XDR *, rpcsec_gss_info*); 3387 extern bool_t xdr_secinfo4(XDR *, secinfo4*); 3388 extern bool_t xdr_SECINFO4resok(XDR *, SECINFO4resok*); 3389 extern bool_t xdr_SECINFO4res(XDR *, SECINFO4res*); 3390 extern bool_t xdr_SETATTR4args(XDR *, SETATTR4args*); 3391 extern bool_t xdr_SETATTR4res(XDR *, SETATTR4res*); 3392 extern bool_t xdr_SETCLIENTID4args(XDR *, SETCLIENTID4args*); 3393 extern bool_t xdr_SETCLIENTID4resok(XDR *, SETCLIENTID4resok*); 3394 extern bool_t xdr_SETCLIENTID4res(XDR *, SETCLIENTID4res*); 3395 extern bool_t xdr_SETCLIENTID_CONFIRM4args(XDR *, SETCLIENTID_CONFIRM4args*); 3396 extern bool_t xdr_SETCLIENTID_CONFIRM4res(XDR *, SETCLIENTID_CONFIRM4res*); 3397 extern bool_t xdr_VERIFY4args(XDR *, VERIFY4args*); 3398 extern bool_t xdr_VERIFY4res(XDR *, VERIFY4res*); 3399 extern bool_t xdr_stable_how4(XDR *, stable_how4*); 3400 extern bool_t xdr_WRITE4args(XDR *, WRITE4args*); 3401 extern bool_t xdr_WRITE4resok(XDR *, WRITE4resok*); 3402 extern bool_t xdr_WRITE4res(XDR *, WRITE4res*); 3403 extern bool_t xdr_RELEASE_LOCKOWNER4args(XDR *, RELEASE_LOCKOWNER4args*); 3404 extern bool_t xdr_RELEASE_LOCKOWNER4res(XDR *, RELEASE_LOCKOWNER4res*); 3405 extern bool_t xdr_ILLEGAL4res(XDR *, ILLEGAL4res*); 3406 extern bool_t xdr_gsshandle4_t(XDR *, gsshandle4_t *); 3407 extern bool_t xdr_gss_cb_handles4(XDR *, gss_cb_handles4*); 3408 extern bool_t xdr_callback_sec_parms4(XDR *, callback_sec_parms4*); 3409 extern bool_t xdr_BACKCHANNEL_CTL4args(XDR *, BACKCHANNEL_CTL4args*); 3410 extern bool_t xdr_BACKCHANNEL_CTL4res(XDR *, BACKCHANNEL_CTL4res*); 3411 extern bool_t xdr_channel_dir_from_client4(XDR *, 3412 channel_dir_from_client4*); 3413 extern bool_t xdr_BIND_CONN_TO_SESSION4args(XDR *, 3414 BIND_CONN_TO_SESSION4args*); 3415 extern bool_t xdr_channel_dir_from_server4(XDR *, 3416 channel_dir_from_server4*); 3417 extern bool_t xdr_BIND_CONN_TO_SESSION4resok(XDR *, 3418 BIND_CONN_TO_SESSION4resok*); 3419 extern bool_t xdr_BIND_CONN_TO_SESSION4res(XDR *, 3420 BIND_CONN_TO_SESSION4res*); 3421 extern bool_t xdr_state_protect_ops4(XDR *, state_protect_ops4*); 3422 extern bool_t xdr_ssv_sp_parms4(XDR *, ssv_sp_parms4*); 3423 extern bool_t xdr_state_protect_how4(XDR *, state_protect_how4*); 3424 extern bool_t xdr_state_protect4_a(XDR *, state_protect4_a*); 3425 extern bool_t xdr_EXCHANGE_ID4args(XDR *, EXCHANGE_ID4args*); 3426 extern bool_t xdr_ssv_prot_info4(XDR *, ssv_prot_info4*); 3427 extern bool_t xdr_state_protect4_r(XDR *, state_protect4_r*); 3428 extern bool_t xdr_EXCHANGE_ID4resok(XDR *, EXCHANGE_ID4resok*); 3429 extern bool_t xdr_EXCHANGE_ID4res(XDR *, EXCHANGE_ID4res*); 3430 extern bool_t xdr_channel_attrs4(XDR *, channel_attrs4*); 3431 extern bool_t xdr_CREATE_SESSION4args(XDR *, CREATE_SESSION4args*); 3432 extern bool_t xdr_CREATE_SESSION4resok(XDR *, CREATE_SESSION4resok*); 3433 extern bool_t xdr_CREATE_SESSION4res(XDR *, CREATE_SESSION4res*); 3434 extern bool_t xdr_DESTROY_SESSION4args(XDR *, DESTROY_SESSION4args*); 3435 extern bool_t xdr_DESTROY_SESSION4res(XDR *, DESTROY_SESSION4res*); 3436 extern bool_t xdr_FREE_STATEID4args(XDR *, FREE_STATEID4args*); 3437 extern bool_t xdr_FREE_STATEID4res(XDR *, FREE_STATEID4res*); 3438 extern bool_t xdr_attr_notice4(XDR *, attr_notice4*); 3439 extern bool_t xdr_GET_DIR_DELEGATION4args(XDR *, GET_DIR_DELEGATION4args*); 3440 extern bool_t xdr_GET_DIR_DELEGATION4resok(XDR *, GET_DIR_DELEGATION4resok*); 3441 extern bool_t xdr_gddrnf4_status(XDR *, gddrnf4_status*); 3442 extern bool_t xdr_GET_DIR_DELEGATION4res_non_fatal(XDR *, 3443 GET_DIR_DELEGATION4res_non_fatal*); 3444 extern bool_t xdr_GET_DIR_DELEGATION4res(XDR *, GET_DIR_DELEGATION4res*); 3445 extern bool_t xdr_GETDEVICEINFO4args(XDR *, GETDEVICEINFO4args*); 3446 extern bool_t xdr_GETDEVICEINFO4resok(XDR *, GETDEVICEINFO4resok*); 3447 extern bool_t xdr_GETDEVICEINFO4res(XDR *, GETDEVICEINFO4res*); 3448 extern bool_t xdr_GETDEVICELIST4args(XDR *, GETDEVICELIST4args*); 3449 extern bool_t xdr_GETDEVICELIST4resok(XDR *, GETDEVICELIST4resok*); 3450 extern bool_t xdr_GETDEVICELIST4res(XDR *, GETDEVICELIST4res*); 3451 extern bool_t xdr_newtime4(XDR *, newtime4*); 3452 extern bool_t xdr_newoffset4(XDR *, newoffset4*); 3453 extern bool_t xdr_LAYOUTCOMMIT4args(XDR *, LAYOUTCOMMIT4args*); 3454 extern bool_t xdr_newsize4(XDR *, newsize4*); 3455 extern bool_t xdr_LAYOUTCOMMIT4resok(XDR *, LAYOUTCOMMIT4resok*); 3456 extern bool_t xdr_LAYOUTCOMMIT4res(XDR *, LAYOUTCOMMIT4res*); 3457 extern bool_t xdr_LAYOUTGET4args(XDR *, LAYOUTGET4args*); 3458 extern bool_t xdr_LAYOUTGET4resok(XDR *, LAYOUTGET4resok*); 3459 extern bool_t xdr_LAYOUTGET4res(XDR *, LAYOUTGET4res*); 3460 extern bool_t xdr_LAYOUTRETURN4args(XDR *, LAYOUTRETURN4args*); 3461 extern bool_t xdr_layoutreturn_stateid(XDR *, layoutreturn_stateid*); 3462 extern bool_t xdr_LAYOUTRETURN4res(XDR *, LAYOUTRETURN4res*); 3463 extern bool_t xdr_secinfo_style4(XDR *, secinfo_style4*); 3464 extern bool_t xdr_SECINFO_NO_NAME4args(XDR *, SECINFO_NO_NAME4args*); 3465 extern bool_t xdr_SECINFO_NO_NAME4res(XDR *, SECINFO_NO_NAME4res*); 3466 extern bool_t xdr_SEQUENCE4args(XDR *, SEQUENCE4args*); 3467 extern bool_t xdr_SEQUENCE4resok(XDR *, SEQUENCE4resok*); 3468 extern bool_t xdr_SEQUENCE4res(XDR *, SEQUENCE4res*); 3469 extern bool_t xdr_ssa_digest_input4(XDR *, ssa_digest_input4*); 3470 extern bool_t xdr_SET_SSV4args(XDR *, SET_SSV4args*); 3471 extern bool_t xdr_ssr_digest_input4(XDR *, ssr_digest_input4*); 3472 extern bool_t xdr_SET_SSV4resok(XDR *, SET_SSV4resok*); 3473 extern bool_t xdr_SET_SSV4res(XDR *, SET_SSV4res*); 3474 extern bool_t xdr_TEST_STATEID4args(XDR *, TEST_STATEID4args*); 3475 extern bool_t xdr_TEST_STATEID4resok(XDR *, TEST_STATEID4resok*); 3476 extern bool_t xdr_TEST_STATEID4res(XDR *, TEST_STATEID4res*); 3477 extern bool_t xdr_deleg_claim4(XDR *, deleg_claim4*); 3478 extern bool_t xdr_WANT_DELEGATION4args(XDR *, WANT_DELEGATION4args*); 3479 extern bool_t xdr_WANT_DELEGATION4res(XDR *, WANT_DELEGATION4res*); 3480 extern bool_t xdr_DESTROY_CLIENTID4args(XDR *, DESTROY_CLIENTID4args*); 3481 extern bool_t xdr_DESTROY_CLIENTID4res(XDR *, DESTROY_CLIENTID4res*); 3482 extern bool_t xdr_RECLAIM_COMPLETE4args(XDR *, RECLAIM_COMPLETE4args*); 3483 extern bool_t xdr_RECLAIM_COMPLETE4res(XDR *, RECLAIM_COMPLETE4res*); 3484 extern bool_t xdr_nfs_opnum4(XDR *, nfs_opnum4*); 3485 extern bool_t xdr_nfs_argop4(XDR *, nfs_argop4*); 3486 extern bool_t xdr_nfs_resop4(XDR *, nfs_resop4*); 3487 extern bool_t xdr_COMPOUND4args(XDR *, COMPOUND4args*); 3488 extern bool_t xdr_COMPOUND4res(XDR *, COMPOUND4res*); 3489 extern bool_t xdr_CB_GETATTR4args(XDR *, CB_GETATTR4args*); 3490 extern bool_t xdr_CB_GETATTR4resok(XDR *, CB_GETATTR4resok*); 3491 extern bool_t xdr_CB_GETATTR4res(XDR *, CB_GETATTR4res*); 3492 extern bool_t xdr_CB_RECALL4args(XDR *, CB_RECALL4args*); 3493 extern bool_t xdr_CB_RECALL4res(XDR *, CB_RECALL4res*); 3494 extern bool_t xdr_CB_ILLEGAL4res(XDR *, CB_ILLEGAL4res*); 3495 extern bool_t xdr_layoutrecall_type4(XDR *, layoutrecall_type4*); 3496 extern bool_t xdr_layoutrecall_file4(XDR *, layoutrecall_file4*); 3497 extern bool_t xdr_layoutrecall4(XDR *, layoutrecall4*); 3498 extern bool_t xdr_CB_LAYOUTRECALL4args(XDR *, CB_LAYOUTRECALL4args*); 3499 extern bool_t xdr_CB_LAYOUTRECALL4res(XDR *, CB_LAYOUTRECALL4res*); 3500 extern bool_t xdr_notify_type4(XDR *, notify_type4*); 3501 extern bool_t xdr_notify_entry4(XDR *, notify_entry4*); 3502 extern bool_t xdr_prev_entry4(XDR *, prev_entry4*); 3503 extern bool_t xdr_notify_remove4(XDR *, notify_remove4*); 3504 extern bool_t xdr_notify_add4(XDR *, notify_add4*); 3505 extern bool_t xdr_notify_attr4(XDR *, notify_attr4*); 3506 extern bool_t xdr_notify_rename4(XDR *, notify_rename4*); 3507 extern bool_t xdr_notify_verifier4(XDR *, notify_verifier4*); 3508 extern bool_t xdr_notifylist4(XDR *, notifylist4*); 3509 extern bool_t xdr_notify4(XDR *, notify4*); 3510 extern bool_t xdr_CB_NOTIFY4args(XDR *, CB_NOTIFY4args*); 3511 extern bool_t xdr_CB_NOTIFY4res(XDR *, CB_NOTIFY4res*); 3512 extern bool_t xdr_CB_PUSH_DELEG4args(XDR *, CB_PUSH_DELEG4args*); 3513 extern bool_t xdr_CB_PUSH_DELEG4res(XDR *, CB_PUSH_DELEG4res*); 3514 extern bool_t xdr_CB_RECALL_ANY4args(XDR *, CB_RECALL_ANY4args*); 3515 extern bool_t xdr_CB_RECALL_ANY4res(XDR *, CB_RECALL_ANY4res*); 3516 extern bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(XDR *, 3517 CB_RECALLABLE_OBJ_AVAIL4args*); 3518 extern bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(XDR *, 3519 CB_RECALLABLE_OBJ_AVAIL4res*); 3520 extern bool_t xdr_CB_RECALL_SLOT4args(XDR *, CB_RECALL_SLOT4args*); 3521 extern bool_t xdr_CB_RECALL_SLOT4res(XDR *, CB_RECALL_SLOT4res*); 3522 extern bool_t xdr_referring_call4(XDR *, referring_call4*); 3523 extern bool_t xdr_referring_call_list4(XDR *, referring_call_list4*); 3524 extern bool_t xdr_CB_SEQUENCE4args(XDR *, CB_SEQUENCE4args*); 3525 extern bool_t xdr_CB_SEQUENCE4resok(XDR *, CB_SEQUENCE4resok*); 3526 extern bool_t xdr_CB_SEQUENCE4res(XDR *, CB_SEQUENCE4res*); 3527 extern bool_t xdr_CB_WANTS_CANCELLED4args(XDR *, CB_WANTS_CANCELLED4args*); 3528 extern bool_t xdr_CB_WANTS_CANCELLED4res(XDR *, CB_WANTS_CANCELLED4res*); 3529 extern bool_t xdr_CB_NOTIFY_LOCK4args(XDR *, CB_NOTIFY_LOCK4args*); 3530 extern bool_t xdr_CB_NOTIFY_LOCK4res(XDR *, CB_NOTIFY_LOCK4res*); 3531 extern bool_t xdr_notify_deviceid_type4(XDR *, notify_deviceid_type4*); 3532 extern bool_t xdr_notify_deviceid_delete4(XDR *, notify_deviceid_delete4*); 3533 extern bool_t xdr_notify_deviceid_change4(XDR *, notify_deviceid_change4*); 3534 extern bool_t xdr_CB_NOTIFY_DEVICEID4args(XDR *, CB_NOTIFY_DEVICEID4args*); 3535 extern bool_t xdr_CB_NOTIFY_DEVICEID4res(XDR *, CB_NOTIFY_DEVICEID4res*); 3536 extern bool_t xdr_nfs_cb_opnum4(XDR *, nfs_cb_opnum4*); 3537 extern bool_t xdr_nfs_cb_argop4(XDR *, nfs_cb_argop4*); 3538 extern bool_t xdr_nfs_cb_resop4(XDR *, nfs_cb_resop4*); 3539 extern bool_t xdr_CB_COMPOUND4args(XDR *, CB_COMPOUND4args*); 3540 extern bool_t xdr_CB_COMPOUND4res(XDR *, CB_COMPOUND4res*); 3541 3542 #else /* K&R C */ 3543 extern bool_t xdr_nfs_ftype4(); 3544 extern bool_t xdr_nfsstat4(); 3545 extern bool_t xdr_attrlist4(); 3546 extern bool_t xdr_bitmap4(); 3547 extern bool_t xdr_changeid4(); 3548 extern bool_t xdr_clientid4(); 3549 extern bool_t xdr_count4(); 3550 extern bool_t xdr_length4(); 3551 extern bool_t xdr_mode4(); 3552 extern bool_t xdr_nfs_cookie4(); 3553 extern bool_t xdr_nfs_fh4(); 3554 extern bool_t xdr_offset4(); 3555 extern bool_t xdr_qop4(); 3556 extern bool_t xdr_sec_oid4(); 3557 extern bool_t xdr_sequenceid4(); 3558 extern bool_t xdr_seqid4(); 3559 extern bool_t xdr_sessionid4(); 3560 extern bool_t xdr_slotid4(); 3561 extern bool_t xdr_utf8string(); 3562 extern bool_t xdr_utf8str_cis(); 3563 extern bool_t xdr_utf8str_cs(); 3564 extern bool_t xdr_utf8str_mixed(); 3565 extern bool_t xdr_component4(); 3566 extern bool_t xdr_linktext4(); 3567 extern bool_t xdr_pathname4(); 3568 extern bool_t xdr_verifier4(); 3569 extern bool_t xdr_nfstime4(); 3570 extern bool_t xdr_time_how4(); 3571 extern bool_t xdr_settime4(); 3572 extern bool_t xdr_nfs_lease4(); 3573 extern bool_t xdr_fsid4(); 3574 extern bool_t xdr_change_policy4(); 3575 extern bool_t xdr_fs_location4(); 3576 extern bool_t xdr_fs_locations4(); 3577 extern bool_t xdr_acetype4(); 3578 extern bool_t xdr_aceflag4(); 3579 extern bool_t xdr_acemask4(); 3580 extern bool_t xdr_nfsace4(); 3581 extern bool_t xdr_aclflag4(); 3582 extern bool_t xdr_nfsacl41(); 3583 extern bool_t xdr_mode_masked4(); 3584 extern bool_t xdr_specdata4(); 3585 extern bool_t xdr_netaddr4(); 3586 extern bool_t xdr_nfs_impl_id4(); 3587 extern bool_t xdr_stateid4(); 3588 extern bool_t xdr_layouttype4(); 3589 extern bool_t xdr_layout_content4(); 3590 extern bool_t xdr_layouthint4(); 3591 extern bool_t xdr_layoutiomode4(); 3592 extern bool_t xdr_layout4(); 3593 extern bool_t xdr_deviceid4(); 3594 extern bool_t xdr_device_addr4(); 3595 extern bool_t xdr_layoutupdate4(); 3596 extern bool_t xdr_layoutreturn_type4(); 3597 extern bool_t xdr_layoutreturn_file4(); 3598 extern bool_t xdr_layoutreturn4(); 3599 extern bool_t xdr_fs4_status_type(); 3600 extern bool_t xdr_fs4_status(); 3601 extern bool_t xdr_threshold4_read_size(); 3602 extern bool_t xdr_threshold4_write_size(); 3603 extern bool_t xdr_threshold4_read_iosize(); 3604 extern bool_t xdr_threshold4_write_iosize(); 3605 extern bool_t xdr_threshold_item4(); 3606 extern bool_t xdr_mdsthreshold4(); 3607 extern bool_t xdr_retention_get4(); 3608 extern bool_t xdr_retention_set4(); 3609 extern bool_t xdr_fs_charset_cap4(); 3610 extern bool_t xdr_fattr4_supported_attrs(); 3611 extern bool_t xdr_fattr4_suppattr_exclcreat(); 3612 extern bool_t xdr_fattr4_type(); 3613 extern bool_t xdr_fattr4_fh_expire_type(); 3614 extern bool_t xdr_fattr4_change(); 3615 extern bool_t xdr_fattr4_size(); 3616 extern bool_t xdr_fattr4_link_support(); 3617 extern bool_t xdr_fattr4_symlink_support(); 3618 extern bool_t xdr_fattr4_named_attr(); 3619 extern bool_t xdr_fattr4_fsid(); 3620 extern bool_t xdr_fattr4_unique_handles(); 3621 extern bool_t xdr_fattr4_lease_time(); 3622 extern bool_t xdr_fattr4_rdattr_error(); 3623 extern bool_t xdr_fattr4_acl(); 3624 extern bool_t xdr_fattr4_aclsupport(); 3625 extern bool_t xdr_fattr4_archive(); 3626 extern bool_t xdr_fattr4_cansettime(); 3627 extern bool_t xdr_fattr4_case_insensitive(); 3628 extern bool_t xdr_fattr4_case_preserving(); 3629 extern bool_t xdr_fattr4_chown_restricted(); 3630 extern bool_t xdr_fattr4_fileid(); 3631 extern bool_t xdr_fattr4_files_avail(); 3632 extern bool_t xdr_fattr4_filehandle(); 3633 extern bool_t xdr_fattr4_files_free(); 3634 extern bool_t xdr_fattr4_files_total(); 3635 extern bool_t xdr_fattr4_fs_locations(); 3636 extern bool_t xdr_fattr4_hidden(); 3637 extern bool_t xdr_fattr4_homogeneous(); 3638 extern bool_t xdr_fattr4_maxfilesize(); 3639 extern bool_t xdr_fattr4_maxlink(); 3640 extern bool_t xdr_fattr4_maxname(); 3641 extern bool_t xdr_fattr4_maxread(); 3642 extern bool_t xdr_fattr4_maxwrite(); 3643 extern bool_t xdr_fattr4_mimetype(); 3644 extern bool_t xdr_fattr4_mode(); 3645 extern bool_t xdr_fattr4_mode_set_masked(); 3646 extern bool_t xdr_fattr4_mounted_on_fileid(); 3647 extern bool_t xdr_fattr4_no_trunc(); 3648 extern bool_t xdr_fattr4_numlinks(); 3649 extern bool_t xdr_fattr4_owner(); 3650 extern bool_t xdr_fattr4_owner_group(); 3651 extern bool_t xdr_fattr4_quota_avail_hard(); 3652 extern bool_t xdr_fattr4_quota_avail_soft(); 3653 extern bool_t xdr_fattr4_quota_used(); 3654 extern bool_t xdr_fattr4_rawdev(); 3655 extern bool_t xdr_fattr4_space_avail(); 3656 extern bool_t xdr_fattr4_space_free(); 3657 extern bool_t xdr_fattr4_space_total(); 3658 extern bool_t xdr_fattr4_space_used(); 3659 extern bool_t xdr_fattr4_system(); 3660 extern bool_t xdr_fattr4_time_access(); 3661 extern bool_t xdr_fattr4_time_access_set(); 3662 extern bool_t xdr_fattr4_time_backup(); 3663 extern bool_t xdr_fattr4_time_create(); 3664 extern bool_t xdr_fattr4_time_delta(); 3665 extern bool_t xdr_fattr4_time_metadata(); 3666 extern bool_t xdr_fattr4_time_modify(); 3667 extern bool_t xdr_fattr4_time_modify_set(); 3668 extern bool_t xdr_fattr4_dir_notif_delay(); 3669 extern bool_t xdr_fattr4_dirent_notif_delay(); 3670 extern bool_t xdr_fattr4_absent(); 3671 extern bool_t xdr_fattr4_fs_layout_types(); 3672 extern bool_t xdr_fattr4_fs_status(); 3673 extern bool_t xdr_fattr4_fs_charset_cap4(); 3674 extern bool_t xdr_fattr4_layout_alignment(); 3675 extern bool_t xdr_fattr4_layout_blksize(); 3676 extern bool_t xdr_fattr4_layout_hint(); 3677 extern bool_t xdr_fattr4_layout_types(); 3678 extern bool_t xdr_fattr4_mdsthreshold(); 3679 extern bool_t xdr_fattr4_retention_get(); 3680 extern bool_t xdr_fattr4_retention_set(); 3681 extern bool_t xdr_fattr4_retentevt_get(); 3682 extern bool_t xdr_fattr4_retentevt_set(); 3683 extern bool_t xdr_fattr4_retention_hold(); 3684 extern bool_t xdr_fattr4_dacl(); 3685 extern bool_t xdr_fattr4_sacl(); 3686 extern bool_t xdr_fattr4(); 3687 extern bool_t xdr_change_info4(); 3688 extern bool_t xdr_clientaddr4(); 3689 extern bool_t xdr_cb_client4(); 3690 extern bool_t xdr_nfs_client_id4(); 3691 extern bool_t xdr_client_owner4(); 3692 extern bool_t xdr_server_owner4(); 3693 extern bool_t xdr_state_owner4(); 3694 extern bool_t xdr_open_owner4(); 3695 extern bool_t xdr_lock_owner4(); 3696 extern bool_t xdr_nfs_lock_type4(); 3697 extern bool_t xdr_ssv_subkey4(); 3698 extern bool_t xdr_ssv_mic_plain_tkn4(); 3699 extern bool_t xdr_ssv_mic_tkn4(); 3700 extern bool_t xdr_ssv_seal_plain_tkn4(); 3701 extern bool_t xdr_ssv_seal_cipher_tkn4(); 3702 extern bool_t xdr_fs_locations_server4(); 3703 extern bool_t xdr_fs_locations_item4(); 3704 extern bool_t xdr_fs_locations_info4(); 3705 extern bool_t xdr_fattr4_fs_locations_info(); 3706 extern bool_t xdr_nfl_util4(); 3707 extern bool_t xdr_filelayout_hint_care4(); 3708 extern bool_t xdr_nfsv4_1_file_layouthint4(); 3709 extern bool_t xdr_multipath_list4(); 3710 extern bool_t xdr_nfsv4_1_file_layout_ds_addr4(); 3711 extern bool_t xdr_nfsv4_1_file_layout4(); 3712 extern bool_t xdr_ACCESS4args(); 3713 extern bool_t xdr_ACCESS4resok(); 3714 extern bool_t xdr_ACCESS4res(); 3715 extern bool_t xdr_CLOSE4args(); 3716 extern bool_t xdr_CLOSE4res(); 3717 extern bool_t xdr_COMMIT4args(); 3718 extern bool_t xdr_COMMIT4resok(); 3719 extern bool_t xdr_COMMIT4res(); 3720 extern bool_t xdr_createtype4(); 3721 extern bool_t xdr_CREATE4args(); 3722 extern bool_t xdr_CREATE4resok(); 3723 extern bool_t xdr_CREATE4res(); 3724 extern bool_t xdr_DELEGPURGE4args(); 3725 extern bool_t xdr_DELEGPURGE4res(); 3726 extern bool_t xdr_DELEGRETURN4args(); 3727 extern bool_t xdr_DELEGRETURN4res(); 3728 extern bool_t xdr_GETATTR4args(); 3729 extern bool_t xdr_GETATTR4resok(); 3730 extern bool_t xdr_GETATTR4res(); 3731 extern bool_t xdr_GETFH4resok(); 3732 extern bool_t xdr_GETFH4res(); 3733 extern bool_t xdr_LINK4args(); 3734 extern bool_t xdr_LINK4resok(); 3735 extern bool_t xdr_LINK4res(); 3736 extern bool_t xdr_open_to_lock_owner4(); 3737 extern bool_t xdr_exist_lock_owner4(); 3738 extern bool_t xdr_locker4(); 3739 extern bool_t xdr_LOCK4args(); 3740 extern bool_t xdr_LOCK4denied(); 3741 extern bool_t xdr_LOCK4resok(); 3742 extern bool_t xdr_LOCK4res(); 3743 extern bool_t xdr_LOCKT4args(); 3744 extern bool_t xdr_LOCKT4res(); 3745 extern bool_t xdr_LOCKU4args(); 3746 extern bool_t xdr_LOCKU4res(); 3747 extern bool_t xdr_LOOKUP4args(); 3748 extern bool_t xdr_LOOKUP4res(); 3749 extern bool_t xdr_LOOKUPP4res(); 3750 extern bool_t xdr_NVERIFY4args(); 3751 extern bool_t xdr_NVERIFY4res(); 3752 extern bool_t xdr_createmode4(); 3753 extern bool_t xdr_creatverfattr(); 3754 extern bool_t xdr_createhow4(); 3755 extern bool_t xdr_opentype4(); 3756 extern bool_t xdr_openflag4(); 3757 extern bool_t xdr_limit_by4(); 3758 extern bool_t xdr_nfs_modified_limit4(); 3759 extern bool_t xdr_nfs_space_limit4(); 3760 extern bool_t xdr_open_delegation_type4(); 3761 extern bool_t xdr_open_claim_type4(); 3762 extern bool_t xdr_open_claim_delegate_cur4(); 3763 extern bool_t xdr_open_claim4(); 3764 extern bool_t xdr_OPEN4args(); 3765 extern bool_t xdr_open_read_delegation4(); 3766 extern bool_t xdr_open_write_delegation4(); 3767 extern bool_t xdr_why_no_delegation4(); 3768 extern bool_t xdr_open_none_delegation4(); 3769 extern bool_t xdr_open_delegation4(); 3770 extern bool_t xdr_OPEN4resok(); 3771 extern bool_t xdr_OPEN4res(); 3772 extern bool_t xdr_OPENATTR4args(); 3773 extern bool_t xdr_OPENATTR4res(); 3774 extern bool_t xdr_OPEN_CONFIRM4args(); 3775 extern bool_t xdr_OPEN_CONFIRM4resok(); 3776 extern bool_t xdr_OPEN_CONFIRM4res(); 3777 extern bool_t xdr_OPEN_DOWNGRADE4args(); 3778 extern bool_t xdr_OPEN_DOWNGRADE4resok(); 3779 extern bool_t xdr_OPEN_DOWNGRADE4res(); 3780 extern bool_t xdr_PUTFH4args(); 3781 extern bool_t xdr_PUTFH4res(); 3782 extern bool_t xdr_PUTPUBFH4res(); 3783 extern bool_t xdr_PUTROOTFH4res(); 3784 extern bool_t xdr_READ4args(); 3785 extern bool_t xdr_READ4resok(); 3786 extern bool_t xdr_READ4res(); 3787 extern bool_t xdr_READDIR4args(); 3788 extern bool_t xdr_entry4(); 3789 extern bool_t xdr_dirlist4(); 3790 extern bool_t xdr_READDIR4resok(); 3791 extern bool_t xdr_READDIR4res(); 3792 extern bool_t xdr_READLINK4resok(); 3793 extern bool_t xdr_READLINK4res(); 3794 extern bool_t xdr_REMOVE4args(); 3795 extern bool_t xdr_REMOVE4resok(); 3796 extern bool_t xdr_REMOVE4res(); 3797 extern bool_t xdr_RENAME4args(); 3798 extern bool_t xdr_RENAME4resok(); 3799 extern bool_t xdr_RENAME4res(); 3800 extern bool_t xdr_RENEW4args(); 3801 extern bool_t xdr_RENEW4res(); 3802 extern bool_t xdr_RESTOREFH4res(); 3803 extern bool_t xdr_SAVEFH4res(); 3804 extern bool_t xdr_SECINFO4args(); 3805 extern bool_t xdr_rpc_gss_svc_t(); 3806 extern bool_t xdr_rpcsec_gss_info(); 3807 extern bool_t xdr_secinfo4(); 3808 extern bool_t xdr_SECINFO4resok(); 3809 extern bool_t xdr_SECINFO4res(); 3810 extern bool_t xdr_SETATTR4args(); 3811 extern bool_t xdr_SETATTR4res(); 3812 extern bool_t xdr_SETCLIENTID4args(); 3813 extern bool_t xdr_SETCLIENTID4resok(); 3814 extern bool_t xdr_SETCLIENTID4res(); 3815 extern bool_t xdr_SETCLIENTID_CONFIRM4args(); 3816 extern bool_t xdr_SETCLIENTID_CONFIRM4res(); 3817 extern bool_t xdr_VERIFY4args(); 3818 extern bool_t xdr_VERIFY4res(); 3819 extern bool_t xdr_stable_how4(); 3820 extern bool_t xdr_WRITE4args(); 3821 extern bool_t xdr_WRITE4resok(); 3822 extern bool_t xdr_WRITE4res(); 3823 extern bool_t xdr_RELEASE_LOCKOWNER4args(); 3824 extern bool_t xdr_RELEASE_LOCKOWNER4res(); 3825 extern bool_t xdr_ILLEGAL4res(); 3826 extern bool_t xdr_gsshandle4_t(); 3827 extern bool_t xdr_gss_cb_handles4(); 3828 extern bool_t xdr_callback_sec_parms4(); 3829 extern bool_t xdr_BACKCHANNEL_CTL4args(); 3830 extern bool_t xdr_BACKCHANNEL_CTL4res(); 3831 extern bool_t xdr_channel_dir_from_client4(); 3832 extern bool_t xdr_BIND_CONN_TO_SESSION4args(); 3833 extern bool_t xdr_channel_dir_from_server4(); 3834 extern bool_t xdr_BIND_CONN_TO_SESSION4resok(); 3835 extern bool_t xdr_BIND_CONN_TO_SESSION4res(); 3836 extern bool_t xdr_state_protect_ops4(); 3837 extern bool_t xdr_ssv_sp_parms4(); 3838 extern bool_t xdr_state_protect_how4(); 3839 extern bool_t xdr_state_protect4_a(); 3840 extern bool_t xdr_EXCHANGE_ID4args(); 3841 extern bool_t xdr_ssv_prot_info4(); 3842 extern bool_t xdr_state_protect4_r(); 3843 extern bool_t xdr_EXCHANGE_ID4resok(); 3844 extern bool_t xdr_EXCHANGE_ID4res(); 3845 extern bool_t xdr_channel_attrs4(); 3846 extern bool_t xdr_CREATE_SESSION4args(); 3847 extern bool_t xdr_CREATE_SESSION4resok(); 3848 extern bool_t xdr_CREATE_SESSION4res(); 3849 extern bool_t xdr_DESTROY_SESSION4args(); 3850 extern bool_t xdr_DESTROY_SESSION4res(); 3851 extern bool_t xdr_FREE_STATEID4args(); 3852 extern bool_t xdr_FREE_STATEID4res(); 3853 extern bool_t xdr_attr_notice4(); 3854 extern bool_t xdr_GET_DIR_DELEGATION4args(); 3855 extern bool_t xdr_GET_DIR_DELEGATION4resok(); 3856 extern bool_t xdr_gddrnf4_status(); 3857 extern bool_t xdr_GET_DIR_DELEGATION4res_non_fatal(); 3858 extern bool_t xdr_GET_DIR_DELEGATION4res(); 3859 extern bool_t xdr_GETDEVICEINFO4args(); 3860 extern bool_t xdr_GETDEVICEINFO4resok(); 3861 extern bool_t xdr_GETDEVICEINFO4res(); 3862 extern bool_t xdr_GETDEVICELIST4args(); 3863 extern bool_t xdr_GETDEVICELIST4resok(); 3864 extern bool_t xdr_GETDEVICELIST4res(); 3865 extern bool_t xdr_newtime4(); 3866 extern bool_t xdr_newoffset4(); 3867 extern bool_t xdr_LAYOUTCOMMIT4args(); 3868 extern bool_t xdr_newsize4(); 3869 extern bool_t xdr_LAYOUTCOMMIT4resok(); 3870 extern bool_t xdr_LAYOUTCOMMIT4res(); 3871 extern bool_t xdr_LAYOUTGET4args(); 3872 extern bool_t xdr_LAYOUTGET4resok(); 3873 extern bool_t xdr_LAYOUTGET4res(); 3874 extern bool_t xdr_LAYOUTRETURN4args(); 3875 extern bool_t xdr_layoutreturn_stateid(); 3876 extern bool_t xdr_LAYOUTRETURN4res(); 3877 extern bool_t xdr_secinfo_style4(); 3878 extern bool_t xdr_SECINFO_NO_NAME4args(); 3879 extern bool_t xdr_SECINFO_NO_NAME4res(); 3880 extern bool_t xdr_SEQUENCE4args(); 3881 extern bool_t xdr_SEQUENCE4resok(); 3882 extern bool_t xdr_SEQUENCE4res(); 3883 extern bool_t xdr_ssa_digest_input4(); 3884 extern bool_t xdr_SET_SSV4args(); 3885 extern bool_t xdr_ssr_digest_input4(); 3886 extern bool_t xdr_SET_SSV4resok(); 3887 extern bool_t xdr_SET_SSV4res(); 3888 extern bool_t xdr_TEST_STATEID4args(); 3889 extern bool_t xdr_TEST_STATEID4resok(); 3890 extern bool_t xdr_TEST_STATEID4res(); 3891 extern bool_t xdr_deleg_claim4(); 3892 extern bool_t xdr_WANT_DELEGATION4args(); 3893 extern bool_t xdr_WANT_DELEGATION4res(); 3894 extern bool_t xdr_DESTROY_CLIENTID4args(); 3895 extern bool_t xdr_DESTROY_CLIENTID4res(); 3896 extern bool_t xdr_RECLAIM_COMPLETE4args(); 3897 extern bool_t xdr_RECLAIM_COMPLETE4res(); 3898 extern bool_t xdr_nfs_opnum4(); 3899 extern bool_t xdr_nfs_argop4(); 3900 extern bool_t xdr_nfs_resop4(); 3901 extern bool_t xdr_COMPOUND4args(); 3902 extern bool_t xdr_COMPOUND4res(); 3903 extern bool_t xdr_CB_GETATTR4args(); 3904 extern bool_t xdr_CB_GETATTR4resok(); 3905 extern bool_t xdr_CB_GETATTR4res(); 3906 extern bool_t xdr_CB_RECALL4args(); 3907 extern bool_t xdr_CB_RECALL4res(); 3908 extern bool_t xdr_CB_ILLEGAL4res(); 3909 extern bool_t xdr_layoutrecall_type4(); 3910 extern bool_t xdr_layoutrecall_file4(); 3911 extern bool_t xdr_layoutrecall4(); 3912 extern bool_t xdr_CB_LAYOUTRECALL4args(); 3913 extern bool_t xdr_CB_LAYOUTRECALL4res(); 3914 extern bool_t xdr_notify_type4(); 3915 extern bool_t xdr_notify_entry4(); 3916 extern bool_t xdr_prev_entry4(); 3917 extern bool_t xdr_notify_remove4(); 3918 extern bool_t xdr_notify_add4(); 3919 extern bool_t xdr_notify_attr4(); 3920 extern bool_t xdr_notify_rename4(); 3921 extern bool_t xdr_notify_verifier4(); 3922 extern bool_t xdr_notifylist4(); 3923 extern bool_t xdr_notify4(); 3924 extern bool_t xdr_CB_NOTIFY4args(); 3925 extern bool_t xdr_CB_NOTIFY4res(); 3926 extern bool_t xdr_CB_PUSH_DELEG4args(); 3927 extern bool_t xdr_CB_PUSH_DELEG4res(); 3928 extern bool_t xdr_CB_RECALL_ANY4args(); 3929 extern bool_t xdr_CB_RECALL_ANY4res(); 3930 extern bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(); 3931 extern bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(); 3932 extern bool_t xdr_CB_RECALL_SLOT4args(); 3933 extern bool_t xdr_CB_RECALL_SLOT4res(); 3934 extern bool_t xdr_referring_call4(); 3935 extern bool_t xdr_referring_call_list4(); 3936 extern bool_t xdr_CB_SEQUENCE4args(); 3937 extern bool_t xdr_CB_SEQUENCE4resok(); 3938 extern bool_t xdr_CB_SEQUENCE4res(); 3939 extern bool_t xdr_CB_WANTS_CANCELLED4args(); 3940 extern bool_t xdr_CB_WANTS_CANCELLED4res(); 3941 extern bool_t xdr_CB_NOTIFY_LOCK4args(); 3942 extern bool_t xdr_CB_NOTIFY_LOCK4res(); 3943 extern bool_t xdr_notify_deviceid_type4(); 3944 extern bool_t xdr_notify_deviceid_delete4(); 3945 extern bool_t xdr_notify_deviceid_change4(); 3946 extern bool_t xdr_CB_NOTIFY_DEVICEID4args(); 3947 extern bool_t xdr_CB_NOTIFY_DEVICEID4res(); 3948 extern bool_t xdr_nfs_cb_opnum4(); 3949 extern bool_t xdr_nfs_cb_argop4(); 3950 extern bool_t xdr_nfs_cb_resop4(); 3951 extern bool_t xdr_CB_COMPOUND4args(); 3952 extern bool_t xdr_CB_COMPOUND4res(); 3953 3954 #endif /* K&R C */ 3955 3956 #ifdef __cplusplus 3957 } 3958 #endif 3959 3960 #endif /* !_NFS4_PROT_H */ 3961