nfs-ganesha 1.4
|
00001 /* 00002 * Please do not edit this file. 00003 * It was generated using rpcgen. 00004 */ 00005 00006 #ifndef _NFSV41_H_RPCGEN 00007 #define _NFSV41_H_RPCGEN 00008 00009 #ifdef _SOLARIS 00010 #include "solaris_port.h" 00011 #endif /* _SOLARIS */ 00012 00013 #ifdef __cplusplus 00014 extern "C" 00015 { 00016 #endif 00017 00018 #ifndef RPCSEC_GSS 00019 #define RPCSEC_GSS 6 00020 #endif 00021 00022 #ifndef _AUTH_SYS_DEFINE_FOR_NFSv41 00023 #define _AUTH_SYS_DEFINE_FOR_NFSv41 00024 00025 #include "ganesha_rpc.h" 00026 00027 typedef struct authsys_parms authsys_parms; 00028 #endif /* _AUTH_SYS_DEFINE_FOR_NFSv41 */ 00029 00030 #define NFS4_FHSIZE 128 00031 #define NFS4_VERIFIER_SIZE 8 00032 #define NFS4_OPAQUE_LIMIT 1024 00033 #define NFS4_SESSIONID_SIZE 16 00034 #define NFS4_INT64_MAX 0x7fffffffffffffff 00035 #define NFS4_UINT64_MAX 0xffffffffffffffff 00036 #define NFS4_INT32_MAX 0x7fffffff 00037 #define NFS4_UINT32_MAX 0xffffffff 00038 #define NFS4_MAXFILELEN 0xffffffffffffffff 00039 #define NFS4_MAXFILEOFF 0xfffffffffffffffe 00040 00041 enum nfs_ftype4 00042 { 00043 NF4REG = 1, 00044 NF4DIR = 2, 00045 NF4BLK = 3, 00046 NF4CHR = 4, 00047 NF4LNK = 5, 00048 NF4SOCK = 6, 00049 NF4FIFO = 7, 00050 NF4ATTRDIR = 8, 00051 NF4NAMEDATTR = 9, 00052 }; 00053 typedef enum nfs_ftype4 nfs_ftype4; 00054 00055 enum nfsstat4 00056 { 00057 NFS4_OK = 0, 00058 NFS4ERR_PERM = 1, 00059 NFS4ERR_NOENT = 2, 00060 NFS4ERR_IO = 5, 00061 NFS4ERR_NXIO = 6, 00062 NFS4ERR_ACCESS = 13, 00063 NFS4ERR_EXIST = 17, 00064 NFS4ERR_XDEV = 18, 00065 NFS4ERR_NOTDIR = 20, 00066 NFS4ERR_ISDIR = 21, 00067 NFS4ERR_INVAL = 22, 00068 NFS4ERR_FBIG = 27, 00069 NFS4ERR_NOSPC = 28, 00070 NFS4ERR_ROFS = 30, 00071 NFS4ERR_MLINK = 31, 00072 NFS4ERR_NAMETOOLONG = 63, 00073 NFS4ERR_NOTEMPTY = 66, 00074 NFS4ERR_DQUOT = 69, 00075 NFS4ERR_STALE = 70, 00076 NFS4ERR_BADHANDLE = 10001, 00077 NFS4ERR_BAD_COOKIE = 10003, 00078 NFS4ERR_NOTSUPP = 10004, 00079 NFS4ERR_TOOSMALL = 10005, 00080 NFS4ERR_SERVERFAULT = 10006, 00081 NFS4ERR_BADTYPE = 10007, 00082 NFS4ERR_DELAY = 10008, 00083 NFS4ERR_SAME = 10009, 00084 NFS4ERR_DENIED = 10010, 00085 NFS4ERR_EXPIRED = 10011, 00086 NFS4ERR_LOCKED = 10012, 00087 NFS4ERR_GRACE = 10013, 00088 NFS4ERR_FHEXPIRED = 10014, 00089 NFS4ERR_SHARE_DENIED = 10015, 00090 NFS4ERR_WRONGSEC = 10016, 00091 NFS4ERR_CLID_INUSE = 10017, 00092 NFS4ERR_RESOURCE = 10018, 00093 NFS4ERR_MOVED = 10019, 00094 NFS4ERR_NOFILEHANDLE = 10020, 00095 NFS4ERR_MINOR_VERS_MISMATCH = 10021, 00096 NFS4ERR_STALE_CLIENTID = 10022, 00097 NFS4ERR_STALE_STATEID = 10023, 00098 NFS4ERR_OLD_STATEID = 10024, 00099 NFS4ERR_BAD_STATEID = 10025, 00100 NFS4ERR_BAD_SEQID = 10026, 00101 NFS4ERR_NOT_SAME = 10027, 00102 NFS4ERR_LOCK_RANGE = 10028, 00103 NFS4ERR_SYMLINK = 10029, 00104 NFS4ERR_RESTOREFH = 10030, 00105 NFS4ERR_LEASE_MOVED = 10031, 00106 NFS4ERR_ATTRNOTSUPP = 10032, 00107 NFS4ERR_NO_GRACE = 10033, 00108 NFS4ERR_RECLAIM_BAD = 10034, 00109 NFS4ERR_RECLAIM_CONFLICT = 10035, 00110 NFS4ERR_BADXDR = 10036, 00111 NFS4ERR_LOCKS_HELD = 10037, 00112 NFS4ERR_OPENMODE = 10038, 00113 NFS4ERR_BADOWNER = 10039, 00114 NFS4ERR_BADCHAR = 10040, 00115 NFS4ERR_BADNAME = 10041, 00116 NFS4ERR_BAD_RANGE = 10042, 00117 NFS4ERR_LOCK_NOTSUPP = 10043, 00118 NFS4ERR_OP_ILLEGAL = 10044, 00119 NFS4ERR_DEADLOCK = 10045, 00120 NFS4ERR_FILE_OPEN = 10046, 00121 NFS4ERR_ADMIN_REVOKED = 10047, 00122 NFS4ERR_CB_PATH_DOWN = 10048, 00123 NFS4ERR_BADIOMODE = 10049, 00124 NFS4ERR_BADLAYOUT = 10050, 00125 NFS4ERR_BAD_SESSION_DIGEST = 10051, 00126 NFS4ERR_BADSESSION = 10052, 00127 NFS4ERR_BADSLOT = 10053, 00128 NFS4ERR_COMPLETE_ALREADY = 10054, 00129 NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055, 00130 NFS4ERR_DELEG_ALREADY_WANTED = 10056, 00131 NFS4ERR_BACK_CHAN_BUSY = 10057, 00132 NFS4ERR_LAYOUTTRYLATER = 10058, 00133 NFS4ERR_LAYOUTUNAVAILABLE = 10059, 00134 NFS4ERR_NOMATCHING_LAYOUT = 10060, 00135 NFS4ERR_RECALLCONFLICT = 10061, 00136 NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062, 00137 NFS4ERR_SEQ_MISORDERED = 10063, 00138 NFS4ERR_SEQUENCE_POS = 10064, 00139 NFS4ERR_REQ_TOO_BIG = 10065, 00140 NFS4ERR_REP_TOO_BIG = 10066, 00141 NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067, 00142 NFS4ERR_RETRY_UNCACHED_REP = 10068, 00143 NFS4ERR_UNSAFE_COMPOUND = 10069, 00144 NFS4ERR_TOO_MANY_OPS = 10070, 00145 NFS4ERR_OP_NOT_IN_SESSION = 10071, 00146 NFS4ERR_HASH_ALG_UNSUPP = 10072, 00147 NFS4ERR_CLIENTID_BUSY = 10074, 00148 NFS4ERR_PNFS_IO_HOLE = 10075, 00149 NFS4ERR_SEQ_FALSE_RETRY = 10076, 00150 NFS4ERR_BAD_HIGH_SLOT = 10077, 00151 NFS4ERR_DEADSESSION = 10078, 00152 NFS4ERR_ENCR_ALG_UNSUPP = 10079, 00153 NFS4ERR_PNFS_NO_LAYOUT = 10080, 00154 NFS4ERR_NOT_ONLY_OP = 10081, 00155 NFS4ERR_WRONG_CRED = 10082, 00156 NFS4ERR_WRONG_TYPE = 10083, 00157 NFS4ERR_DIRDELEG_UNAVAIL = 10084, 00158 NFS4ERR_REJECT_DELEG = 10085, 00159 NFS4ERR_RETURNCONFLICT = 10086, 00160 NFS4ERR_DELEG_REVOKED = 10087, 00161 }; 00162 typedef enum nfsstat4 nfsstat4; 00163 00164 typedef struct 00165 { 00166 u_int attrlist4_len; 00167 char *attrlist4_val; 00168 } attrlist4; 00169 00170 typedef struct 00171 { 00172 u_int bitmap4_len; 00173 uint32_t *bitmap4_val; 00174 } bitmap4; 00175 00176 typedef uint64_t changeid4; 00177 00178 typedef uint64_t clientid4; 00179 00180 typedef uint32_t count4; 00181 00182 typedef uint64_t length4; 00183 00184 typedef uint32_t mode4; 00185 00186 typedef uint64_t nfs_cookie4; 00187 00188 typedef struct 00189 { 00190 u_int nfs_fh4_len; 00191 char *nfs_fh4_val; 00192 } nfs_fh4; 00193 00194 typedef uint64_t offset4; 00195 00196 typedef uint32_t qop4; 00197 00198 typedef struct 00199 { 00200 u_int sec_oid4_len; 00201 char *sec_oid4_val; 00202 } sec_oid4; 00203 00204 typedef uint32_t sequenceid4; 00205 00206 typedef uint32_t seqid4; 00207 00208 typedef char sessionid4[NFS4_SESSIONID_SIZE]; 00209 00210 typedef uint32_t slotid4; 00211 00212 typedef struct 00213 { 00214 u_int utf8string_len; 00215 char *utf8string_val; 00216 } utf8string; 00217 00218 typedef utf8string utf8str_cis; 00219 00220 typedef utf8string utf8str_cs; 00221 00222 typedef utf8string utf8str_mixed; 00223 00224 typedef utf8str_cs component4; 00225 00226 typedef utf8str_cs linktext4; 00227 00228 typedef struct 00229 { 00230 u_int pathname4_len; 00231 component4 *pathname4_val; 00232 } pathname4; 00233 00234 typedef char verifier4[NFS4_VERIFIER_SIZE]; 00235 00236 struct nfstime4 00237 { 00238 int64_t seconds; 00239 uint32_t nseconds; 00240 }; 00241 typedef struct nfstime4 nfstime4; 00242 00243 enum time_how4 00244 { 00245 SET_TO_SERVER_TIME4 = 0, 00246 SET_TO_CLIENT_TIME4 = 1, 00247 }; 00248 typedef enum time_how4 time_how4; 00249 00250 struct settime4 00251 { 00252 time_how4 set_it; 00253 union 00254 { 00255 nfstime4 time; 00256 } settime4_u; 00257 }; 00258 typedef struct settime4 settime4; 00259 00260 typedef uint32_t nfs_lease4; 00261 00262 struct fsid4 00263 { 00264 uint64_t major; 00265 uint64_t minor; 00266 }; 00267 typedef struct fsid4 fsid4; 00268 00269 struct change_policy4 00270 { 00271 uint64_t cp_major; 00272 uint64_t cp_minor; 00273 }; 00274 typedef struct change_policy4 change_policy4; 00275 00276 struct fs_location4 00277 { 00278 struct 00279 { 00280 u_int server_len; 00281 utf8str_cis *server_val; 00282 } server; 00283 pathname4 rootpath; 00284 }; 00285 typedef struct fs_location4 fs_location4; 00286 00287 struct fs_locations4 00288 { 00289 pathname4 fs_root; 00290 struct 00291 { 00292 u_int locations_len; 00293 fs_location4 *locations_val; 00294 } locations; 00295 }; 00296 typedef struct fs_locations4 fs_locations4; 00297 #define ACL4_SUPPORT_ALLOW_ACL 0x00000001 00298 #define ACL4_SUPPORT_DENY_ACL 0x00000002 00299 #define ACL4_SUPPORT_AUDIT_ACL 0x00000004 00300 #define ACL4_SUPPORT_ALARM_ACL 0x00000008 00301 00302 typedef uint32_t acetype4; 00303 #define ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000 00304 #define ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001 00305 #define ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002 00306 #define ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003 00307 00308 typedef uint32_t aceflag4; 00309 #define ACE4_FILE_INHERIT_ACE 0x00000001 00310 #define ACE4_DIRECTORY_INHERIT_ACE 0x00000002 00311 #define ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004 00312 #define ACE4_INHERIT_ONLY_ACE 0x00000008 00313 #define ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010 00314 #define ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020 00315 #define ACE4_IDENTIFIER_GROUP 0x00000040 00316 #define ACE4_INHERITED_ACE 0x00000080 00317 00318 typedef uint32_t acemask4; 00319 #define ACE4_READ_DATA 0x00000001 00320 #define ACE4_LIST_DIRECTORY 0x00000001 00321 #define ACE4_WRITE_DATA 0x00000002 00322 #define ACE4_ADD_FILE 0x00000002 00323 #define ACE4_APPEND_DATA 0x00000004 00324 #define ACE4_ADD_SUBDIRECTORY 0x00000004 00325 #define ACE4_READ_NAMED_ATTRS 0x00000008 00326 #define ACE4_WRITE_NAMED_ATTRS 0x00000010 00327 #define ACE4_EXECUTE 0x00000020 00328 #define ACE4_DELETE_CHILD 0x00000040 00329 #define ACE4_READ_ATTRIBUTES 0x00000080 00330 #define ACE4_WRITE_ATTRIBUTES 0x00000100 00331 #define ACE4_WRITE_RETENTION 0x00000200 00332 #define ACE4_WRITE_RETENTION_HOLD 0x00000400 00333 #define ACE4_DELETE 0x00010000 00334 #define ACE4_READ_ACL 0x00020000 00335 #define ACE4_WRITE_ACL 0x00040000 00336 #define ACE4_WRITE_OWNER 0x00080000 00337 #define ACE4_SYNCHRONIZE 0x00100000 00338 #define ACE4_GENERIC_READ 0x00120081 00339 #define ACE4_GENERIC_WRITE 0x00160106 00340 #define ACE4_GENERIC_EXECUTE 0x001200A0 00341 00342 struct nfsace4 00343 { 00344 acetype4 type; 00345 aceflag4 flag; 00346 acemask4 access_mask; 00347 utf8str_mixed who; 00348 }; 00349 typedef struct nfsace4 nfsace4; 00350 00351 typedef uint32_t aclflag4; 00352 #define ACL4_AUTO_INHERIT 0x00000001 00353 #define ACL4_PROTECTED 0x00000002 00354 #define ACL4_DEFAULTED 0x00000004 00355 00356 struct nfsacl41 00357 { 00358 aclflag4 na41_flag; 00359 struct 00360 { 00361 u_int na41_aces_len; 00362 nfsace4 *na41_aces_val; 00363 } na41_aces; 00364 }; 00365 typedef struct nfsacl41 nfsacl41; 00366 #define MODE4_SUID 0x800 00367 #define MODE4_SGID 0x400 00368 #define MODE4_SVTX 0x200 00369 #define MODE4_RUSR 0x100 00370 #define MODE4_WUSR 0x080 00371 #define MODE4_XUSR 0x040 00372 #define MODE4_RGRP 0x020 00373 #define MODE4_WGRP 0x010 00374 #define MODE4_XGRP 0x008 00375 #define MODE4_ROTH 0x004 00376 #define MODE4_WOTH 0x002 00377 #define MODE4_XOTH 0x001 00378 00379 struct mode_masked4 00380 { 00381 mode4 mm_value_to_set; 00382 mode4 mm_mask_bits; 00383 }; 00384 typedef struct mode_masked4 mode_masked4; 00385 00386 struct specdata4 00387 { 00388 uint32_t specdata1; 00389 uint32_t specdata2; 00390 }; 00391 typedef struct specdata4 specdata4; 00392 #define FH4_PERSISTENT 0x00000000 00393 #define FH4_NOEXPIRE_WITH_OPEN 0x00000001 00394 #define FH4_VOLATILE_ANY 0x00000002 00395 #define FH4_VOL_MIGRATION 0x00000004 00396 #define FH4_VOL_RENAME 0x00000008 00397 00398 struct netaddr4 00399 { 00400 char *r_netid; 00401 char *r_addr; 00402 }; 00403 typedef struct netaddr4 netaddr4; 00404 00405 struct nfs_impl_id4 00406 { 00407 utf8str_cis nii_domain; 00408 utf8str_cs nii_name; 00409 nfstime4 nii_date; 00410 }; 00411 typedef struct nfs_impl_id4 nfs_impl_id4; 00412 00413 struct stateid4 00414 { 00415 uint32_t seqid; 00416 char other[12]; 00417 }; 00418 typedef struct stateid4 stateid4; 00419 00420 enum layouttype4 00421 { 00422 LAYOUT4_NFSV4_1_FILES = 0x1, 00423 LAYOUT4_OSD2_OBJECTS = 0x2, 00424 LAYOUT4_BLOCK_VOLUME = 0x3, 00425 }; 00426 typedef enum layouttype4 layouttype4; 00427 00428 struct layout_content4 00429 { 00430 layouttype4 loc_type; 00431 struct 00432 { 00433 u_int loc_body_len; 00434 char *loc_body_val; 00435 } loc_body; 00436 }; 00437 typedef struct layout_content4 layout_content4; 00438 /* 00439 * LAYOUT4_OSD2_OBJECTS loc_body description 00440 * is in a separate .x file 00441 */ 00442 00443 /* 00444 * LAYOUT4_BLOCK_VOLUME loc_body description 00445 * is in a separate .x file 00446 */ 00447 00448 struct layouthint4 00449 { 00450 layouttype4 loh_type; 00451 struct 00452 { 00453 u_int loh_body_len; 00454 char *loh_body_val; 00455 } loh_body; 00456 }; 00457 typedef struct layouthint4 layouthint4; 00458 00459 enum layoutiomode4 00460 { 00461 LAYOUTIOMODE4_READ = 1, 00462 LAYOUTIOMODE4_RW = 2, 00463 LAYOUTIOMODE4_ANY = 3, 00464 }; 00465 typedef enum layoutiomode4 layoutiomode4; 00466 00467 struct layout4 00468 { 00469 offset4 lo_offset; 00470 length4 lo_length; 00471 layoutiomode4 lo_iomode; 00472 layout_content4 lo_content; 00473 }; 00474 typedef struct layout4 layout4; 00475 #define NFS4_DEVICEID4_SIZE 16 00476 00477 typedef char deviceid4[NFS4_DEVICEID4_SIZE]; 00478 00479 struct device_addr4 00480 { 00481 layouttype4 da_layout_type; 00482 struct 00483 { 00484 u_int da_addr_body_len; 00485 char *da_addr_body_val; 00486 } da_addr_body; 00487 }; 00488 typedef struct device_addr4 device_addr4; 00489 00490 struct layoutupdate4 00491 { 00492 layouttype4 lou_type; 00493 struct 00494 { 00495 u_int lou_body_len; 00496 char *lou_body_val; 00497 } lou_body; 00498 }; 00499 typedef struct layoutupdate4 layoutupdate4; 00500 00501 #define LAYOUT4_RET_REC_FILE 1 00502 #define LAYOUT4_RET_REC_FSID 2 00503 #define LAYOUT4_RET_REC_ALL 3 00504 00505 enum layoutreturn_type4 00506 { 00507 LAYOUTRETURN4_FILE = LAYOUT4_RET_REC_FILE, 00508 LAYOUTRETURN4_FSID = LAYOUT4_RET_REC_FSID, 00509 LAYOUTRETURN4_ALL = LAYOUT4_RET_REC_ALL, 00510 }; 00511 typedef enum layoutreturn_type4 layoutreturn_type4; 00512 /* layouttype4 specific data */ 00513 00514 struct layoutreturn_file4 00515 { 00516 offset4 lrf_offset; 00517 length4 lrf_length; 00518 stateid4 lrf_stateid; 00519 struct 00520 { 00521 u_int lrf_body_len; 00522 char *lrf_body_val; 00523 } lrf_body; 00524 }; 00525 typedef struct layoutreturn_file4 layoutreturn_file4; 00526 00527 struct layoutreturn4 00528 { 00529 layoutreturn_type4 lr_returntype; 00530 union 00531 { 00532 layoutreturn_file4 lr_layout; 00533 } layoutreturn4_u; 00534 }; 00535 typedef struct layoutreturn4 layoutreturn4; 00536 00537 enum fs4_status_type 00538 { 00539 STATUS4_FIXED = 1, 00540 STATUS4_UPDATED = 2, 00541 STATUS4_VERSIONED = 3, 00542 STATUS4_WRITABLE = 4, 00543 STATUS4_REFERRAL = 5, 00544 }; 00545 typedef enum fs4_status_type fs4_status_type; 00546 00547 struct fs4_status 00548 { 00549 bool_t fss_absent; 00550 fs4_status_type fss_type; 00551 utf8str_cs fss_source; 00552 utf8str_cs fss_current; 00553 int32_t fss_age; 00554 nfstime4 fss_version; 00555 }; 00556 typedef struct fs4_status fs4_status; 00557 #define TH4_READ_SIZE 0 00558 #define TH4_WRITE_SIZE 1 00559 #define TH4_READ_IOSIZE 2 00560 #define TH4_WRITE_IOSIZE 3 00561 00562 typedef length4 threshold4_read_size; 00563 00564 typedef length4 threshold4_write_size; 00565 00566 typedef length4 threshold4_read_iosize; 00567 00568 typedef length4 threshold4_write_iosize; 00569 00570 struct threshold_item4 00571 { 00572 layouttype4 thi_layout_type; 00573 bitmap4 thi_hintset; 00574 struct 00575 { 00576 u_int thi_hintlist_len; 00577 char *thi_hintlist_val; 00578 } thi_hintlist; 00579 }; 00580 typedef struct threshold_item4 threshold_item4; 00581 00582 struct mdsthreshold4 00583 { 00584 struct 00585 { 00586 u_int mth_hints_len; 00587 threshold_item4 *mth_hints_val; 00588 } mth_hints; 00589 }; 00590 typedef struct mdsthreshold4 mdsthreshold4; 00591 #define RET4_DURATION_INFINITE 0xffffffffffffffff 00592 00593 struct retention_get4 00594 { 00595 uint64_t rg_duration; 00596 struct 00597 { 00598 u_int rg_begin_time_len; 00599 nfstime4 *rg_begin_time_val; 00600 } rg_begin_time; 00601 }; 00602 typedef struct retention_get4 retention_get4; 00603 00604 struct retention_set4 00605 { 00606 bool_t rs_enable; 00607 struct 00608 { 00609 u_int rs_duration_len; 00610 uint64_t *rs_duration_val; 00611 } rs_duration; 00612 }; 00613 typedef struct retention_set4 retention_set4; 00614 #define FSCHARSET_CAP4_CONTAINS_NON_UTF8 0x1 00615 #define FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 0x2 00616 00617 typedef uint32_t fs_charset_cap4; 00618 00619 typedef bitmap4 fattr4_supported_attrs; 00620 00621 typedef nfs_ftype4 fattr4_type; 00622 00623 typedef uint32_t fattr4_fh_expire_type; 00624 00625 typedef changeid4 fattr4_change; 00626 00627 typedef uint64_t fattr4_size; 00628 00629 typedef bool_t fattr4_link_support; 00630 00631 typedef bool_t fattr4_symlink_support; 00632 00633 typedef bool_t fattr4_named_attr; 00634 00635 typedef fsid4 fattr4_fsid; 00636 00637 typedef bool_t fattr4_unique_handles; 00638 00639 typedef nfs_lease4 fattr4_lease_time; 00640 00641 typedef nfsstat4 fattr4_rdattr_error; 00642 00643 typedef struct 00644 { 00645 u_int fattr4_acl_len; 00646 nfsace4 *fattr4_acl_val; 00647 } fattr4_acl; 00648 00649 typedef uint32_t fattr4_aclsupport; 00650 00651 typedef bool_t fattr4_archive; 00652 00653 typedef bool_t fattr4_cansettime; 00654 00655 typedef bool_t fattr4_case_insensitive; 00656 00657 typedef bool_t fattr4_case_preserving; 00658 00659 typedef bool_t fattr4_chown_restricted; 00660 00661 typedef uint64_t fattr4_fileid; 00662 00663 typedef uint64_t fattr4_files_avail; 00664 00665 typedef nfs_fh4 fattr4_filehandle; 00666 00667 typedef uint64_t fattr4_files_free; 00668 00669 typedef uint64_t fattr4_files_total; 00670 00671 typedef fs_locations4 fattr4_fs_locations; 00672 00673 typedef bool_t fattr4_hidden; 00674 00675 typedef bool_t fattr4_homogeneous; 00676 00677 typedef uint64_t fattr4_maxfilesize; 00678 00679 typedef uint32_t fattr4_maxlink; 00680 00681 typedef uint32_t fattr4_maxname; 00682 00683 typedef uint64_t fattr4_maxread; 00684 00685 typedef uint64_t fattr4_maxwrite; 00686 00687 typedef utf8str_cs fattr4_mimetype; 00688 00689 typedef mode4 fattr4_mode; 00690 00691 typedef mode_masked4 fattr4_mode_set_masked; 00692 00693 typedef uint64_t fattr4_mounted_on_fileid; 00694 00695 typedef bool_t fattr4_no_trunc; 00696 00697 typedef uint32_t fattr4_numlinks; 00698 00699 typedef utf8str_mixed fattr4_owner; 00700 00701 typedef utf8str_mixed fattr4_owner_group; 00702 00703 typedef uint64_t fattr4_quota_avail_hard; 00704 00705 typedef uint64_t fattr4_quota_avail_soft; 00706 00707 typedef uint64_t fattr4_quota_used; 00708 00709 typedef specdata4 fattr4_rawdev; 00710 00711 typedef uint64_t fattr4_space_avail; 00712 00713 typedef uint64_t fattr4_space_free; 00714 00715 typedef uint64_t fattr4_space_total; 00716 00717 typedef uint64_t fattr4_space_used; 00718 00719 typedef bool_t fattr4_system; 00720 00721 typedef nfstime4 fattr4_time_access; 00722 00723 typedef settime4 fattr4_time_access_set; 00724 00725 typedef nfstime4 fattr4_time_backup; 00726 00727 typedef nfstime4 fattr4_time_create; 00728 00729 typedef nfstime4 fattr4_time_delta; 00730 00731 typedef nfstime4 fattr4_time_metadata; 00732 00733 typedef nfstime4 fattr4_time_modify; 00734 00735 typedef settime4 fattr4_time_modify_set; 00736 00737 typedef bitmap4 fattr4_suppattr_exclcreat; 00738 00739 typedef nfstime4 fattr4_dir_notif_delay; 00740 00741 typedef nfstime4 fattr4_dirent_notif_delay; 00742 00743 typedef struct 00744 { 00745 u_int fattr4_fs_layout_types_len; 00746 layouttype4 *fattr4_fs_layout_types_val; 00747 } fattr4_fs_layout_types; 00748 00749 typedef fs4_status fattr4_fs_status; 00750 00751 typedef fs_charset_cap4 fattr4_fs_charset_cap; 00752 00753 typedef uint32_t fattr4_layout_alignment; 00754 00755 typedef uint32_t fattr4_layout_blksize; 00756 00757 typedef layouthint4 fattr4_layout_hint; 00758 00759 typedef struct 00760 { 00761 u_int fattr4_layout_types_len; 00762 layouttype4 *fattr4_layout_types_val; 00763 } fattr4_layout_types; 00764 00765 typedef mdsthreshold4 fattr4_mdsthreshold; 00766 00767 typedef retention_get4 fattr4_retention_get; 00768 00769 typedef retention_set4 fattr4_retention_set; 00770 00771 typedef retention_get4 fattr4_retentevt_get; 00772 00773 typedef retention_set4 fattr4_retentevt_set; 00774 00775 typedef uint64_t fattr4_retention_hold; 00776 00777 typedef nfsacl41 fattr4_dacl; 00778 00779 typedef nfsacl41 fattr4_sacl; 00780 00781 typedef change_policy4 fattr4_change_policy; 00782 /* 00783 * REQUIRED Attributes 00784 */ 00785 #define FATTR4_SUPPORTED_ATTRS 0 00786 #define FATTR4_TYPE 1 00787 #define FATTR4_FH_EXPIRE_TYPE 2 00788 #define FATTR4_CHANGE 3 00789 #define FATTR4_SIZE 4 00790 #define FATTR4_LINK_SUPPORT 5 00791 #define FATTR4_SYMLINK_SUPPORT 6 00792 #define FATTR4_NAMED_ATTR 7 00793 #define FATTR4_FSID 8 00794 #define FATTR4_UNIQUE_HANDLES 9 00795 #define FATTR4_LEASE_TIME 10 00796 #define FATTR4_RDATTR_ERROR 11 00797 #define FATTR4_FILEHANDLE 19 00798 /* new to NFSV4.1 */ 00799 #define FATTR4_SUPPATTR_EXCLCREAT 75 00800 /* 00801 * RECOMMENDED Attributes 00802 */ 00803 #define FATTR4_ACL 12 00804 #define FATTR4_ACLSUPPORT 13 00805 #define FATTR4_ARCHIVE 14 00806 #define FATTR4_CANSETTIME 15 00807 #define FATTR4_CASE_INSENSITIVE 16 00808 #define FATTR4_CASE_PRESERVING 17 00809 #define FATTR4_CHOWN_RESTRICTED 18 00810 #define FATTR4_FILEID 20 00811 #define FATTR4_FILES_AVAIL 21 00812 #define FATTR4_FILES_FREE 22 00813 #define FATTR4_FILES_TOTAL 23 00814 #define FATTR4_FS_LOCATIONS 24 00815 #define FATTR4_HIDDEN 25 00816 #define FATTR4_HOMOGENEOUS 26 00817 #define FATTR4_MAXFILESIZE 27 00818 #define FATTR4_MAXLINK 28 00819 #define FATTR4_MAXNAME 29 00820 #define FATTR4_MAXREAD 30 00821 #define FATTR4_MAXWRITE 31 00822 #define FATTR4_MIMETYPE 32 00823 #define FATTR4_MODE 33 00824 #define FATTR4_NO_TRUNC 34 00825 #define FATTR4_NUMLINKS 35 00826 #define FATTR4_OWNER 36 00827 #define FATTR4_OWNER_GROUP 37 00828 #define FATTR4_QUOTA_AVAIL_HARD 38 00829 #define FATTR4_QUOTA_AVAIL_SOFT 39 00830 #define FATTR4_QUOTA_USED 40 00831 #define FATTR4_RAWDEV 41 00832 #define FATTR4_SPACE_AVAIL 42 00833 #define FATTR4_SPACE_FREE 43 00834 #define FATTR4_SPACE_TOTAL 44 00835 #define FATTR4_SPACE_USED 45 00836 #define FATTR4_SYSTEM 46 00837 #define FATTR4_TIME_ACCESS 47 00838 #define FATTR4_TIME_ACCESS_SET 48 00839 #define FATTR4_TIME_BACKUP 49 00840 #define FATTR4_TIME_CREATE 50 00841 #define FATTR4_TIME_DELTA 51 00842 #define FATTR4_TIME_METADATA 52 00843 #define FATTR4_TIME_MODIFY 53 00844 #define FATTR4_TIME_MODIFY_SET 54 00845 #define FATTR4_MOUNTED_ON_FILEID 55 00846 00847 /* new to NFSV4.1 */ 00848 00849 #define FATTR4_DIR_NOTIF_DELAY 56 00850 #define FATTR4_DIRENT_NOTIF_DELAY 57 00851 #define FATTR4_DACL 58 00852 #define FATTR4_SACL 59 00853 #define FATTR4_CHANGE_POLICY 60 00854 #define FATTR4_FS_STATUS 61 00855 #define FATTR4_FS_LAYOUT_TYPES 62 00856 #define FATTR4_LAYOUT_HINT 63 00857 #define FATTR4_LAYOUT_TYPES 64 00858 #define FATTR4_LAYOUT_BLKSIZE 65 00859 #define FATTR4_LAYOUT_ALIGNMENT 66 00860 #define FATTR4_FS_LOCATIONS_INFO 67 00861 #define FATTR4_MDSTHRESHOLD 68 00862 #define FATTR4_RETENTION_GET 69 00863 #define FATTR4_RETENTION_SET 70 00864 #define FATTR4_RETENTEVT_GET 71 00865 #define FATTR4_RETENTEVT_SET 72 00866 #define FATTR4_RETENTION_HOLD 73 00867 #define FATTR4_MODE_SET_MASKED 74 00868 #define FATTR4_FS_CHARSET_CAP 76 00869 00870 struct fattr4 00871 { 00872 bitmap4 attrmask; 00873 attrlist4 attr_vals; 00874 }; 00875 typedef struct fattr4 fattr4; 00876 00877 struct change_info4 00878 { 00879 bool_t atomic; 00880 changeid4 before; 00881 changeid4 after; 00882 }; 00883 typedef struct change_info4 change_info4; 00884 00885 typedef netaddr4 clientaddr4; 00886 00887 struct cb_client4 00888 { 00889 uint32_t cb_program; 00890 netaddr4 cb_location; 00891 }; 00892 typedef struct cb_client4 cb_client4; 00893 00894 struct nfs_client_id4 00895 { 00896 verifier4 verifier; 00897 struct 00898 { 00899 u_int id_len; 00900 char *id_val; 00901 } id; 00902 }; 00903 typedef struct nfs_client_id4 nfs_client_id4; 00904 00905 struct client_owner4 00906 { 00907 verifier4 co_verifier; 00908 struct 00909 { 00910 u_int co_ownerid_len; 00911 char *co_ownerid_val; 00912 } co_ownerid; 00913 }; 00914 typedef struct client_owner4 client_owner4; 00915 00916 struct server_owner4 00917 { 00918 uint64_t so_minor_id; 00919 struct 00920 { 00921 u_int so_major_id_len; 00922 char *so_major_id_val; 00923 } so_major_id; 00924 }; 00925 typedef struct server_owner4 server_owner4; 00926 00927 struct state_owner4 00928 { 00929 clientid4 clientid; 00930 struct 00931 { 00932 u_int owner_len; 00933 char *owner_val; 00934 } owner; 00935 }; 00936 typedef struct state_owner4 state_owner4; 00937 00938 typedef state_owner4 open_owner4; 00939 00940 typedef state_owner4 lock_owner4; 00941 00942 enum nfs_lock_type4 00943 { 00944 READ_LT = 1, 00945 WRITE_LT = 2, 00946 READW_LT = 3, 00947 WRITEW_LT = 4, 00948 }; 00949 typedef enum nfs_lock_type4 nfs_lock_type4; 00950 00951 /* Input for computing subkeys */ 00952 00953 enum ssv_subkey4 00954 { 00955 SSV4_SUBKEY_MIC_I2T = 1, 00956 SSV4_SUBKEY_MIC_T2I = 2, 00957 SSV4_SUBKEY_SEAL_I2T = 3, 00958 SSV4_SUBKEY_SEAL_T2I = 4, 00959 }; 00960 typedef enum ssv_subkey4 ssv_subkey4; 00961 00962 /* Input for computing smt_hmac */ 00963 00964 struct ssv_mic_plain_tkn4 00965 { 00966 uint32_t smpt_ssv_seq; 00967 struct 00968 { 00969 u_int smpt_orig_plain_len; 00970 char *smpt_orig_plain_val; 00971 } smpt_orig_plain; 00972 }; 00973 typedef struct ssv_mic_plain_tkn4 ssv_mic_plain_tkn4; 00974 00975 /* SSV GSS PerMsgToken token */ 00976 00977 struct ssv_mic_tkn4 00978 { 00979 uint32_t smt_ssv_seq; 00980 struct 00981 { 00982 u_int smt_hmac_len; 00983 char *smt_hmac_val; 00984 } smt_hmac; 00985 }; 00986 typedef struct ssv_mic_tkn4 ssv_mic_tkn4; 00987 00988 /* Input for computing ssct_encr_data and ssct_hmac */ 00989 00990 struct ssv_seal_plain_tkn4 00991 { 00992 struct 00993 { 00994 u_int sspt_confounder_len; 00995 char *sspt_confounder_val; 00996 } sspt_confounder; 00997 uint32_t sspt_ssv_seq; 00998 struct 00999 { 01000 u_int sspt_orig_plain_len; 01001 char *sspt_orig_plain_val; 01002 } sspt_orig_plain; 01003 struct 01004 { 01005 u_int sspt_pad_len; 01006 char *sspt_pad_val; 01007 } sspt_pad; 01008 }; 01009 typedef struct ssv_seal_plain_tkn4 ssv_seal_plain_tkn4; 01010 01011 /* SSV GSS SealedMessage token */ 01012 01013 struct ssv_seal_cipher_tkn4 01014 { 01015 uint32_t ssct_ssv_seq; 01016 struct 01017 { 01018 u_int ssct_iv_len; 01019 char *ssct_iv_val; 01020 } ssct_iv; 01021 struct 01022 { 01023 u_int ssct_encr_data_len; 01024 char *ssct_encr_data_val; 01025 } ssct_encr_data; 01026 struct 01027 { 01028 u_int ssct_hmac_len; 01029 char *ssct_hmac_val; 01030 } ssct_hmac; 01031 }; 01032 typedef struct ssv_seal_cipher_tkn4 ssv_seal_cipher_tkn4; 01033 01034 struct fs_locations_server4 01035 { 01036 int32_t fls_currency; 01037 struct 01038 { 01039 u_int fls_info_len; 01040 char *fls_info_val; 01041 } fls_info; 01042 utf8str_cis fls_server; 01043 }; 01044 typedef struct fs_locations_server4 fs_locations_server4; 01045 #define FSLI4BX_GFLAGS 0 01046 #define FSLI4BX_TFLAGS 1 01047 #define FSLI4BX_CLSIMUL 2 01048 #define FSLI4BX_CLHANDLE 3 01049 #define FSLI4BX_CLFILEID 4 01050 #define FSLI4BX_CLWRITEVER 5 01051 #define FSLI4BX_CLCHANGE 6 01052 #define FSLI4BX_CLREADDIR 7 01053 #define FSLI4BX_READRANK 8 01054 #define FSLI4BX_WRITERANK 9 01055 #define FSLI4BX_READORDER 10 01056 #define FSLI4BX_WRITEORDER 11 01057 #define FSLI4GF_WRITABLE 0x01 01058 #define FSLI4GF_CUR_REQ 0x02 01059 #define FSLI4GF_ABSENT 0x04 01060 #define FSLI4GF_GOING 0x08 01061 #define FSLI4GF_SPLIT 0x10 01062 #define FSLI4TF_RDMA 0x01 01063 01064 struct fs_locations_item4 01065 { 01066 struct 01067 { 01068 u_int fli_entries_len; 01069 fs_locations_server4 *fli_entries_val; 01070 } fli_entries; 01071 pathname4 fli_rootpath; 01072 }; 01073 typedef struct fs_locations_item4 fs_locations_item4; 01074 01075 struct fs_locations_info4 01076 { 01077 uint32_t fli_flags; 01078 int32_t fli_valid_for; 01079 pathname4 fli_fs_root; 01080 struct 01081 { 01082 u_int fli_items_len; 01083 fs_locations_item4 *fli_items_val; 01084 } fli_items; 01085 }; 01086 typedef struct fs_locations_info4 fs_locations_info4; 01087 #define FSLI4IF_VAR_SUB 0x00000001 01088 01089 typedef fs_locations_info4 fattr4_fs_locations_info; 01090 #define NFL4_UFLG_MASK 0x0000003F 01091 #define NFL4_UFLG_DENSE 0x00000001 01092 #define NFL4_UFLG_COMMIT_THRU_MDS 0x00000002 01093 #define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK 0xFFFFFFC0 01094 01095 typedef uint32_t nfl_util4; 01096 01097 enum filelayout_hint_care4 01098 { 01099 NFLH4_CARE_DENSE = NFL4_UFLG_DENSE, 01100 NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS, 01101 NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040, 01102 NFLH4_CARE_STRIPE_COUNT = 0x00000080, 01103 }; 01104 typedef enum filelayout_hint_care4 filelayout_hint_care4; 01105 01106 /* Encoded in the loh_body field of data type layouthint4: */ 01107 01108 struct nfsv4_1_file_layouthint4 01109 { 01110 uint32_t nflh_care; 01111 nfl_util4 nflh_util; 01112 count4 nflh_stripe_count; 01113 }; 01114 typedef struct nfsv4_1_file_layouthint4 nfsv4_1_file_layouthint4; 01115 01116 typedef struct 01117 { 01118 u_int multipath_list4_len; 01119 netaddr4 *multipath_list4_val; 01120 } multipath_list4; 01121 01122 /* 01123 * Encoded in the da_addr_body field of 01124 * data type device_addr4: 01125 */ 01126 01127 struct nfsv4_1_file_layout_ds_addr4 01128 { 01129 struct 01130 { 01131 u_int nflda_stripe_indices_len; 01132 uint32_t *nflda_stripe_indices_val; 01133 } nflda_stripe_indices; 01134 struct 01135 { 01136 u_int nflda_multipath_ds_list_len; 01137 multipath_list4 *nflda_multipath_ds_list_val; 01138 } nflda_multipath_ds_list; 01139 }; 01140 typedef struct nfsv4_1_file_layout_ds_addr4 nfsv4_1_file_layout_ds_addr4; 01141 01142 /* 01143 * Encoded in the loc_body field of 01144 * data type layout_content4: 01145 */ 01146 01147 struct nfsv4_1_file_layout4 01148 { 01149 deviceid4 nfl_deviceid; 01150 nfl_util4 nfl_util; 01151 uint32_t nfl_first_stripe_index; 01152 offset4 nfl_pattern_offset; 01153 struct 01154 { 01155 u_int nfl_fh_list_len; 01156 nfs_fh4 *nfl_fh_list_val; 01157 } nfl_fh_list; 01158 }; 01159 typedef struct nfsv4_1_file_layout4 nfsv4_1_file_layout4; 01160 01161 /* 01162 * Encoded in the lou_body field of data type layoutupdate4: 01163 * Nothing. lou_body is a zero length array of bytes. 01164 */ 01165 01166 /* 01167 * Encoded in the lrf_body field of 01168 * data type layoutreturn_file4: 01169 * Nothing. lrf_body is a zero length array of bytes. 01170 */ 01171 01172 #define ACCESS4_READ 0x00000001 01173 #define ACCESS4_LOOKUP 0x00000002 01174 #define ACCESS4_MODIFY 0x00000004 01175 #define ACCESS4_EXTEND 0x00000008 01176 #define ACCESS4_DELETE 0x00000010 01177 #define ACCESS4_EXECUTE 0x00000020 01178 01179 struct ACCESS4args 01180 { 01181 uint32_t access; 01182 }; 01183 typedef struct ACCESS4args ACCESS4args; 01184 01185 struct ACCESS4resok 01186 { 01187 uint32_t supported; 01188 uint32_t access; 01189 }; 01190 typedef struct ACCESS4resok ACCESS4resok; 01191 01192 struct ACCESS4res 01193 { 01194 nfsstat4 status; 01195 union 01196 { 01197 ACCESS4resok resok4; 01198 } ACCESS4res_u; 01199 }; 01200 typedef struct ACCESS4res ACCESS4res; 01201 01202 struct CLOSE4args 01203 { 01204 seqid4 seqid; 01205 stateid4 open_stateid; 01206 }; 01207 typedef struct CLOSE4args CLOSE4args; 01208 01209 struct CLOSE4res 01210 { 01211 nfsstat4 status; 01212 union 01213 { 01214 stateid4 open_stateid; 01215 } CLOSE4res_u; 01216 }; 01217 typedef struct CLOSE4res CLOSE4res; 01218 01219 struct COMMIT4args 01220 { 01221 offset4 offset; 01222 count4 count; 01223 }; 01224 typedef struct COMMIT4args COMMIT4args; 01225 01226 struct COMMIT4resok 01227 { 01228 verifier4 writeverf; 01229 }; 01230 typedef struct COMMIT4resok COMMIT4resok; 01231 01232 struct COMMIT4res 01233 { 01234 nfsstat4 status; 01235 union 01236 { 01237 COMMIT4resok resok4; 01238 } COMMIT4res_u; 01239 }; 01240 typedef struct COMMIT4res COMMIT4res; 01241 01242 struct createtype4 01243 { 01244 nfs_ftype4 type; 01245 union 01246 { 01247 linktext4 linkdata; 01248 specdata4 devdata; 01249 } createtype4_u; 01250 }; 01251 typedef struct createtype4 createtype4; 01252 01253 struct CREATE4args 01254 { 01255 createtype4 objtype; 01256 component4 objname; 01257 fattr4 createattrs; 01258 }; 01259 typedef struct CREATE4args CREATE4args; 01260 01261 struct CREATE4resok 01262 { 01263 change_info4 cinfo; 01264 bitmap4 attrset; 01265 }; 01266 typedef struct CREATE4resok CREATE4resok; 01267 01268 struct CREATE4res 01269 { 01270 nfsstat4 status; 01271 union 01272 { 01273 CREATE4resok resok4; 01274 } CREATE4res_u; 01275 }; 01276 typedef struct CREATE4res CREATE4res; 01277 01278 struct DELEGPURGE4args 01279 { 01280 clientid4 clientid; 01281 }; 01282 typedef struct DELEGPURGE4args DELEGPURGE4args; 01283 01284 struct DELEGPURGE4res 01285 { 01286 nfsstat4 status; 01287 }; 01288 typedef struct DELEGPURGE4res DELEGPURGE4res; 01289 01290 struct DELEGRETURN4args 01291 { 01292 stateid4 deleg_stateid; 01293 }; 01294 typedef struct DELEGRETURN4args DELEGRETURN4args; 01295 01296 struct DELEGRETURN4res 01297 { 01298 nfsstat4 status; 01299 }; 01300 typedef struct DELEGRETURN4res DELEGRETURN4res; 01301 01302 struct GETATTR4args 01303 { 01304 bitmap4 attr_request; 01305 }; 01306 typedef struct GETATTR4args GETATTR4args; 01307 01308 struct GETATTR4resok 01309 { 01310 fattr4 obj_attributes; 01311 }; 01312 typedef struct GETATTR4resok GETATTR4resok; 01313 01314 struct GETATTR4res 01315 { 01316 nfsstat4 status; 01317 union 01318 { 01319 GETATTR4resok resok4; 01320 } GETATTR4res_u; 01321 }; 01322 typedef struct GETATTR4res GETATTR4res; 01323 01324 struct GETFH4resok 01325 { 01326 nfs_fh4 object; 01327 }; 01328 typedef struct GETFH4resok GETFH4resok; 01329 01330 struct GETFH4res 01331 { 01332 nfsstat4 status; 01333 union 01334 { 01335 GETFH4resok resok4; 01336 } GETFH4res_u; 01337 }; 01338 typedef struct GETFH4res GETFH4res; 01339 01340 struct LINK4args 01341 { 01342 component4 newname; 01343 }; 01344 typedef struct LINK4args LINK4args; 01345 01346 struct LINK4resok 01347 { 01348 change_info4 cinfo; 01349 }; 01350 typedef struct LINK4resok LINK4resok; 01351 01352 struct LINK4res 01353 { 01354 nfsstat4 status; 01355 union 01356 { 01357 LINK4resok resok4; 01358 } LINK4res_u; 01359 }; 01360 typedef struct LINK4res LINK4res; 01361 01362 struct open_to_lock_owner4 01363 { 01364 seqid4 open_seqid; 01365 stateid4 open_stateid; 01366 seqid4 lock_seqid; 01367 lock_owner4 lock_owner; 01368 }; 01369 typedef struct open_to_lock_owner4 open_to_lock_owner4; 01370 01371 struct exist_lock_owner4 01372 { 01373 stateid4 lock_stateid; 01374 seqid4 lock_seqid; 01375 }; 01376 typedef struct exist_lock_owner4 exist_lock_owner4; 01377 01378 struct locker4 01379 { 01380 bool_t new_lock_owner; 01381 union 01382 { 01383 open_to_lock_owner4 open_owner; 01384 exist_lock_owner4 lock_owner; 01385 } locker4_u; 01386 }; 01387 typedef struct locker4 locker4; 01388 01389 struct LOCK4args 01390 { 01391 nfs_lock_type4 locktype; 01392 bool_t reclaim; 01393 offset4 offset; 01394 length4 length; 01395 locker4 locker; 01396 }; 01397 typedef struct LOCK4args LOCK4args; 01398 01399 struct LOCK4denied 01400 { 01401 offset4 offset; 01402 length4 length; 01403 nfs_lock_type4 locktype; 01404 lock_owner4 owner; 01405 }; 01406 typedef struct LOCK4denied LOCK4denied; 01407 01408 struct LOCK4resok 01409 { 01410 stateid4 lock_stateid; 01411 }; 01412 typedef struct LOCK4resok LOCK4resok; 01413 01414 struct LOCK4res 01415 { 01416 nfsstat4 status; 01417 union 01418 { 01419 LOCK4resok resok4; 01420 LOCK4denied denied; 01421 } LOCK4res_u; 01422 }; 01423 typedef struct LOCK4res LOCK4res; 01424 01425 struct LOCKT4args 01426 { 01427 nfs_lock_type4 locktype; 01428 offset4 offset; 01429 length4 length; 01430 lock_owner4 owner; 01431 }; 01432 typedef struct LOCKT4args LOCKT4args; 01433 01434 struct LOCKT4res 01435 { 01436 nfsstat4 status; 01437 union 01438 { 01439 LOCK4denied denied; 01440 } LOCKT4res_u; 01441 }; 01442 typedef struct LOCKT4res LOCKT4res; 01443 01444 struct LOCKU4args 01445 { 01446 nfs_lock_type4 locktype; 01447 seqid4 seqid; 01448 stateid4 lock_stateid; 01449 offset4 offset; 01450 length4 length; 01451 }; 01452 typedef struct LOCKU4args LOCKU4args; 01453 01454 struct LOCKU4res 01455 { 01456 nfsstat4 status; 01457 union 01458 { 01459 stateid4 lock_stateid; 01460 } LOCKU4res_u; 01461 }; 01462 typedef struct LOCKU4res LOCKU4res; 01463 01464 struct LOOKUP4args 01465 { 01466 component4 objname; 01467 }; 01468 typedef struct LOOKUP4args LOOKUP4args; 01469 01470 struct LOOKUP4res 01471 { 01472 nfsstat4 status; 01473 }; 01474 typedef struct LOOKUP4res LOOKUP4res; 01475 01476 struct LOOKUPP4res 01477 { 01478 nfsstat4 status; 01479 }; 01480 typedef struct LOOKUPP4res LOOKUPP4res; 01481 01482 struct NVERIFY4args 01483 { 01484 fattr4 obj_attributes; 01485 }; 01486 typedef struct NVERIFY4args NVERIFY4args; 01487 01488 struct NVERIFY4res 01489 { 01490 nfsstat4 status; 01491 }; 01492 typedef struct NVERIFY4res NVERIFY4res; 01493 01494 enum createmode4 01495 { 01496 UNCHECKED4 = 0, 01497 GUARDED4 = 1, 01498 EXCLUSIVE4 = 2, 01499 EXCLUSIVE4_1 = 3, 01500 }; 01501 typedef enum createmode4 createmode4; 01502 01503 struct creatverfattr 01504 { 01505 verifier4 cva_verf; 01506 fattr4 cva_attrs; 01507 }; 01508 typedef struct creatverfattr creatverfattr; 01509 01510 struct createhow4 01511 { 01512 createmode4 mode; 01513 union 01514 { 01515 fattr4 createattrs; 01516 verifier4 createverf; 01517 creatverfattr ch_createboth; 01518 } createhow4_u; 01519 }; 01520 typedef struct createhow4 createhow4; 01521 01522 enum opentype4 01523 { 01524 OPEN4_NOCREATE = 0, 01525 OPEN4_CREATE = 1, 01526 }; 01527 typedef enum opentype4 opentype4; 01528 01529 struct openflag4 01530 { 01531 opentype4 opentype; 01532 union 01533 { 01534 createhow4 how; 01535 } openflag4_u; 01536 }; 01537 typedef struct openflag4 openflag4; 01538 01539 enum limit_by4 01540 { 01541 NFS_LIMIT_SIZE = 1, 01542 NFS_LIMIT_BLOCKS = 2, 01543 }; 01544 typedef enum limit_by4 limit_by4; 01545 01546 struct nfs_modified_limit4 01547 { 01548 uint32_t num_blocks; 01549 uint32_t bytes_per_block; 01550 }; 01551 typedef struct nfs_modified_limit4 nfs_modified_limit4; 01552 01553 struct nfs_space_limit4 01554 { 01555 limit_by4 limitby; 01556 union 01557 { 01558 uint64_t filesize; 01559 nfs_modified_limit4 mod_blocks; 01560 } nfs_space_limit4_u; 01561 }; 01562 typedef struct nfs_space_limit4 nfs_space_limit4; 01563 #define OPEN4_SHARE_ACCESS_READ 0x00000001 01564 #define OPEN4_SHARE_ACCESS_WRITE 0x00000002 01565 #define OPEN4_SHARE_ACCESS_BOTH 0x00000003 01566 #define OPEN4_SHARE_DENY_NONE 0x00000000 01567 #define OPEN4_SHARE_DENY_READ 0x00000001 01568 #define OPEN4_SHARE_DENY_WRITE 0x00000002 01569 #define OPEN4_SHARE_DENY_BOTH 0x00000003 01570 #define OPEN4_SHARE_ACCESS_WANT_DELEG_MASK 0xFF00 01571 #define OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE 0x0000 01572 #define OPEN4_SHARE_ACCESS_WANT_READ_DELEG 0x0100 01573 #define OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG 0x0200 01574 #define OPEN4_SHARE_ACCESS_WANT_ANY_DELEG 0x0300 01575 #define OPEN4_SHARE_ACCESS_WANT_NO_DELEG 0x0400 01576 #define OPEN4_SHARE_ACCESS_WANT_CANCEL 0x0500 01577 #define OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000 01578 #define OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED 0x20000 01579 01580 enum open_delegation_type4 01581 { 01582 OPEN_DELEGATE_NONE = 0, 01583 OPEN_DELEGATE_READ = 1, 01584 OPEN_DELEGATE_WRITE = 2, 01585 OPEN_DELEGATE_NONE_EXT = 3, 01586 }; 01587 typedef enum open_delegation_type4 open_delegation_type4; 01588 01589 enum open_claim_type4 01590 { 01591 CLAIM_NULL = 0, 01592 CLAIM_PREVIOUS = 1, 01593 CLAIM_DELEGATE_CUR = 2, 01594 CLAIM_DELEGATE_PREV = 3, 01595 CLAIM_FH = 4, 01596 CLAIM_DELEG_CUR_FH = 5, 01597 CLAIM_DELEG_PREV_FH = 6, 01598 }; 01599 typedef enum open_claim_type4 open_claim_type4; 01600 01601 struct open_claim_delegate_cur4 01602 { 01603 stateid4 delegate_stateid; 01604 component4 file; 01605 }; 01606 typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4; 01607 01608 struct open_claim4 01609 { 01610 open_claim_type4 claim; 01611 union 01612 { 01613 component4 file; 01614 open_delegation_type4 delegate_type; 01615 open_claim_delegate_cur4 delegate_cur_info; 01616 component4 file_delegate_prev; 01617 stateid4 oc_delegate_stateid; 01618 } open_claim4_u; 01619 }; 01620 typedef struct open_claim4 open_claim4; 01621 01622 struct OPEN4args 01623 { 01624 seqid4 seqid; 01625 uint32_t share_access; 01626 uint32_t share_deny; 01627 open_owner4 owner; 01628 openflag4 openhow; 01629 open_claim4 claim; 01630 }; 01631 typedef struct OPEN4args OPEN4args; 01632 01633 struct open_read_delegation4 01634 { 01635 stateid4 stateid; 01636 bool_t recall; 01637 nfsace4 permissions; 01638 }; 01639 typedef struct open_read_delegation4 open_read_delegation4; 01640 01641 struct open_write_delegation4 01642 { 01643 stateid4 stateid; 01644 bool_t recall; 01645 nfs_space_limit4 space_limit; 01646 nfsace4 permissions; 01647 }; 01648 typedef struct open_write_delegation4 open_write_delegation4; 01649 01650 enum why_no_delegation4 01651 { 01652 WND4_NOT_WANTED = 0, 01653 WND4_CONTENTION = 1, 01654 WND4_RESOURCE = 2, 01655 WND4_NOT_SUPP_FTYPE = 3, 01656 WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, 01657 WND4_NOT_SUPP_UPGRADE = 5, 01658 WND4_NOT_SUPP_DOWNGRADE = 6, 01659 WND4_CANCELLED = 7, 01660 WND4_IS_DIR = 8, 01661 }; 01662 typedef enum why_no_delegation4 why_no_delegation4; 01663 01664 struct open_none_delegation4 01665 { 01666 why_no_delegation4 ond_why; 01667 union 01668 { 01669 bool_t ond_server_will_push_deleg; 01670 bool_t ond_server_will_signal_avail; 01671 } open_none_delegation4_u; 01672 }; 01673 typedef struct open_none_delegation4 open_none_delegation4; 01674 01675 struct open_delegation4 01676 { 01677 open_delegation_type4 delegation_type; 01678 union 01679 { 01680 open_read_delegation4 read; 01681 open_write_delegation4 write; 01682 open_none_delegation4 od_whynone; 01683 } open_delegation4_u; 01684 }; 01685 typedef struct open_delegation4 open_delegation4; 01686 #define OPEN4_RESULT_CONFIRM 0x00000002 01687 #define OPEN4_RESULT_LOCKTYPE_POSIX 0x00000004 01688 #define OPEN4_RESULT_PRESERVE_UNLINKED 0x00000008 01689 #define OPEN4_RESULT_MAY_NOTIFY_LOCK 0x00000020 01690 01691 struct OPEN4resok 01692 { 01693 stateid4 stateid; 01694 change_info4 cinfo; 01695 uint32_t rflags; 01696 bitmap4 attrset; 01697 open_delegation4 delegation; 01698 }; 01699 typedef struct OPEN4resok OPEN4resok; 01700 01701 struct OPEN4res 01702 { 01703 nfsstat4 status; 01704 union 01705 { 01706 OPEN4resok resok4; 01707 } OPEN4res_u; 01708 }; 01709 typedef struct OPEN4res OPEN4res; 01710 01711 struct OPENATTR4args 01712 { 01713 bool_t createdir; 01714 }; 01715 typedef struct OPENATTR4args OPENATTR4args; 01716 01717 struct OPENATTR4res 01718 { 01719 nfsstat4 status; 01720 }; 01721 typedef struct OPENATTR4res OPENATTR4res; 01722 01723 struct OPEN_CONFIRM4args 01724 { 01725 stateid4 open_stateid; 01726 seqid4 seqid; 01727 }; 01728 typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args; 01729 01730 struct OPEN_CONFIRM4resok 01731 { 01732 stateid4 open_stateid; 01733 }; 01734 typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok; 01735 01736 struct OPEN_CONFIRM4res 01737 { 01738 nfsstat4 status; 01739 union 01740 { 01741 OPEN_CONFIRM4resok resok4; 01742 } OPEN_CONFIRM4res_u; 01743 }; 01744 typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res; 01745 01746 struct OPEN_DOWNGRADE4args 01747 { 01748 stateid4 open_stateid; 01749 seqid4 seqid; 01750 uint32_t share_access; 01751 uint32_t share_deny; 01752 }; 01753 typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args; 01754 01755 struct OPEN_DOWNGRADE4resok 01756 { 01757 stateid4 open_stateid; 01758 }; 01759 typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok; 01760 01761 struct OPEN_DOWNGRADE4res 01762 { 01763 nfsstat4 status; 01764 union 01765 { 01766 OPEN_DOWNGRADE4resok resok4; 01767 } OPEN_DOWNGRADE4res_u; 01768 }; 01769 typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res; 01770 01771 struct PUTFH4args 01772 { 01773 nfs_fh4 object; 01774 }; 01775 typedef struct PUTFH4args PUTFH4args; 01776 01777 struct PUTFH4res 01778 { 01779 nfsstat4 status; 01780 }; 01781 typedef struct PUTFH4res PUTFH4res; 01782 01783 struct PUTPUBFH4res 01784 { 01785 nfsstat4 status; 01786 }; 01787 typedef struct PUTPUBFH4res PUTPUBFH4res; 01788 01789 struct PUTROOTFH4res 01790 { 01791 nfsstat4 status; 01792 }; 01793 typedef struct PUTROOTFH4res PUTROOTFH4res; 01794 01795 struct READ4args 01796 { 01797 stateid4 stateid; 01798 offset4 offset; 01799 count4 count; 01800 }; 01801 typedef struct READ4args READ4args; 01802 01803 struct READ4resok 01804 { 01805 bool_t eof; 01806 struct 01807 { 01808 u_int data_len; 01809 char *data_val; 01810 } data; 01811 }; 01812 typedef struct READ4resok READ4resok; 01813 01814 struct READ4res 01815 { 01816 nfsstat4 status; 01817 union 01818 { 01819 READ4resok resok4; 01820 } READ4res_u; 01821 }; 01822 typedef struct READ4res READ4res; 01823 01824 struct READDIR4args 01825 { 01826 nfs_cookie4 cookie; 01827 verifier4 cookieverf; 01828 count4 dircount; 01829 count4 maxcount; 01830 bitmap4 attr_request; 01831 }; 01832 typedef struct READDIR4args READDIR4args; 01833 01834 struct entry4 01835 { 01836 nfs_cookie4 cookie; 01837 component4 name; 01838 fattr4 attrs; 01839 struct entry4 *nextentry; 01840 }; 01841 typedef struct entry4 entry4; 01842 01843 struct dirlist4 01844 { 01845 entry4 *entries; 01846 bool_t eof; 01847 }; 01848 typedef struct dirlist4 dirlist4; 01849 01850 struct READDIR4resok 01851 { 01852 verifier4 cookieverf; 01853 dirlist4 reply; 01854 }; 01855 typedef struct READDIR4resok READDIR4resok; 01856 01857 struct READDIR4res 01858 { 01859 nfsstat4 status; 01860 union 01861 { 01862 READDIR4resok resok4; 01863 } READDIR4res_u; 01864 }; 01865 typedef struct READDIR4res READDIR4res; 01866 01867 struct READLINK4resok 01868 { 01869 linktext4 link; 01870 }; 01871 typedef struct READLINK4resok READLINK4resok; 01872 01873 struct READLINK4res 01874 { 01875 nfsstat4 status; 01876 union 01877 { 01878 READLINK4resok resok4; 01879 } READLINK4res_u; 01880 }; 01881 typedef struct READLINK4res READLINK4res; 01882 01883 struct REMOVE4args 01884 { 01885 component4 target; 01886 }; 01887 typedef struct REMOVE4args REMOVE4args; 01888 01889 struct REMOVE4resok 01890 { 01891 change_info4 cinfo; 01892 }; 01893 typedef struct REMOVE4resok REMOVE4resok; 01894 01895 struct REMOVE4res 01896 { 01897 nfsstat4 status; 01898 union 01899 { 01900 REMOVE4resok resok4; 01901 } REMOVE4res_u; 01902 }; 01903 typedef struct REMOVE4res REMOVE4res; 01904 01905 struct RENAME4args 01906 { 01907 component4 oldname; 01908 component4 newname; 01909 }; 01910 typedef struct RENAME4args RENAME4args; 01911 01912 struct RENAME4resok 01913 { 01914 change_info4 source_cinfo; 01915 change_info4 target_cinfo; 01916 }; 01917 typedef struct RENAME4resok RENAME4resok; 01918 01919 struct RENAME4res 01920 { 01921 nfsstat4 status; 01922 union 01923 { 01924 RENAME4resok resok4; 01925 } RENAME4res_u; 01926 }; 01927 typedef struct RENAME4res RENAME4res; 01928 01929 struct RENEW4args 01930 { 01931 clientid4 clientid; 01932 }; 01933 typedef struct RENEW4args RENEW4args; 01934 01935 struct RENEW4res 01936 { 01937 nfsstat4 status; 01938 }; 01939 typedef struct RENEW4res RENEW4res; 01940 01941 struct RESTOREFH4res 01942 { 01943 nfsstat4 status; 01944 }; 01945 typedef struct RESTOREFH4res RESTOREFH4res; 01946 01947 struct SAVEFH4res 01948 { 01949 nfsstat4 status; 01950 }; 01951 typedef struct SAVEFH4res SAVEFH4res; 01952 01953 struct SECINFO4args 01954 { 01955 component4 name; 01956 }; 01957 typedef struct SECINFO4args SECINFO4args; 01958 01959 struct rpcsec_gss_info 01960 { 01961 sec_oid4 oid; 01962 qop4 qop; 01963 rpc_gss_svc_t service; 01964 }; 01965 typedef struct rpcsec_gss_info rpcsec_gss_info; 01966 01967 struct secinfo4 01968 { 01969 uint32_t flavor; 01970 union 01971 { 01972 rpcsec_gss_info flavor_info; 01973 } secinfo4_u; 01974 }; 01975 typedef struct secinfo4 secinfo4; 01976 01977 typedef struct 01978 { 01979 u_int SECINFO4resok_len; 01980 secinfo4 *SECINFO4resok_val; 01981 } SECINFO4resok; 01982 01983 struct SECINFO4res 01984 { 01985 nfsstat4 status; 01986 union 01987 { 01988 SECINFO4resok resok4; 01989 } SECINFO4res_u; 01990 }; 01991 typedef struct SECINFO4res SECINFO4res; 01992 01993 struct SETATTR4args 01994 { 01995 stateid4 stateid; 01996 fattr4 obj_attributes; 01997 }; 01998 typedef struct SETATTR4args SETATTR4args; 01999 02000 struct SETATTR4res 02001 { 02002 nfsstat4 status; 02003 bitmap4 attrsset; 02004 }; 02005 typedef struct SETATTR4res SETATTR4res; 02006 02007 struct SETCLIENTID4args 02008 { 02009 nfs_client_id4 client; 02010 cb_client4 callback; 02011 uint32_t callback_ident; 02012 }; 02013 typedef struct SETCLIENTID4args SETCLIENTID4args; 02014 02015 struct SETCLIENTID4resok 02016 { 02017 clientid4 clientid; 02018 verifier4 setclientid_confirm; 02019 }; 02020 typedef struct SETCLIENTID4resok SETCLIENTID4resok; 02021 02022 struct SETCLIENTID4res 02023 { 02024 nfsstat4 status; 02025 union 02026 { 02027 SETCLIENTID4resok resok4; 02028 clientaddr4 client_using; 02029 } SETCLIENTID4res_u; 02030 }; 02031 typedef struct SETCLIENTID4res SETCLIENTID4res; 02032 02033 struct SETCLIENTID_CONFIRM4args 02034 { 02035 clientid4 clientid; 02036 verifier4 setclientid_confirm; 02037 }; 02038 typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args; 02039 02040 struct SETCLIENTID_CONFIRM4res 02041 { 02042 nfsstat4 status; 02043 }; 02044 typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res; 02045 02046 struct VERIFY4args 02047 { 02048 fattr4 obj_attributes; 02049 }; 02050 typedef struct VERIFY4args VERIFY4args; 02051 02052 struct VERIFY4res 02053 { 02054 nfsstat4 status; 02055 }; 02056 typedef struct VERIFY4res VERIFY4res; 02057 02058 enum stable_how4 02059 { 02060 UNSTABLE4 = 0, 02061 DATA_SYNC4 = 1, 02062 FILE_SYNC4 = 2, 02063 }; 02064 typedef enum stable_how4 stable_how4; 02065 02066 struct WRITE4args 02067 { 02068 stateid4 stateid; 02069 offset4 offset; 02070 stable_how4 stable; 02071 struct 02072 { 02073 u_int data_len; 02074 char *data_val; 02075 } data; 02076 }; 02077 typedef struct WRITE4args WRITE4args; 02078 02079 struct WRITE4resok 02080 { 02081 count4 count; 02082 stable_how4 committed; 02083 verifier4 writeverf; 02084 }; 02085 typedef struct WRITE4resok WRITE4resok; 02086 02087 struct WRITE4res 02088 { 02089 nfsstat4 status; 02090 union 02091 { 02092 WRITE4resok resok4; 02093 } WRITE4res_u; 02094 }; 02095 typedef struct WRITE4res WRITE4res; 02096 02097 struct RELEASE_LOCKOWNER4args 02098 { 02099 lock_owner4 lock_owner; 02100 }; 02101 typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args; 02102 02103 struct RELEASE_LOCKOWNER4res 02104 { 02105 nfsstat4 status; 02106 }; 02107 typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res; 02108 02109 struct ILLEGAL4res 02110 { 02111 nfsstat4 status; 02112 }; 02113 typedef struct ILLEGAL4res ILLEGAL4res; 02114 02115 typedef struct 02116 { 02117 u_int gsshandle4_t_len; 02118 char *gsshandle4_t_val; 02119 } gsshandle4_t; 02120 02121 struct gss_cb_handles4 02122 { 02123 rpc_gss_svc_t gcbp_service; 02124 gsshandle4_t gcbp_handle_from_server; 02125 gsshandle4_t gcbp_handle_from_client; 02126 }; 02127 typedef struct gss_cb_handles4 gss_cb_handles4; 02128 02129 struct callback_sec_parms4 02130 { 02131 uint32_t cb_secflavor; 02132 union 02133 { 02134 //authsys_parms cbsp_sys_cred; 02135 struct authunix_parms cbsp_sys_cred; 02136 gss_cb_handles4 cbsp_gss_handles; 02137 } callback_sec_parms4_u; 02138 }; 02139 typedef struct callback_sec_parms4 callback_sec_parms4; 02140 02141 struct BACKCHANNEL_CTL4args 02142 { 02143 uint32_t bca_cb_program; 02144 struct 02145 { 02146 u_int bca_sec_parms_len; 02147 callback_sec_parms4 *bca_sec_parms_val; 02148 } bca_sec_parms; 02149 }; 02150 typedef struct BACKCHANNEL_CTL4args BACKCHANNEL_CTL4args; 02151 02152 struct BACKCHANNEL_CTL4res 02153 { 02154 nfsstat4 bcr_status; 02155 }; 02156 typedef struct BACKCHANNEL_CTL4res BACKCHANNEL_CTL4res; 02157 02158 enum channel_dir_from_client4 02159 { 02160 CDFC4_FORE = 0x1, 02161 CDFC4_BACK = 0x2, 02162 CDFC4_FORE_OR_BOTH = 0x3, 02163 CDFC4_BACK_OR_BOTH = 0x7, 02164 }; 02165 typedef enum channel_dir_from_client4 channel_dir_from_client4; 02166 02167 struct BIND_CONN_TO_SESSION4args 02168 { 02169 sessionid4 bctsa_sessid; 02170 channel_dir_from_client4 bctsa_dir; 02171 bool_t bctsa_use_conn_in_rdma_mode; 02172 }; 02173 typedef struct BIND_CONN_TO_SESSION4args BIND_CONN_TO_SESSION4args; 02174 02175 enum channel_dir_from_server4 02176 { 02177 CDFS4_FORE = 0x1, 02178 CDFS4_BACK = 0x2, 02179 CDFS4_BOTH = 0x3, 02180 }; 02181 typedef enum channel_dir_from_server4 channel_dir_from_server4; 02182 02183 struct BIND_CONN_TO_SESSION4resok 02184 { 02185 sessionid4 bctsr_sessid; 02186 channel_dir_from_server4 bctsr_dir; 02187 bool_t bctsr_use_conn_in_rdma_mode; 02188 }; 02189 typedef struct BIND_CONN_TO_SESSION4resok BIND_CONN_TO_SESSION4resok; 02190 02191 struct BIND_CONN_TO_SESSION4res 02192 { 02193 nfsstat4 bctsr_status; 02194 union 02195 { 02196 BIND_CONN_TO_SESSION4resok bctsr_resok4; 02197 } BIND_CONN_TO_SESSION4res_u; 02198 }; 02199 typedef struct BIND_CONN_TO_SESSION4res BIND_CONN_TO_SESSION4res; 02200 #define EXCHGID4_FLAG_SUPP_MOVED_REFER 0x00000001 02201 #define EXCHGID4_FLAG_SUPP_MOVED_MIGR 0x00000002 02202 #define EXCHGID4_FLAG_BIND_PRINC_STATEID 0x00000100 02203 #define EXCHGID4_FLAG_USE_NON_PNFS 0x00010000 02204 #define EXCHGID4_FLAG_USE_PNFS_MDS 0x00020000 02205 #define EXCHGID4_FLAG_USE_PNFS_DS 0x00040000 02206 #define EXCHGID4_FLAG_MASK_PNFS 0x00070000 02207 #define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000 02208 #define EXCHGID4_FLAG_CONFIRMED_R 0x80000000 02209 02210 struct state_protect_ops4 02211 { 02212 bitmap4 spo_must_enforce; 02213 bitmap4 spo_must_allow; 02214 }; 02215 typedef struct state_protect_ops4 state_protect_ops4; 02216 02217 struct ssv_sp_parms4 02218 { 02219 state_protect_ops4 ssp_ops; 02220 struct 02221 { 02222 u_int ssp_hash_algs_len; 02223 sec_oid4 *ssp_hash_algs_val; 02224 } ssp_hash_algs; 02225 struct 02226 { 02227 u_int ssp_encr_algs_len; 02228 sec_oid4 *ssp_encr_algs_val; 02229 } ssp_encr_algs; 02230 uint32_t ssp_window; 02231 uint32_t ssp_num_gss_handles; 02232 }; 02233 typedef struct ssv_sp_parms4 ssv_sp_parms4; 02234 02235 enum state_protect_how4 02236 { 02237 SP4_NONE = 0, 02238 SP4_MACH_CRED = 1, 02239 SP4_SSV = 2, 02240 }; 02241 typedef enum state_protect_how4 state_protect_how4; 02242 02243 struct state_protect4_a 02244 { 02245 state_protect_how4 spa_how; 02246 union 02247 { 02248 state_protect_ops4 spa_mach_ops; 02249 ssv_sp_parms4 spa_ssv_parms; 02250 } state_protect4_a_u; 02251 }; 02252 typedef struct state_protect4_a state_protect4_a; 02253 02254 struct EXCHANGE_ID4args 02255 { 02256 client_owner4 eia_clientowner; 02257 uint32_t eia_flags; 02258 state_protect4_a eia_state_protect; 02259 struct 02260 { 02261 u_int eia_client_impl_id_len; 02262 nfs_impl_id4 *eia_client_impl_id_val; 02263 } eia_client_impl_id; 02264 }; 02265 typedef struct EXCHANGE_ID4args EXCHANGE_ID4args; 02266 02267 struct ssv_prot_info4 02268 { 02269 state_protect_ops4 spi_ops; 02270 uint32_t spi_hash_alg; 02271 uint32_t spi_encr_alg; 02272 uint32_t spi_ssv_len; 02273 uint32_t spi_window; 02274 struct 02275 { 02276 u_int spi_handles_len; 02277 gsshandle4_t *spi_handles_val; 02278 } spi_handles; 02279 }; 02280 typedef struct ssv_prot_info4 ssv_prot_info4; 02281 02282 struct state_protect4_r 02283 { 02284 state_protect_how4 spr_how; 02285 union 02286 { 02287 state_protect_ops4 spr_mach_ops; 02288 ssv_prot_info4 spr_ssv_info; 02289 } state_protect4_r_u; 02290 }; 02291 typedef struct state_protect4_r state_protect4_r; 02292 02293 struct EXCHANGE_ID4resok 02294 { 02295 clientid4 eir_clientid; 02296 sequenceid4 eir_sequenceid; 02297 uint32_t eir_flags; 02298 state_protect4_r eir_state_protect; 02299 server_owner4 eir_server_owner; 02300 struct 02301 { 02302 u_int eir_server_scope_len; 02303 char *eir_server_scope_val; 02304 } eir_server_scope; 02305 struct 02306 { 02307 u_int eir_server_impl_id_len; 02308 nfs_impl_id4 *eir_server_impl_id_val; 02309 } eir_server_impl_id; 02310 }; 02311 typedef struct EXCHANGE_ID4resok EXCHANGE_ID4resok; 02312 02313 struct EXCHANGE_ID4res 02314 { 02315 nfsstat4 eir_status; 02316 union 02317 { 02318 EXCHANGE_ID4resok eir_resok4; 02319 } EXCHANGE_ID4res_u; 02320 }; 02321 typedef struct EXCHANGE_ID4res EXCHANGE_ID4res; 02322 02323 struct channel_attrs4 02324 { 02325 count4 ca_headerpadsize; 02326 count4 ca_maxrequestsize; 02327 count4 ca_maxresponsesize; 02328 count4 ca_maxresponsesize_cached; 02329 count4 ca_maxoperations; 02330 count4 ca_maxrequests; 02331 struct 02332 { 02333 u_int ca_rdma_ird_len; 02334 uint32_t *ca_rdma_ird_val; 02335 } ca_rdma_ird; 02336 }; 02337 typedef struct channel_attrs4 channel_attrs4; 02338 #define CREATE_SESSION4_FLAG_PERSIST 0x00000001 02339 #define CREATE_SESSION4_FLAG_CONN_BACK_CHAN 0x00000002 02340 #define CREATE_SESSION4_FLAG_CONN_RDMA 0x00000004 02341 02342 struct CREATE_SESSION4args 02343 { 02344 clientid4 csa_clientid; 02345 sequenceid4 csa_sequence; 02346 uint32_t csa_flags; 02347 channel_attrs4 csa_fore_chan_attrs; 02348 channel_attrs4 csa_back_chan_attrs; 02349 uint32_t csa_cb_program; 02350 struct 02351 { 02352 u_int csa_sec_parms_len; 02353 callback_sec_parms4 *csa_sec_parms_val; 02354 } csa_sec_parms; 02355 }; 02356 typedef struct CREATE_SESSION4args CREATE_SESSION4args; 02357 02358 struct CREATE_SESSION4resok 02359 { 02360 sessionid4 csr_sessionid; 02361 sequenceid4 csr_sequence; 02362 uint32_t csr_flags; 02363 channel_attrs4 csr_fore_chan_attrs; 02364 channel_attrs4 csr_back_chan_attrs; 02365 }; 02366 typedef struct CREATE_SESSION4resok CREATE_SESSION4resok; 02367 02368 struct CREATE_SESSION4res 02369 { 02370 nfsstat4 csr_status; 02371 union 02372 { 02373 CREATE_SESSION4resok csr_resok4; 02374 } CREATE_SESSION4res_u; 02375 }; 02376 typedef struct CREATE_SESSION4res CREATE_SESSION4res; 02377 02378 struct DESTROY_SESSION4args 02379 { 02380 sessionid4 dsa_sessionid; 02381 }; 02382 typedef struct DESTROY_SESSION4args DESTROY_SESSION4args; 02383 02384 struct DESTROY_SESSION4res 02385 { 02386 nfsstat4 dsr_status; 02387 }; 02388 typedef struct DESTROY_SESSION4res DESTROY_SESSION4res; 02389 02390 struct FREE_STATEID4args 02391 { 02392 stateid4 fsa_stateid; 02393 }; 02394 typedef struct FREE_STATEID4args FREE_STATEID4args; 02395 02396 struct FREE_STATEID4res 02397 { 02398 nfsstat4 fsr_status; 02399 }; 02400 typedef struct FREE_STATEID4res FREE_STATEID4res; 02401 02402 typedef nfstime4 attr_notice4; 02403 02404 struct GET_DIR_DELEGATION4args 02405 { 02406 bool_t gdda_signal_deleg_avail; 02407 bitmap4 gdda_notification_types; 02408 attr_notice4 gdda_child_attr_delay; 02409 attr_notice4 gdda_dir_attr_delay; 02410 bitmap4 gdda_child_attributes; 02411 bitmap4 gdda_dir_attributes; 02412 }; 02413 typedef struct GET_DIR_DELEGATION4args GET_DIR_DELEGATION4args; 02414 02415 struct GET_DIR_DELEGATION4resok 02416 { 02417 verifier4 gddr_cookieverf; 02418 stateid4 gddr_stateid; 02419 bitmap4 gddr_notification; 02420 bitmap4 gddr_child_attributes; 02421 bitmap4 gddr_dir_attributes; 02422 }; 02423 typedef struct GET_DIR_DELEGATION4resok GET_DIR_DELEGATION4resok; 02424 02425 enum gddrnf4_status 02426 { 02427 GDD4_OK = 0, 02428 GDD4_UNAVAIL = 1, 02429 }; 02430 typedef enum gddrnf4_status gddrnf4_status; 02431 02432 struct GET_DIR_DELEGATION4res_non_fatal 02433 { 02434 gddrnf4_status gddrnf_status; 02435 union 02436 { 02437 GET_DIR_DELEGATION4resok gddrnf_resok4; 02438 bool_t gddrnf_will_signal_deleg_avail; 02439 } GET_DIR_DELEGATION4res_non_fatal_u; 02440 }; 02441 typedef struct GET_DIR_DELEGATION4res_non_fatal GET_DIR_DELEGATION4res_non_fatal; 02442 02443 struct GET_DIR_DELEGATION4res 02444 { 02445 nfsstat4 gddr_status; 02446 union 02447 { 02448 GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; 02449 } GET_DIR_DELEGATION4res_u; 02450 }; 02451 typedef struct GET_DIR_DELEGATION4res GET_DIR_DELEGATION4res; 02452 02453 struct GETDEVICEINFO4args 02454 { 02455 deviceid4 gdia_device_id; 02456 layouttype4 gdia_layout_type; 02457 count4 gdia_maxcount; 02458 bitmap4 gdia_notify_types; 02459 }; 02460 typedef struct GETDEVICEINFO4args GETDEVICEINFO4args; 02461 02462 struct GETDEVICEINFO4resok 02463 { 02464 device_addr4 gdir_device_addr; 02465 bitmap4 gdir_notification; 02466 }; 02467 typedef struct GETDEVICEINFO4resok GETDEVICEINFO4resok; 02468 02469 struct GETDEVICEINFO4res 02470 { 02471 nfsstat4 gdir_status; 02472 union 02473 { 02474 GETDEVICEINFO4resok gdir_resok4; 02475 count4 gdir_mincount; 02476 } GETDEVICEINFO4res_u; 02477 }; 02478 typedef struct GETDEVICEINFO4res GETDEVICEINFO4res; 02479 02480 struct GETDEVICELIST4args 02481 { 02482 layouttype4 gdla_layout_type; 02483 count4 gdla_maxdevices; 02484 nfs_cookie4 gdla_cookie; 02485 verifier4 gdla_cookieverf; 02486 }; 02487 typedef struct GETDEVICELIST4args GETDEVICELIST4args; 02488 02489 struct GETDEVICELIST4resok 02490 { 02491 nfs_cookie4 gdlr_cookie; 02492 verifier4 gdlr_cookieverf; 02493 struct 02494 { 02495 u_int gdlr_deviceid_list_len; 02496 deviceid4 *gdlr_deviceid_list_val; 02497 } gdlr_deviceid_list; 02498 bool_t gdlr_eof; 02499 }; 02500 typedef struct GETDEVICELIST4resok GETDEVICELIST4resok; 02501 02502 struct GETDEVICELIST4res 02503 { 02504 nfsstat4 gdlr_status; 02505 union 02506 { 02507 GETDEVICELIST4resok gdlr_resok4; 02508 } GETDEVICELIST4res_u; 02509 }; 02510 typedef struct GETDEVICELIST4res GETDEVICELIST4res; 02511 02512 struct newtime4 02513 { 02514 bool_t nt_timechanged; 02515 union 02516 { 02517 nfstime4 nt_time; 02518 } newtime4_u; 02519 }; 02520 typedef struct newtime4 newtime4; 02521 02522 struct newoffset4 02523 { 02524 bool_t no_newoffset; 02525 union 02526 { 02527 offset4 no_offset; 02528 } newoffset4_u; 02529 }; 02530 typedef struct newoffset4 newoffset4; 02531 02532 struct LAYOUTCOMMIT4args 02533 { 02534 offset4 loca_offset; 02535 length4 loca_length; 02536 bool_t loca_reclaim; 02537 stateid4 loca_stateid; 02538 newoffset4 loca_last_write_offset; 02539 newtime4 loca_time_modify; 02540 layoutupdate4 loca_layoutupdate; 02541 }; 02542 typedef struct LAYOUTCOMMIT4args LAYOUTCOMMIT4args; 02543 02544 struct newsize4 02545 { 02546 bool_t ns_sizechanged; 02547 union 02548 { 02549 length4 ns_size; 02550 } newsize4_u; 02551 }; 02552 typedef struct newsize4 newsize4; 02553 02554 struct LAYOUTCOMMIT4resok 02555 { 02556 newsize4 locr_newsize; 02557 }; 02558 typedef struct LAYOUTCOMMIT4resok LAYOUTCOMMIT4resok; 02559 02560 struct LAYOUTCOMMIT4res 02561 { 02562 nfsstat4 locr_status; 02563 union 02564 { 02565 LAYOUTCOMMIT4resok locr_resok4; 02566 } LAYOUTCOMMIT4res_u; 02567 }; 02568 typedef struct LAYOUTCOMMIT4res LAYOUTCOMMIT4res; 02569 02570 struct LAYOUTGET4args 02571 { 02572 bool_t loga_signal_layout_avail; 02573 layouttype4 loga_layout_type; 02574 layoutiomode4 loga_iomode; 02575 offset4 loga_offset; 02576 length4 loga_length; 02577 length4 loga_minlength; 02578 stateid4 loga_stateid; 02579 count4 loga_maxcount; 02580 }; 02581 typedef struct LAYOUTGET4args LAYOUTGET4args; 02582 02583 struct LAYOUTGET4resok 02584 { 02585 bool_t logr_return_on_close; 02586 stateid4 logr_stateid; 02587 struct 02588 { 02589 u_int logr_layout_len; 02590 layout4 *logr_layout_val; 02591 } logr_layout; 02592 }; 02593 typedef struct LAYOUTGET4resok LAYOUTGET4resok; 02594 02595 struct LAYOUTGET4res 02596 { 02597 nfsstat4 logr_status; 02598 union 02599 { 02600 LAYOUTGET4resok logr_resok4; 02601 bool_t logr_will_signal_layout_avail; 02602 } LAYOUTGET4res_u; 02603 }; 02604 typedef struct LAYOUTGET4res LAYOUTGET4res; 02605 02606 struct LAYOUTRETURN4args 02607 { 02608 bool_t lora_reclaim; 02609 layouttype4 lora_layout_type; 02610 layoutiomode4 lora_iomode; 02611 layoutreturn4 lora_layoutreturn; 02612 }; 02613 typedef struct LAYOUTRETURN4args LAYOUTRETURN4args; 02614 02615 struct layoutreturn_stateid 02616 { 02617 bool_t lrs_present; 02618 union 02619 { 02620 stateid4 lrs_stateid; 02621 } layoutreturn_stateid_u; 02622 }; 02623 typedef struct layoutreturn_stateid layoutreturn_stateid; 02624 02625 struct LAYOUTRETURN4res 02626 { 02627 nfsstat4 lorr_status; 02628 union 02629 { 02630 layoutreturn_stateid lorr_stateid; 02631 } LAYOUTRETURN4res_u; 02632 }; 02633 typedef struct LAYOUTRETURN4res LAYOUTRETURN4res; 02634 02635 enum secinfo_style4 02636 { 02637 SECINFO_STYLE4_CURRENT_FH = 0, 02638 SECINFO_STYLE4_PARENT = 1, 02639 }; 02640 typedef enum secinfo_style4 secinfo_style4; 02641 02642 typedef secinfo_style4 SECINFO_NO_NAME4args; 02643 02644 typedef SECINFO4res SECINFO_NO_NAME4res; 02645 02646 struct SEQUENCE4args 02647 { 02648 sessionid4 sa_sessionid; 02649 sequenceid4 sa_sequenceid; 02650 slotid4 sa_slotid; 02651 slotid4 sa_highest_slotid; 02652 bool_t sa_cachethis; 02653 }; 02654 typedef struct SEQUENCE4args SEQUENCE4args; 02655 #define SEQ4_STATUS_CB_PATH_DOWN 0x00000001 02656 #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002 02657 #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED 0x00000004 02658 #define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED 0x00000008 02659 #define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED 0x00000010 02660 #define SEQ4_STATUS_ADMIN_STATE_REVOKED 0x00000020 02661 #define SEQ4_STATUS_RECALLABLE_STATE_REVOKED 0x00000040 02662 #define SEQ4_STATUS_LEASE_MOVED 0x00000080 02663 #define SEQ4_STATUS_RESTART_RECLAIM_NEEDED 0x00000100 02664 #define SEQ4_STATUS_CB_PATH_DOWN_SESSION 0x00000200 02665 #define SEQ4_STATUS_BACKCHANNEL_FAULT 0x00000400 02666 #define SEQ4_STATUS_DEVID_CHANGED 0x00000800 02667 #define SEQ4_STATUS_DEVID_DELETED 0x00001000 02668 02669 struct SEQUENCE4resok 02670 { 02671 sessionid4 sr_sessionid; 02672 sequenceid4 sr_sequenceid; 02673 slotid4 sr_slotid; 02674 slotid4 sr_highest_slotid; 02675 slotid4 sr_target_highest_slotid; 02676 uint32_t sr_status_flags; 02677 }; 02678 typedef struct SEQUENCE4resok SEQUENCE4resok; 02679 02680 struct SEQUENCE4res 02681 { 02682 nfsstat4 sr_status; 02683 union 02684 { 02685 SEQUENCE4resok sr_resok4; 02686 } SEQUENCE4res_u; 02687 }; 02688 typedef struct SEQUENCE4res SEQUENCE4res; 02689 02690 struct ssa_digest_input4 02691 { 02692 SEQUENCE4args sdi_seqargs; 02693 }; 02694 typedef struct ssa_digest_input4 ssa_digest_input4; 02695 02696 struct SET_SSV4args 02697 { 02698 struct 02699 { 02700 u_int ssa_ssv_len; 02701 char *ssa_ssv_val; 02702 } ssa_ssv; 02703 struct 02704 { 02705 u_int ssa_digest_len; 02706 char *ssa_digest_val; 02707 } ssa_digest; 02708 }; 02709 typedef struct SET_SSV4args SET_SSV4args; 02710 02711 struct ssr_digest_input4 02712 { 02713 SEQUENCE4res sdi_seqres; 02714 }; 02715 typedef struct ssr_digest_input4 ssr_digest_input4; 02716 02717 struct SET_SSV4resok 02718 { 02719 struct 02720 { 02721 u_int ssr_digest_len; 02722 char *ssr_digest_val; 02723 } ssr_digest; 02724 }; 02725 typedef struct SET_SSV4resok SET_SSV4resok; 02726 02727 struct SET_SSV4res 02728 { 02729 nfsstat4 ssr_status; 02730 union 02731 { 02732 SET_SSV4resok ssr_resok4; 02733 } SET_SSV4res_u; 02734 }; 02735 typedef struct SET_SSV4res SET_SSV4res; 02736 02737 struct TEST_STATEID4args 02738 { 02739 struct 02740 { 02741 u_int ts_stateids_len; 02742 stateid4 *ts_stateids_val; 02743 } ts_stateids; 02744 }; 02745 typedef struct TEST_STATEID4args TEST_STATEID4args; 02746 02747 struct TEST_STATEID4resok 02748 { 02749 struct 02750 { 02751 u_int tsr_status_codes_len; 02752 nfsstat4 *tsr_status_codes_val; 02753 } tsr_status_codes; 02754 }; 02755 typedef struct TEST_STATEID4resok TEST_STATEID4resok; 02756 02757 struct TEST_STATEID4res 02758 { 02759 nfsstat4 tsr_status; 02760 union 02761 { 02762 TEST_STATEID4resok tsr_resok4; 02763 } TEST_STATEID4res_u; 02764 }; 02765 typedef struct TEST_STATEID4res TEST_STATEID4res; 02766 02767 struct deleg_claim4 02768 { 02769 open_claim_type4 dc_claim; 02770 union 02771 { 02772 open_delegation_type4 dc_delegate_type; 02773 } deleg_claim4_u; 02774 }; 02775 typedef struct deleg_claim4 deleg_claim4; 02776 02777 struct WANT_DELEGATION4args 02778 { 02779 uint32_t wda_want; 02780 deleg_claim4 wda_claim; 02781 }; 02782 typedef struct WANT_DELEGATION4args WANT_DELEGATION4args; 02783 02784 struct WANT_DELEGATION4res 02785 { 02786 nfsstat4 wdr_status; 02787 union 02788 { 02789 open_delegation4 wdr_resok4; 02790 } WANT_DELEGATION4res_u; 02791 }; 02792 typedef struct WANT_DELEGATION4res WANT_DELEGATION4res; 02793 02794 struct DESTROY_CLIENTID4args 02795 { 02796 clientid4 dca_clientid; 02797 }; 02798 typedef struct DESTROY_CLIENTID4args DESTROY_CLIENTID4args; 02799 02800 struct DESTROY_CLIENTID4res 02801 { 02802 nfsstat4 dcr_status; 02803 }; 02804 typedef struct DESTROY_CLIENTID4res DESTROY_CLIENTID4res; 02805 02806 struct RECLAIM_COMPLETE4args 02807 { 02808 bool_t rca_one_fs; 02809 }; 02810 typedef struct RECLAIM_COMPLETE4args RECLAIM_COMPLETE4args; 02811 02812 struct RECLAIM_COMPLETE4res 02813 { 02814 nfsstat4 rcr_status; 02815 }; 02816 typedef struct RECLAIM_COMPLETE4res RECLAIM_COMPLETE4res; 02817 02818 /* new operations for NFSv4.1 */ 02819 02820 enum nfs_opnum4 02821 { 02822 NFS4_OP_ACCESS = 3, 02823 NFS4_OP_CLOSE = 4, 02824 NFS4_OP_COMMIT = 5, 02825 NFS4_OP_CREATE = 6, 02826 NFS4_OP_DELEGPURGE = 7, 02827 NFS4_OP_DELEGRETURN = 8, 02828 NFS4_OP_GETATTR = 9, 02829 NFS4_OP_GETFH = 10, 02830 NFS4_OP_LINK = 11, 02831 NFS4_OP_LOCK = 12, 02832 NFS4_OP_LOCKT = 13, 02833 NFS4_OP_LOCKU = 14, 02834 NFS4_OP_LOOKUP = 15, 02835 NFS4_OP_LOOKUPP = 16, 02836 NFS4_OP_NVERIFY = 17, 02837 NFS4_OP_OPEN = 18, 02838 NFS4_OP_OPENATTR = 19, 02839 NFS4_OP_OPEN_CONFIRM = 20, 02840 NFS4_OP_OPEN_DOWNGRADE = 21, 02841 NFS4_OP_PUTFH = 22, 02842 NFS4_OP_PUTPUBFH = 23, 02843 NFS4_OP_PUTROOTFH = 24, 02844 NFS4_OP_READ = 25, 02845 NFS4_OP_READDIR = 26, 02846 NFS4_OP_READLINK = 27, 02847 NFS4_OP_REMOVE = 28, 02848 NFS4_OP_RENAME = 29, 02849 NFS4_OP_RENEW = 30, 02850 NFS4_OP_RESTOREFH = 31, 02851 NFS4_OP_SAVEFH = 32, 02852 NFS4_OP_SECINFO = 33, 02853 NFS4_OP_SETATTR = 34, 02854 NFS4_OP_SETCLIENTID = 35, 02855 NFS4_OP_SETCLIENTID_CONFIRM = 36, 02856 NFS4_OP_VERIFY = 37, 02857 NFS4_OP_WRITE = 38, 02858 NFS4_OP_RELEASE_LOCKOWNER = 39, 02859 NFS4_OP_BACKCHANNEL_CTL = 40, 02860 NFS4_OP_BIND_CONN_TO_SESSION = 41, 02861 NFS4_OP_EXCHANGE_ID = 42, 02862 NFS4_OP_CREATE_SESSION = 43, 02863 NFS4_OP_DESTROY_SESSION = 44, 02864 NFS4_OP_FREE_STATEID = 45, 02865 NFS4_OP_GET_DIR_DELEGATION = 46, 02866 NFS4_OP_GETDEVICEINFO = 47, 02867 NFS4_OP_GETDEVICELIST = 48, 02868 NFS4_OP_LAYOUTCOMMIT = 49, 02869 NFS4_OP_LAYOUTGET = 50, 02870 NFS4_OP_LAYOUTRETURN = 51, 02871 NFS4_OP_SECINFO_NO_NAME = 52, 02872 NFS4_OP_SEQUENCE = 53, 02873 NFS4_OP_SET_SSV = 54, 02874 NFS4_OP_TEST_STATEID = 55, 02875 NFS4_OP_WANT_DELEGATION = 56, 02876 NFS4_OP_DESTROY_CLIENTID = 57, 02877 NFS4_OP_RECLAIM_COMPLETE = 58, 02878 NFS4_OP_ILLEGAL = 10044, 02879 }; 02880 typedef enum nfs_opnum4 nfs_opnum4; 02881 02882 struct nfs_argop4 02883 { 02884 nfs_opnum4 argop; 02885 union 02886 { 02887 ACCESS4args opaccess; 02888 CLOSE4args opclose; 02889 COMMIT4args opcommit; 02890 CREATE4args opcreate; 02891 DELEGPURGE4args opdelegpurge; 02892 DELEGRETURN4args opdelegreturn; 02893 GETATTR4args opgetattr; 02894 LINK4args oplink; 02895 LOCK4args oplock; 02896 LOCKT4args oplockt; 02897 LOCKU4args oplocku; 02898 LOOKUP4args oplookup; 02899 NVERIFY4args opnverify; 02900 OPEN4args opopen; 02901 OPENATTR4args opopenattr; 02902 OPEN_CONFIRM4args opopen_confirm; 02903 OPEN_DOWNGRADE4args opopen_downgrade; 02904 PUTFH4args opputfh; 02905 READ4args opread; 02906 READDIR4args opreaddir; 02907 REMOVE4args opremove; 02908 RENAME4args oprename; 02909 RENEW4args oprenew; 02910 SECINFO4args opsecinfo; 02911 SETATTR4args opsetattr; 02912 SETCLIENTID4args opsetclientid; 02913 SETCLIENTID_CONFIRM4args opsetclientid_confirm; 02914 VERIFY4args opverify; 02915 WRITE4args opwrite; 02916 RELEASE_LOCKOWNER4args oprelease_lockowner; 02917 BACKCHANNEL_CTL4args opbackchannel_ctl; 02918 BIND_CONN_TO_SESSION4args opbind_conn_to_session; 02919 EXCHANGE_ID4args opexchange_id; 02920 CREATE_SESSION4args opcreate_session; 02921 DESTROY_SESSION4args opdestroy_session; 02922 FREE_STATEID4args opfree_stateid; 02923 GET_DIR_DELEGATION4args opget_dir_delegation; 02924 GETDEVICEINFO4args opgetdeviceinfo; 02925 GETDEVICELIST4args opgetdevicelist; 02926 LAYOUTCOMMIT4args oplayoutcommit; 02927 LAYOUTGET4args oplayoutget; 02928 LAYOUTRETURN4args oplayoutreturn; 02929 SECINFO_NO_NAME4args opsecinfo_no_name; 02930 SEQUENCE4args opsequence; 02931 SET_SSV4args opset_ssv; 02932 TEST_STATEID4args optest_stateid; 02933 WANT_DELEGATION4args opwant_delegation; 02934 DESTROY_CLIENTID4args opdestroy_clientid; 02935 RECLAIM_COMPLETE4args opreclaim_complete; 02936 } nfs_argop4_u; 02937 }; 02938 typedef struct nfs_argop4 nfs_argop4; 02939 02940 struct nfs_resop4 02941 { 02942 nfs_opnum4 resop; 02943 union 02944 { 02945 ACCESS4res opaccess; 02946 CLOSE4res opclose; 02947 COMMIT4res opcommit; 02948 CREATE4res opcreate; 02949 DELEGPURGE4res opdelegpurge; 02950 DELEGRETURN4res opdelegreturn; 02951 GETATTR4res opgetattr; 02952 GETFH4res opgetfh; 02953 LINK4res oplink; 02954 LOCK4res oplock; 02955 LOCKT4res oplockt; 02956 LOCKU4res oplocku; 02957 LOOKUP4res oplookup; 02958 LOOKUPP4res oplookupp; 02959 NVERIFY4res opnverify; 02960 OPEN4res opopen; 02961 OPENATTR4res opopenattr; 02962 OPEN_CONFIRM4res opopen_confirm; 02963 OPEN_DOWNGRADE4res opopen_downgrade; 02964 PUTFH4res opputfh; 02965 PUTPUBFH4res opputpubfh; 02966 PUTROOTFH4res opputrootfh; 02967 READ4res opread; 02968 READDIR4res opreaddir; 02969 READLINK4res opreadlink; 02970 REMOVE4res opremove; 02971 RENAME4res oprename; 02972 RENEW4res oprenew; 02973 RESTOREFH4res oprestorefh; 02974 SAVEFH4res opsavefh; 02975 SECINFO4res opsecinfo; 02976 SETATTR4res opsetattr; 02977 SETCLIENTID4res opsetclientid; 02978 SETCLIENTID_CONFIRM4res opsetclientid_confirm; 02979 VERIFY4res opverify; 02980 WRITE4res opwrite; 02981 RELEASE_LOCKOWNER4res oprelease_lockowner; 02982 BACKCHANNEL_CTL4res opbackchannel_ctl; 02983 BIND_CONN_TO_SESSION4res opbind_conn_to_session; 02984 EXCHANGE_ID4res opexchange_id; 02985 CREATE_SESSION4res opcreate_session; 02986 DESTROY_SESSION4res opdestroy_session; 02987 FREE_STATEID4res opfree_stateid; 02988 GET_DIR_DELEGATION4res opget_dir_delegation; 02989 GETDEVICEINFO4res opgetdeviceinfo; 02990 GETDEVICELIST4res opgetdevicelist; 02991 LAYOUTCOMMIT4res oplayoutcommit; 02992 LAYOUTGET4res oplayoutget; 02993 LAYOUTRETURN4res oplayoutreturn; 02994 SECINFO_NO_NAME4res opsecinfo_no_name; 02995 SEQUENCE4res opsequence; 02996 SET_SSV4res opset_ssv; 02997 TEST_STATEID4res optest_stateid; 02998 WANT_DELEGATION4res opwant_delegation; 02999 DESTROY_CLIENTID4res opdestroy_clientid; 03000 RECLAIM_COMPLETE4res opreclaim_complete; 03001 ILLEGAL4res opillegal; 03002 } nfs_resop4_u; 03003 }; 03004 typedef struct nfs_resop4 nfs_resop4; 03005 03006 struct COMPOUND4args 03007 { 03008 utf8str_cs tag; 03009 uint32_t minorversion; 03010 struct 03011 { 03012 u_int argarray_len; 03013 nfs_argop4 *argarray_val; 03014 } argarray; 03015 }; 03016 typedef struct COMPOUND4args COMPOUND4args; 03017 03018 struct COMPOUND4res 03019 { 03020 nfsstat4 status; 03021 utf8str_cs tag; 03022 struct 03023 { 03024 u_int resarray_len; 03025 nfs_resop4 *resarray_val; 03026 } resarray; 03027 }; 03028 typedef struct COMPOUND4res COMPOUND4res; 03029 03030 struct CB_GETATTR4args 03031 { 03032 nfs_fh4 fh; 03033 bitmap4 attr_request; 03034 }; 03035 typedef struct CB_GETATTR4args CB_GETATTR4args; 03036 03037 struct CB_GETATTR4resok 03038 { 03039 fattr4 obj_attributes; 03040 }; 03041 typedef struct CB_GETATTR4resok CB_GETATTR4resok; 03042 03043 struct CB_GETATTR4res 03044 { 03045 nfsstat4 status; 03046 union 03047 { 03048 CB_GETATTR4resok resok4; 03049 } CB_GETATTR4res_u; 03050 }; 03051 typedef struct CB_GETATTR4res CB_GETATTR4res; 03052 03053 struct CB_RECALL4args 03054 { 03055 stateid4 stateid; 03056 bool_t truncate; 03057 nfs_fh4 fh; 03058 }; 03059 typedef struct CB_RECALL4args CB_RECALL4args; 03060 03061 struct CB_RECALL4res 03062 { 03063 nfsstat4 status; 03064 }; 03065 typedef struct CB_RECALL4res CB_RECALL4res; 03066 03067 struct CB_ILLEGAL4res 03068 { 03069 nfsstat4 status; 03070 }; 03071 typedef struct CB_ILLEGAL4res CB_ILLEGAL4res; 03072 03073 enum layoutrecall_type4 03074 { 03075 LAYOUTRECALL4_FILE = LAYOUT4_RET_REC_FILE, 03076 LAYOUTRECALL4_FSID = LAYOUT4_RET_REC_FSID, 03077 LAYOUTRECALL4_ALL = LAYOUT4_RET_REC_ALL, 03078 }; 03079 typedef enum layoutrecall_type4 layoutrecall_type4; 03080 03081 struct layoutrecall_file4 03082 { 03083 nfs_fh4 lor_fh; 03084 offset4 lor_offset; 03085 length4 lor_length; 03086 stateid4 lor_stateid; 03087 }; 03088 typedef struct layoutrecall_file4 layoutrecall_file4; 03089 03090 struct layoutrecall4 03091 { 03092 layoutrecall_type4 lor_recalltype; 03093 union 03094 { 03095 layoutrecall_file4 lor_layout; 03096 fsid4 lor_fsid; 03097 } layoutrecall4_u; 03098 }; 03099 typedef struct layoutrecall4 layoutrecall4; 03100 03101 struct CB_LAYOUTRECALL4args 03102 { 03103 layouttype4 clora_type; 03104 layoutiomode4 clora_iomode; 03105 bool_t clora_changed; 03106 layoutrecall4 clora_recall; 03107 }; 03108 typedef struct CB_LAYOUTRECALL4args CB_LAYOUTRECALL4args; 03109 03110 struct CB_LAYOUTRECALL4res 03111 { 03112 nfsstat4 clorr_status; 03113 }; 03114 typedef struct CB_LAYOUTRECALL4res CB_LAYOUTRECALL4res; 03115 03116 enum notify_type4 03117 { 03118 NOTIFY4_CHANGE_CHILD_ATTRS = 0, 03119 NOTIFY4_CHANGE_DIR_ATTRS = 1, 03120 NOTIFY4_REMOVE_ENTRY = 2, 03121 NOTIFY4_ADD_ENTRY = 3, 03122 NOTIFY4_RENAME_ENTRY = 4, 03123 NOTIFY4_CHANGE_COOKIE_VERIFIER = 5, 03124 }; 03125 typedef enum notify_type4 notify_type4; 03126 03127 struct notify_entry4 03128 { 03129 component4 ne_file; 03130 fattr4 ne_attrs; 03131 }; 03132 typedef struct notify_entry4 notify_entry4; 03133 03134 struct prev_entry4 03135 { 03136 notify_entry4 pe_prev_entry; 03137 nfs_cookie4 pe_prev_entry_cookie; 03138 }; 03139 typedef struct prev_entry4 prev_entry4; 03140 03141 struct notify_remove4 03142 { 03143 notify_entry4 nrm_old_entry; 03144 nfs_cookie4 nrm_old_entry_cookie; 03145 }; 03146 typedef struct notify_remove4 notify_remove4; 03147 03148 struct notify_add4 03149 { 03150 struct 03151 { 03152 u_int nad_old_entry_len; 03153 notify_remove4 *nad_old_entry_val; 03154 } nad_old_entry; 03155 notify_entry4 nad_new_entry; 03156 struct 03157 { 03158 u_int nad_new_entry_cookie_len; 03159 nfs_cookie4 *nad_new_entry_cookie_val; 03160 } nad_new_entry_cookie; 03161 struct 03162 { 03163 u_int nad_prev_entry_len; 03164 prev_entry4 *nad_prev_entry_val; 03165 } nad_prev_entry; 03166 bool_t nad_last_entry; 03167 }; 03168 typedef struct notify_add4 notify_add4; 03169 03170 struct notify_attr4 03171 { 03172 notify_entry4 na_changed_entry; 03173 }; 03174 typedef struct notify_attr4 notify_attr4; 03175 03176 struct notify_rename4 03177 { 03178 notify_remove4 nrn_old_entry; 03179 notify_add4 nrn_new_entry; 03180 }; 03181 typedef struct notify_rename4 notify_rename4; 03182 03183 struct notify_verifier4 03184 { 03185 verifier4 nv_old_cookieverf; 03186 verifier4 nv_new_cookieverf; 03187 }; 03188 typedef struct notify_verifier4 notify_verifier4; 03189 03190 typedef struct 03191 { 03192 u_int notifylist4_len; 03193 char *notifylist4_val; 03194 } notifylist4; 03195 03196 struct notify4 03197 { 03198 bitmap4 notify_mask; 03199 notifylist4 notify_vals; 03200 }; 03201 typedef struct notify4 notify4; 03202 03203 struct CB_NOTIFY4args 03204 { 03205 stateid4 cna_stateid; 03206 nfs_fh4 cna_fh; 03207 struct 03208 { 03209 u_int cna_changes_len; 03210 notify4 *cna_changes_val; 03211 } cna_changes; 03212 }; 03213 typedef struct CB_NOTIFY4args CB_NOTIFY4args; 03214 03215 struct CB_NOTIFY4res 03216 { 03217 nfsstat4 cnr_status; 03218 }; 03219 typedef struct CB_NOTIFY4res CB_NOTIFY4res; 03220 03221 struct CB_PUSH_DELEG4args 03222 { 03223 nfs_fh4 cpda_fh; 03224 open_delegation4 cpda_delegation; 03225 }; 03226 typedef struct CB_PUSH_DELEG4args CB_PUSH_DELEG4args; 03227 03228 struct CB_PUSH_DELEG4res 03229 { 03230 nfsstat4 cpdr_status; 03231 }; 03232 typedef struct CB_PUSH_DELEG4res CB_PUSH_DELEG4res; 03233 #define RCA4_TYPE_MASK_RDATA_DLG 0 03234 #define RCA4_TYPE_MASK_WDATA_DLG 1 03235 #define RCA4_TYPE_MASK_DIR_DLG 2 03236 #define RCA4_TYPE_MASK_FILE_LAYOUT 3 03237 #define RCA4_TYPE_MASK_BLK_LAYOUT 4 03238 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MIN 8 03239 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MAX 9 03240 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MIN 12 03241 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MAX 15 03242 03243 struct CB_RECALL_ANY4args 03244 { 03245 uint32_t craa_objects_to_keep; 03246 bitmap4 craa_type_mask; 03247 }; 03248 typedef struct CB_RECALL_ANY4args CB_RECALL_ANY4args; 03249 03250 struct CB_RECALL_ANY4res 03251 { 03252 nfsstat4 crar_status; 03253 }; 03254 typedef struct CB_RECALL_ANY4res CB_RECALL_ANY4res; 03255 03256 typedef CB_RECALL_ANY4args CB_RECALLABLE_OBJ_AVAIL4args; 03257 03258 struct CB_RECALLABLE_OBJ_AVAIL4res 03259 { 03260 nfsstat4 croa_status; 03261 }; 03262 typedef struct CB_RECALLABLE_OBJ_AVAIL4res CB_RECALLABLE_OBJ_AVAIL4res; 03263 03264 struct CB_RECALL_SLOT4args 03265 { 03266 slotid4 rsa_target_highest_slotid; 03267 }; 03268 typedef struct CB_RECALL_SLOT4args CB_RECALL_SLOT4args; 03269 03270 struct CB_RECALL_SLOT4res 03271 { 03272 nfsstat4 rsr_status; 03273 }; 03274 typedef struct CB_RECALL_SLOT4res CB_RECALL_SLOT4res; 03275 03276 struct referring_call4 03277 { 03278 sequenceid4 rc_sequenceid; 03279 slotid4 rc_slotid; 03280 }; 03281 typedef struct referring_call4 referring_call4; 03282 03283 struct referring_call_list4 03284 { 03285 sessionid4 rcl_sessionid; 03286 struct 03287 { 03288 u_int rcl_referring_calls_len; 03289 referring_call4 *rcl_referring_calls_val; 03290 } rcl_referring_calls; 03291 }; 03292 typedef struct referring_call_list4 referring_call_list4; 03293 03294 struct CB_SEQUENCE4args 03295 { 03296 sessionid4 csa_sessionid; 03297 sequenceid4 csa_sequenceid; 03298 slotid4 csa_slotid; 03299 slotid4 csa_highest_slotid; 03300 bool_t csa_cachethis; 03301 struct 03302 { 03303 u_int csa_referring_call_lists_len; 03304 referring_call_list4 *csa_referring_call_lists_val; 03305 } csa_referring_call_lists; 03306 }; 03307 typedef struct CB_SEQUENCE4args CB_SEQUENCE4args; 03308 03309 struct CB_SEQUENCE4resok 03310 { 03311 sessionid4 csr_sessionid; 03312 sequenceid4 csr_sequenceid; 03313 slotid4 csr_slotid; 03314 slotid4 csr_highest_slotid; 03315 slotid4 csr_target_highest_slotid; 03316 }; 03317 typedef struct CB_SEQUENCE4resok CB_SEQUENCE4resok; 03318 03319 struct CB_SEQUENCE4res 03320 { 03321 nfsstat4 csr_status; 03322 union 03323 { 03324 CB_SEQUENCE4resok csr_resok4; 03325 } CB_SEQUENCE4res_u; 03326 }; 03327 typedef struct CB_SEQUENCE4res CB_SEQUENCE4res; 03328 03329 struct CB_WANTS_CANCELLED4args 03330 { 03331 bool_t cwca_contended_wants_cancelled; 03332 bool_t cwca_resourced_wants_cancelled; 03333 }; 03334 typedef struct CB_WANTS_CANCELLED4args CB_WANTS_CANCELLED4args; 03335 03336 struct CB_WANTS_CANCELLED4res 03337 { 03338 nfsstat4 cwcr_status; 03339 }; 03340 typedef struct CB_WANTS_CANCELLED4res CB_WANTS_CANCELLED4res; 03341 03342 struct CB_NOTIFY_LOCK4args 03343 { 03344 nfs_fh4 cnla_fh; 03345 lock_owner4 cnla_lock_owner; 03346 }; 03347 typedef struct CB_NOTIFY_LOCK4args CB_NOTIFY_LOCK4args; 03348 03349 struct CB_NOTIFY_LOCK4res 03350 { 03351 nfsstat4 cnlr_status; 03352 }; 03353 typedef struct CB_NOTIFY_LOCK4res CB_NOTIFY_LOCK4res; 03354 03355 enum notify_deviceid_type4 03356 { 03357 NOTIFY_DEVICEID4_CHANGE = 1, 03358 NOTIFY_DEVICEID4_DELETE = 2, 03359 }; 03360 typedef enum notify_deviceid_type4 notify_deviceid_type4; 03361 03362 struct notify_deviceid_delete4 03363 { 03364 layouttype4 ndd_layouttype; 03365 deviceid4 ndd_deviceid; 03366 }; 03367 typedef struct notify_deviceid_delete4 notify_deviceid_delete4; 03368 03369 struct notify_deviceid_change4 03370 { 03371 layouttype4 ndc_layouttype; 03372 deviceid4 ndc_deviceid; 03373 bool_t ndc_immediate; 03374 }; 03375 typedef struct notify_deviceid_change4 notify_deviceid_change4; 03376 03377 struct CB_NOTIFY_DEVICEID4args 03378 { 03379 struct 03380 { 03381 u_int cnda_changes_len; 03382 notify4 *cnda_changes_val; 03383 } cnda_changes; 03384 }; 03385 typedef struct CB_NOTIFY_DEVICEID4args CB_NOTIFY_DEVICEID4args; 03386 03387 struct CB_NOTIFY_DEVICEID4res 03388 { 03389 nfsstat4 cndr_status; 03390 }; 03391 typedef struct CB_NOTIFY_DEVICEID4res CB_NOTIFY_DEVICEID4res; 03392 03393 /* Callback operations new to NFSv4.1 */ 03394 03395 enum nfs_cb_opnum4 03396 { 03397 NFS4_OP_CB_GETATTR = 3, 03398 NFS4_OP_CB_RECALL = 4, 03399 NFS4_OP_CB_LAYOUTRECALL = 5, 03400 NFS4_OP_CB_NOTIFY = 6, 03401 NFS4_OP_CB_PUSH_DELEG = 7, 03402 NFS4_OP_CB_RECALL_ANY = 8, 03403 NFS4_OP_CB_RECALLABLE_OBJ_AVAIL = 9, 03404 NFS4_OP_CB_RECALL_SLOT = 10, 03405 NFS4_OP_CB_SEQUENCE = 11, 03406 NFS4_OP_CB_WANTS_CANCELLED = 12, 03407 NFS4_OP_CB_NOTIFY_LOCK = 13, 03408 NFS4_OP_CB_NOTIFY_DEVICEID = 14, 03409 NFS4_OP_CB_ILLEGAL = 10044, 03410 }; 03411 typedef enum nfs_cb_opnum4 nfs_cb_opnum4; 03412 03413 struct nfs_cb_argop4 03414 { 03415 u_int argop; 03416 union 03417 { 03418 CB_GETATTR4args opcbgetattr; 03419 CB_RECALL4args opcbrecall; 03420 CB_LAYOUTRECALL4args opcblayoutrecall; 03421 CB_NOTIFY4args opcbnotify; 03422 CB_PUSH_DELEG4args opcbpush_deleg; 03423 CB_RECALL_ANY4args opcbrecall_any; 03424 CB_RECALLABLE_OBJ_AVAIL4args opcbrecallable_obj_avail; 03425 CB_RECALL_SLOT4args opcbrecall_slot; 03426 CB_SEQUENCE4args opcbsequence; 03427 CB_WANTS_CANCELLED4args opcbwants_cancelled; 03428 CB_NOTIFY_LOCK4args opcbnotify_lock; 03429 CB_NOTIFY_DEVICEID4args opcbnotify_deviceid; 03430 } nfs_cb_argop4_u; 03431 }; 03432 typedef struct nfs_cb_argop4 nfs_cb_argop4; 03433 03434 struct nfs_cb_resop4 03435 { 03436 u_int resop; 03437 union 03438 { 03439 CB_GETATTR4res opcbgetattr; 03440 CB_RECALL4res opcbrecall; 03441 CB_LAYOUTRECALL4res opcblayoutrecall; 03442 CB_NOTIFY4res opcbnotify; 03443 CB_PUSH_DELEG4res opcbpush_deleg; 03444 CB_RECALL_ANY4res opcbrecall_any; 03445 CB_RECALLABLE_OBJ_AVAIL4res opcbrecallable_obj_avail; 03446 CB_RECALL_SLOT4res opcbrecall_slot; 03447 CB_SEQUENCE4res opcbsequence; 03448 CB_WANTS_CANCELLED4res opcbwants_cancelled; 03449 CB_NOTIFY_LOCK4res opcbnotify_lock; 03450 CB_NOTIFY_DEVICEID4res opcbnotify_deviceid; 03451 CB_ILLEGAL4res opcbillegal; 03452 } nfs_cb_resop4_u; 03453 }; 03454 typedef struct nfs_cb_resop4 nfs_cb_resop4; 03455 03456 struct CB_COMPOUND4args 03457 { 03458 utf8str_cs tag; 03459 uint32_t minorversion; 03460 uint32_t callback_ident; 03461 struct 03462 { 03463 u_int argarray_len; 03464 nfs_cb_argop4 *argarray_val; 03465 } argarray; 03466 }; 03467 typedef struct CB_COMPOUND4args CB_COMPOUND4args; 03468 03469 struct CB_COMPOUND4res 03470 { 03471 nfsstat4 status; 03472 utf8str_cs tag; 03473 struct 03474 { 03475 u_int resarray_len; 03476 nfs_cb_resop4 *resarray_val; 03477 } resarray; 03478 }; 03479 typedef struct CB_COMPOUND4res CB_COMPOUND4res; 03480 03481 #define NFS4_PROGRAM 100003 03482 #define NFS_V4 4 03483 03484 #if defined(__STDC__) || defined(__cplusplus) 03485 #define NFSPROC4_NULL 0 03486 extern void *nfsproc4_null_4(void *, CLIENT *); 03487 extern void *nfsproc4_null_4_svc(void *, struct svc_req *); 03488 #define NFSPROC4_COMPOUND 1 03489 extern COMPOUND4res *nfsproc4_compound_4(COMPOUND4args *, CLIENT *); 03490 extern COMPOUND4res *nfsproc4_compound_4_svc(COMPOUND4args *, struct svc_req *); 03491 extern int nfs4_program_4_freeresult(SVCXPRT *, xdrproc_t, caddr_t); 03492 03493 #else /* K&R C */ 03494 #define NFSPROC4_NULL 0 03495 extern void *nfsproc4_null_4(); 03496 extern void *nfsproc4_null_4_svc(); 03497 #define NFSPROC4_COMPOUND 1 03498 extern COMPOUND4res *nfsproc4_compound_4(); 03499 extern COMPOUND4res *nfsproc4_compound_4_svc(); 03500 extern int nfs4_program_4_freeresult(); 03501 #endif /* K&R C */ 03502 03503 #define NFS4_CALLBACK 0x40000000 03504 #define NFS_CB 1 03505 03506 #if defined(__STDC__) || defined(__cplusplus) 03507 #define CB_NULL 0 03508 extern void *cb_null_1(void *, CLIENT *); 03509 extern void *cb_null_1_svc(void *, struct svc_req *); 03510 #define CB_COMPOUND 1 03511 extern CB_COMPOUND4res *cb_compound_1(CB_COMPOUND4args *, CLIENT *); 03512 extern CB_COMPOUND4res *cb_compound_1_svc(CB_COMPOUND4args *, struct svc_req *); 03513 extern int nfs4_callback_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t); 03514 03515 #else /* K&R C */ 03516 #define CB_NULL 0 03517 extern void *cb_null_1(); 03518 extern void *cb_null_1_svc(); 03519 #define CB_COMPOUND 1 03520 extern CB_COMPOUND4res *cb_compound_1(); 03521 extern CB_COMPOUND4res *cb_compound_1_svc(); 03522 extern int nfs4_callback_1_freeresult(); 03523 #endif /* K&R C */ 03524 03525 /* the xdr functions */ 03526 03527 #if defined(__STDC__) || defined(__cplusplus) 03528 03529 static inline bool_t xdr_nfs_ftype4(XDR * xdrs, nfs_ftype4 * objp) 03530 { 03531 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03532 return FALSE; 03533 return TRUE; 03534 } 03535 03536 static inline bool_t xdr_nfsstat4(XDR * xdrs, nfsstat4 * objp) 03537 { 03538 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03539 return FALSE; 03540 return TRUE; 03541 } 03542 03543 static inline bool_t xdr_attrlist4(XDR * xdrs, attrlist4 * objp) 03544 { 03545 if(!inline_xdr_bytes(xdrs, (char **)&objp->attrlist4_val, (u_int *) & objp->attrlist4_len, ~0)) 03546 return FALSE; 03547 return TRUE; 03548 } 03549 03550 static inline bool_t xdr_bitmap4(XDR * xdrs, bitmap4 * objp) 03551 { 03552 if(!xdr_array(xdrs, (char **)&objp->bitmap4_val, (u_int *) & objp->bitmap4_len, ~0, 03553 sizeof(uint32_t), (xdrproc_t) xdr_uint32_t)) 03554 return FALSE; 03555 return TRUE; 03556 } 03557 03558 static inline bool_t xdr_changeid4(XDR * xdrs, changeid4 * objp) 03559 { 03560 if(!inline_xdr_u_int64_t(xdrs, objp)) 03561 return FALSE; 03562 return TRUE; 03563 } 03564 03565 static inline bool_t xdr_clientid4(XDR * xdrs, clientid4 * objp) 03566 { 03567 if(!inline_xdr_u_int64_t(xdrs, objp)) 03568 return FALSE; 03569 return TRUE; 03570 } 03571 03572 static inline bool_t xdr_count4(XDR * xdrs, count4 * objp) 03573 { 03574 if(!inline_xdr_u_int32_t(xdrs, objp)) 03575 return FALSE; 03576 return TRUE; 03577 } 03578 03579 static inline bool_t xdr_length4(XDR * xdrs, length4 * objp) 03580 { 03581 if(!inline_xdr_u_int64_t(xdrs, objp)) 03582 return FALSE; 03583 return TRUE; 03584 } 03585 03586 static inline bool_t xdr_mode4(XDR * xdrs, mode4 * objp) 03587 { 03588 if(!inline_xdr_u_int32_t(xdrs, objp)) 03589 return FALSE; 03590 return TRUE; 03591 } 03592 03593 static inline bool_t xdr_nfs_cookie4(XDR * xdrs, nfs_cookie4 * objp) 03594 { 03595 if(!inline_xdr_u_int64_t(xdrs, objp)) 03596 return FALSE; 03597 return TRUE; 03598 } 03599 03600 static inline bool_t xdr_nfs_fh4(XDR * xdrs, nfs_fh4 * objp) 03601 { 03602 if(!inline_xdr_bytes 03603 (xdrs, (char **)&objp->nfs_fh4_val, (u_int *) & objp->nfs_fh4_len, NFS4_FHSIZE)) 03604 return FALSE; 03605 return TRUE; 03606 } 03607 03608 static inline bool_t xdr_offset4(XDR * xdrs, offset4 * objp) 03609 { 03610 if(!inline_xdr_u_int64_t(xdrs, objp)) 03611 return FALSE; 03612 return TRUE; 03613 } 03614 03615 static inline bool_t xdr_qop4(XDR * xdrs, qop4 * objp) 03616 { 03617 if(!inline_xdr_u_int32_t(xdrs, objp)) 03618 return FALSE; 03619 return TRUE; 03620 } 03621 03622 static inline bool_t xdr_sec_oid4(XDR * xdrs, sec_oid4 * objp) 03623 { 03624 if(!inline_xdr_bytes(xdrs, (char **)&objp->sec_oid4_val, (u_int *) & objp->sec_oid4_len, ~0)) 03625 return FALSE; 03626 return TRUE; 03627 } 03628 03629 static inline bool_t xdr_sequenceid4(XDR * xdrs, sequenceid4 * objp) 03630 { 03631 if(!inline_xdr_u_int32_t(xdrs, objp)) 03632 return FALSE; 03633 return TRUE; 03634 } 03635 03636 static inline bool_t xdr_seqid4(XDR * xdrs, seqid4 * objp) 03637 { 03638 if(!inline_xdr_u_int32_t(xdrs, objp)) 03639 return FALSE; 03640 return TRUE; 03641 } 03642 03643 static inline bool_t xdr_sessionid4(XDR * xdrs, sessionid4 objp) 03644 { 03645 if(!xdr_opaque(xdrs, objp, NFS4_SESSIONID_SIZE)) 03646 return FALSE; 03647 return TRUE; 03648 } 03649 03650 static inline bool_t xdr_slotid4(XDR * xdrs, slotid4 * objp) 03651 { 03652 if(!inline_xdr_u_int32_t(xdrs, objp)) 03653 return FALSE; 03654 return TRUE; 03655 } 03656 03657 static inline bool_t xdr_utf8string(XDR * xdrs, utf8string * objp) 03658 { 03659 if(!inline_xdr_bytes 03660 (xdrs, (char **)&objp->utf8string_val, (u_int *) & objp->utf8string_len, ~0)) 03661 return FALSE; 03662 return TRUE; 03663 } 03664 03665 static inline bool_t xdr_utf8str_cis(XDR * xdrs, utf8str_cis * objp) 03666 { 03667 if(!xdr_utf8string(xdrs, objp)) 03668 return FALSE; 03669 return TRUE; 03670 } 03671 03672 static inline bool_t xdr_utf8str_cs(XDR * xdrs, utf8str_cs * objp) 03673 { 03674 if(!xdr_utf8string(xdrs, objp)) 03675 return FALSE; 03676 return TRUE; 03677 } 03678 03679 static inline bool_t xdr_utf8str_mixed(XDR * xdrs, utf8str_mixed * objp) 03680 { 03681 if(!xdr_utf8string(xdrs, objp)) 03682 return FALSE; 03683 return TRUE; 03684 } 03685 03686 static inline bool_t xdr_component4(XDR * xdrs, component4 * objp) 03687 { 03688 if(!xdr_utf8str_cs(xdrs, objp)) 03689 return FALSE; 03690 return TRUE; 03691 } 03692 03693 static inline bool_t xdr_linktext4(XDR * xdrs, linktext4 * objp) 03694 { 03695 if(!xdr_utf8str_cs(xdrs, objp)) 03696 return FALSE; 03697 return TRUE; 03698 } 03699 03700 static inline bool_t xdr_pathname4(XDR * xdrs, pathname4 * objp) 03701 { 03702 if(!xdr_array(xdrs, (char **)&objp->pathname4_val, (u_int *) & objp->pathname4_len, ~0, 03703 sizeof(component4), (xdrproc_t) xdr_component4)) 03704 return FALSE; 03705 return TRUE; 03706 } 03707 03708 static inline bool_t xdr_verifier4(XDR * xdrs, verifier4 objp) 03709 { 03710 if(!xdr_opaque(xdrs, objp, NFS4_VERIFIER_SIZE)) 03711 return FALSE; 03712 return TRUE; 03713 } 03714 03715 static inline bool_t xdr_nfstime4(XDR * xdrs, nfstime4 * objp) 03716 { 03717 if(!xdr_int64_t(xdrs, &objp->seconds)) 03718 return FALSE; 03719 if(!inline_xdr_u_int32_t(xdrs, &objp->nseconds)) 03720 return FALSE; 03721 return TRUE; 03722 } 03723 03724 static inline bool_t xdr_time_how4(XDR * xdrs, time_how4 * objp) 03725 { 03726 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03727 return FALSE; 03728 return TRUE; 03729 } 03730 03731 static inline bool_t xdr_settime4(XDR * xdrs, settime4 * objp) 03732 { 03733 if(!xdr_time_how4(xdrs, &objp->set_it)) 03734 return FALSE; 03735 switch (objp->set_it) 03736 { 03737 case SET_TO_CLIENT_TIME4: 03738 if(!xdr_nfstime4(xdrs, &objp->settime4_u.time)) 03739 return FALSE; 03740 break; 03741 default: 03742 break; 03743 } 03744 return TRUE; 03745 } 03746 03747 static inline bool_t xdr_nfs_lease4(XDR * xdrs, nfs_lease4 * objp) 03748 { 03749 if(!inline_xdr_u_int32_t(xdrs, objp)) 03750 return FALSE; 03751 return TRUE; 03752 } 03753 03754 static inline bool_t xdr_fsid4(XDR * xdrs, fsid4 * objp) 03755 { 03756 if(!inline_xdr_u_int64_t(xdrs, &objp->major)) 03757 return FALSE; 03758 if(!inline_xdr_u_int64_t(xdrs, &objp->minor)) 03759 return FALSE; 03760 return TRUE; 03761 } 03762 03763 static inline bool_t xdr_change_policy4(XDR * xdrs, change_policy4 * objp) 03764 { 03765 if(!inline_xdr_u_int64_t(xdrs, &objp->cp_major)) 03766 return FALSE; 03767 if(!inline_xdr_u_int64_t(xdrs, &objp->cp_minor)) 03768 return FALSE; 03769 return TRUE; 03770 } 03771 03772 static inline bool_t xdr_fs_location4(XDR * xdrs, fs_location4 * objp) 03773 { 03774 if(!xdr_array 03775 (xdrs, (char **)&objp->server.server_val, (u_int *) & objp->server.server_len, ~0, 03776 sizeof(utf8str_cis), (xdrproc_t) xdr_utf8str_cis)) 03777 return FALSE; 03778 if(!xdr_pathname4(xdrs, &objp->rootpath)) 03779 return FALSE; 03780 return TRUE; 03781 } 03782 03783 static inline bool_t xdr_fs_locations4(XDR * xdrs, fs_locations4 * objp) 03784 { 03785 if(!xdr_pathname4(xdrs, &objp->fs_root)) 03786 return FALSE; 03787 if(!xdr_array 03788 (xdrs, (char **)&objp->locations.locations_val, 03789 (u_int *) & objp->locations.locations_len, ~0, sizeof(fs_location4), 03790 (xdrproc_t) xdr_fs_location4)) 03791 return FALSE; 03792 return TRUE; 03793 } 03794 03795 static inline bool_t xdr_acetype4(XDR * xdrs, acetype4 * objp) 03796 { 03797 if(!inline_xdr_u_int32_t(xdrs, objp)) 03798 return FALSE; 03799 return TRUE; 03800 } 03801 03802 static inline bool_t xdr_aceflag4(XDR * xdrs, aceflag4 * objp) 03803 { 03804 if(!inline_xdr_u_int32_t(xdrs, objp)) 03805 return FALSE; 03806 return TRUE; 03807 } 03808 03809 static inline bool_t xdr_acemask4(XDR * xdrs, acemask4 * objp) 03810 { 03811 if(!inline_xdr_u_int32_t(xdrs, objp)) 03812 return FALSE; 03813 return TRUE; 03814 } 03815 03816 static inline bool_t xdr_nfsace4(XDR * xdrs, nfsace4 * objp) 03817 { 03818 if(!xdr_acetype4(xdrs, &objp->type)) 03819 return FALSE; 03820 if(!xdr_aceflag4(xdrs, &objp->flag)) 03821 return FALSE; 03822 if(!xdr_acemask4(xdrs, &objp->access_mask)) 03823 return FALSE; 03824 if(!xdr_utf8str_mixed(xdrs, &objp->who)) 03825 return FALSE; 03826 return TRUE; 03827 } 03828 03829 static inline bool_t xdr_aclflag4(XDR * xdrs, aclflag4 * objp) 03830 { 03831 if(!inline_xdr_u_int32_t(xdrs, objp)) 03832 return FALSE; 03833 return TRUE; 03834 } 03835 03836 static inline bool_t xdr_nfsacl41(XDR * xdrs, nfsacl41 * objp) 03837 { 03838 if(!xdr_aclflag4(xdrs, &objp->na41_flag)) 03839 return FALSE; 03840 if(!xdr_array 03841 (xdrs, (char **)&objp->na41_aces.na41_aces_val, 03842 (u_int *) & objp->na41_aces.na41_aces_len, ~0, sizeof(nfsace4), 03843 (xdrproc_t) xdr_nfsace4)) 03844 return FALSE; 03845 return TRUE; 03846 } 03847 03848 static inline bool_t xdr_mode_masked4(XDR * xdrs, mode_masked4 * objp) 03849 { 03850 if(!xdr_mode4(xdrs, &objp->mm_value_to_set)) 03851 return FALSE; 03852 if(!xdr_mode4(xdrs, &objp->mm_mask_bits)) 03853 return FALSE; 03854 return TRUE; 03855 } 03856 03857 static inline bool_t xdr_specdata4(XDR * xdrs, specdata4 * objp) 03858 { 03859 if(!inline_xdr_u_int32_t(xdrs, &objp->specdata1)) 03860 return FALSE; 03861 if(!inline_xdr_u_int32_t(xdrs, &objp->specdata2)) 03862 return FALSE; 03863 return TRUE; 03864 } 03865 03866 static inline bool_t xdr_netaddr4(XDR * xdrs, netaddr4 * objp) 03867 { 03868 if(!inline_xdr_string(xdrs, &objp->r_netid, ~0)) 03869 return FALSE; 03870 if(!inline_xdr_string(xdrs, &objp->r_addr, ~0)) 03871 return FALSE; 03872 return TRUE; 03873 } 03874 03875 static inline bool_t xdr_nfs_impl_id4(XDR * xdrs, nfs_impl_id4 * objp) 03876 { 03877 if(!xdr_utf8str_cis(xdrs, &objp->nii_domain)) 03878 return FALSE; 03879 if(!xdr_utf8str_cs(xdrs, &objp->nii_name)) 03880 return FALSE; 03881 if(!xdr_nfstime4(xdrs, &objp->nii_date)) 03882 return FALSE; 03883 return TRUE; 03884 } 03885 03886 static inline bool_t xdr_stateid4(XDR * xdrs, stateid4 * objp) 03887 { 03888 if(!inline_xdr_u_int32_t(xdrs, &objp->seqid)) 03889 return FALSE; 03890 if(!xdr_opaque(xdrs, objp->other, 12)) 03891 return FALSE; 03892 return TRUE; 03893 } 03894 03895 static inline bool_t xdr_layouttype4(XDR * xdrs, layouttype4 * objp) 03896 { 03897 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03898 return FALSE; 03899 return TRUE; 03900 } 03901 03902 static inline bool_t xdr_layout_content4(XDR * xdrs, layout_content4 * objp) 03903 { 03904 if(!xdr_layouttype4(xdrs, &objp->loc_type)) 03905 return FALSE; 03906 if(!inline_xdr_bytes 03907 (xdrs, (char **)&objp->loc_body.loc_body_val, 03908 (u_int *) & objp->loc_body.loc_body_len, ~0)) 03909 return FALSE; 03910 return TRUE; 03911 } 03912 03913 /* 03914 * LAYOUT4_OSD2_OBJECTS loc_body description 03915 * is in a separate .x file 03916 */ 03917 03918 /* 03919 * LAYOUT4_BLOCK_VOLUME loc_body description 03920 * is in a separate .x file 03921 */ 03922 03923 static inline bool_t xdr_layouthint4(XDR * xdrs, layouthint4 * objp) 03924 { 03925 if(!xdr_layouttype4(xdrs, &objp->loh_type)) 03926 return FALSE; 03927 if(!inline_xdr_bytes 03928 (xdrs, (char **)&objp->loh_body.loh_body_val, 03929 (u_int *) & objp->loh_body.loh_body_len, ~0)) 03930 return FALSE; 03931 return TRUE; 03932 } 03933 03934 static inline bool_t xdr_layoutiomode4(XDR * xdrs, layoutiomode4 * objp) 03935 { 03936 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03937 return FALSE; 03938 return TRUE; 03939 } 03940 03941 static inline bool_t xdr_layout4(XDR * xdrs, layout4 * objp) 03942 { 03943 if(!xdr_offset4(xdrs, &objp->lo_offset)) 03944 return FALSE; 03945 if(!xdr_length4(xdrs, &objp->lo_length)) 03946 return FALSE; 03947 if(!xdr_layoutiomode4(xdrs, &objp->lo_iomode)) 03948 return FALSE; 03949 if(!xdr_layout_content4(xdrs, &objp->lo_content)) 03950 return FALSE; 03951 return TRUE; 03952 } 03953 03954 static inline bool_t xdr_deviceid4(XDR * xdrs, deviceid4 objp) 03955 { 03956 if(!xdr_opaque(xdrs, objp, NFS4_DEVICEID4_SIZE)) 03957 return FALSE; 03958 return TRUE; 03959 } 03960 03961 static inline bool_t xdr_device_addr4(XDR * xdrs, device_addr4 * objp) 03962 { 03963 if(!xdr_layouttype4(xdrs, &objp->da_layout_type)) 03964 return FALSE; 03965 if(!inline_xdr_bytes 03966 (xdrs, (char **)&objp->da_addr_body.da_addr_body_val, 03967 (u_int *) & objp->da_addr_body.da_addr_body_len, ~0)) 03968 return FALSE; 03969 return TRUE; 03970 } 03971 03972 static inline bool_t xdr_layoutupdate4(XDR * xdrs, layoutupdate4 * objp) 03973 { 03974 if(!xdr_layouttype4(xdrs, &objp->lou_type)) 03975 return FALSE; 03976 if(!inline_xdr_bytes 03977 (xdrs, (char **)&objp->lou_body.lou_body_val, 03978 (u_int *) & objp->lou_body.lou_body_len, ~0)) 03979 return FALSE; 03980 return TRUE; 03981 } 03982 03983 static inline bool_t xdr_layoutreturn_type4(XDR * xdrs, layoutreturn_type4 * objp) 03984 { 03985 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 03986 return FALSE; 03987 return TRUE; 03988 } 03989 03990 /* layouttype4 specific data */ 03991 03992 static inline bool_t xdr_layoutreturn_file4(XDR * xdrs, layoutreturn_file4 * objp) 03993 { 03994 if(!xdr_offset4(xdrs, &objp->lrf_offset)) 03995 return FALSE; 03996 if(!xdr_length4(xdrs, &objp->lrf_length)) 03997 return FALSE; 03998 if(!xdr_stateid4(xdrs, &objp->lrf_stateid)) 03999 return FALSE; 04000 if(!inline_xdr_bytes 04001 (xdrs, (char **)&objp->lrf_body.lrf_body_val, 04002 (u_int *) & objp->lrf_body.lrf_body_len, ~0)) 04003 return FALSE; 04004 return TRUE; 04005 } 04006 04007 static inline bool_t xdr_layoutreturn4(XDR * xdrs, layoutreturn4 * objp) 04008 { 04009 if(!xdr_layoutreturn_type4(xdrs, &objp->lr_returntype)) 04010 return FALSE; 04011 switch (objp->lr_returntype) 04012 { 04013 case LAYOUTRETURN4_FILE: 04014 if(!xdr_layoutreturn_file4(xdrs, &objp->layoutreturn4_u.lr_layout)) 04015 return FALSE; 04016 break; 04017 default: 04018 break; 04019 } 04020 return TRUE; 04021 } 04022 04023 static inline bool_t xdr_fs4_status_type(XDR * xdrs, fs4_status_type * objp) 04024 { 04025 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 04026 return FALSE; 04027 return TRUE; 04028 } 04029 04030 static inline bool_t xdr_fs4_status(XDR * xdrs, fs4_status * objp) 04031 { 04032 if(!xdr_bool(xdrs, &objp->fss_absent)) 04033 return FALSE; 04034 if(!xdr_fs4_status_type(xdrs, &objp->fss_type)) 04035 return FALSE; 04036 if(!xdr_utf8str_cs(xdrs, &objp->fss_source)) 04037 return FALSE; 04038 if(!xdr_utf8str_cs(xdrs, &objp->fss_current)) 04039 return FALSE; 04040 if(!xdr_int32_t(xdrs, &objp->fss_age)) 04041 return FALSE; 04042 if(!xdr_nfstime4(xdrs, &objp->fss_version)) 04043 return FALSE; 04044 return TRUE; 04045 } 04046 04047 static inline bool_t xdr_threshold4_read_size(XDR * xdrs, threshold4_read_size * objp) 04048 { 04049 if(!xdr_length4(xdrs, objp)) 04050 return FALSE; 04051 return TRUE; 04052 } 04053 04054 static inline bool_t xdr_threshold4_write_size(XDR * xdrs, threshold4_write_size * objp) 04055 { 04056 if(!xdr_length4(xdrs, objp)) 04057 return FALSE; 04058 return TRUE; 04059 } 04060 04061 static inline bool_t xdr_threshold4_read_iosize(XDR * xdrs, threshold4_read_iosize * objp) 04062 { 04063 if(!xdr_length4(xdrs, objp)) 04064 return FALSE; 04065 return TRUE; 04066 } 04067 04068 static inline bool_t xdr_threshold4_write_iosize(XDR * xdrs, threshold4_write_iosize * objp) 04069 { 04070 if(!xdr_length4(xdrs, objp)) 04071 return FALSE; 04072 return TRUE; 04073 } 04074 04075 static inline bool_t xdr_threshold_item4(XDR * xdrs, threshold_item4 * objp) 04076 { 04077 if(!xdr_layouttype4(xdrs, &objp->thi_layout_type)) 04078 return FALSE; 04079 if(!xdr_bitmap4(xdrs, &objp->thi_hintset)) 04080 return FALSE; 04081 if(!inline_xdr_bytes 04082 (xdrs, (char **)&objp->thi_hintlist.thi_hintlist_val, 04083 (u_int *) & objp->thi_hintlist.thi_hintlist_len, ~0)) 04084 return FALSE; 04085 return TRUE; 04086 } 04087 04088 static inline bool_t xdr_mdsthreshold4(XDR * xdrs, mdsthreshold4 * objp) 04089 { 04090 if(!xdr_array 04091 (xdrs, (char **)&objp->mth_hints.mth_hints_val, 04092 (u_int *) & objp->mth_hints.mth_hints_len, ~0, sizeof(threshold_item4), 04093 (xdrproc_t) xdr_threshold_item4)) 04094 return FALSE; 04095 return TRUE; 04096 } 04097 04098 static inline bool_t xdr_retention_get4(XDR * xdrs, retention_get4 * objp) 04099 { 04100 if(!inline_xdr_u_int64_t(xdrs, &objp->rg_duration)) 04101 return FALSE; 04102 if(!xdr_array 04103 (xdrs, (char **)&objp->rg_begin_time.rg_begin_time_val, 04104 (u_int *) & objp->rg_begin_time.rg_begin_time_len, 1, sizeof(nfstime4), 04105 (xdrproc_t) xdr_nfstime4)) 04106 return FALSE; 04107 return TRUE; 04108 } 04109 04110 static inline bool_t xdr_retention_set4(XDR * xdrs, retention_set4 * objp) 04111 { 04112 if(!inline_xdr_bool(xdrs, &objp->rs_enable)) 04113 return FALSE; 04114 if(!xdr_array 04115 (xdrs, (char **)&objp->rs_duration.rs_duration_val, 04116 (u_int *) & objp->rs_duration.rs_duration_len, 1, sizeof(uint64_t), 04117 (xdrproc_t) inline_xdr_u_int64_t)) 04118 return FALSE; 04119 return TRUE; 04120 } 04121 04122 static inline bool_t xdr_fs_charset_cap4(XDR * xdrs, fs_charset_cap4 * objp) 04123 { 04124 if(!inline_xdr_u_int32_t(xdrs, objp)) 04125 return FALSE; 04126 return TRUE; 04127 } 04128 04129 static inline bool_t xdr_fattr4_supported_attrs(XDR * xdrs, fattr4_supported_attrs * objp) 04130 { 04131 if(!xdr_bitmap4(xdrs, objp)) 04132 return FALSE; 04133 return TRUE; 04134 } 04135 04136 static inline bool_t xdr_fattr4_type(XDR * xdrs, fattr4_type * objp) 04137 { 04138 if(!xdr_nfs_ftype4(xdrs, objp)) 04139 return FALSE; 04140 return TRUE; 04141 } 04142 04143 static inline bool_t xdr_fattr4_fh_expire_type(XDR * xdrs, fattr4_fh_expire_type * objp) 04144 { 04145 if(!inline_xdr_u_int32_t(xdrs, objp)) 04146 return FALSE; 04147 return TRUE; 04148 } 04149 04150 static inline bool_t xdr_fattr4_change(XDR * xdrs, fattr4_change * objp) 04151 { 04152 if(!xdr_changeid4(xdrs, objp)) 04153 return FALSE; 04154 return TRUE; 04155 } 04156 04157 static inline bool_t xdr_fattr4_size(XDR * xdrs, fattr4_size * objp) 04158 { 04159 if(!inline_xdr_u_int64_t(xdrs, objp)) 04160 return FALSE; 04161 return TRUE; 04162 } 04163 04164 static inline bool_t xdr_fattr4_link_support(XDR * xdrs, fattr4_link_support * objp) 04165 { 04166 if(!inline_xdr_bool(xdrs, objp)) 04167 return FALSE; 04168 return TRUE; 04169 } 04170 04171 static inline bool_t xdr_fattr4_symlink_support(XDR * xdrs, fattr4_symlink_support * objp) 04172 { 04173 if(!inline_xdr_bool(xdrs, objp)) 04174 return FALSE; 04175 return TRUE; 04176 } 04177 04178 static inline bool_t xdr_fattr4_named_attr(XDR * xdrs, fattr4_named_attr * objp) 04179 { 04180 if(!inline_xdr_bool(xdrs, objp)) 04181 return FALSE; 04182 return TRUE; 04183 } 04184 04185 static inline bool_t xdr_fattr4_fsid(XDR * xdrs, fattr4_fsid * objp) 04186 { 04187 if(!xdr_fsid4(xdrs, objp)) 04188 return FALSE; 04189 return TRUE; 04190 } 04191 04192 static inline bool_t xdr_fattr4_unique_handles(XDR * xdrs, fattr4_unique_handles * objp) 04193 { 04194 if(!inline_xdr_bool(xdrs, objp)) 04195 return FALSE; 04196 return TRUE; 04197 } 04198 04199 static inline bool_t xdr_fattr4_lease_time(XDR * xdrs, fattr4_lease_time * objp) 04200 { 04201 if(!xdr_nfs_lease4(xdrs, objp)) 04202 return FALSE; 04203 return TRUE; 04204 } 04205 04206 static inline bool_t xdr_fattr4_rdattr_error(XDR * xdrs, fattr4_rdattr_error * objp) 04207 { 04208 if(!xdr_nfsstat4(xdrs, objp)) 04209 return FALSE; 04210 return TRUE; 04211 } 04212 04213 static inline bool_t xdr_fattr4_acl(XDR * xdrs, fattr4_acl * objp) 04214 { 04215 if(!xdr_array 04216 (xdrs, (char **)&objp->fattr4_acl_val, (u_int *) & objp->fattr4_acl_len, ~0, 04217 sizeof(nfsace4), (xdrproc_t) xdr_nfsace4)) 04218 return FALSE; 04219 return TRUE; 04220 } 04221 04222 static inline bool_t xdr_fattr4_aclsupport(XDR * xdrs, fattr4_aclsupport * objp) 04223 { 04224 if(!inline_xdr_u_int32_t(xdrs, objp)) 04225 return FALSE; 04226 return TRUE; 04227 } 04228 04229 static inline bool_t xdr_fattr4_archive(XDR * xdrs, fattr4_archive * objp) 04230 { 04231 if(!inline_xdr_bool(xdrs, objp)) 04232 return FALSE; 04233 return TRUE; 04234 } 04235 04236 static inline bool_t xdr_fattr4_cansettime(XDR * xdrs, fattr4_cansettime * objp) 04237 { 04238 if(!inline_xdr_bool(xdrs, objp)) 04239 return FALSE; 04240 return TRUE; 04241 } 04242 04243 static inline bool_t xdr_fattr4_case_insensitive(XDR * xdrs, fattr4_case_insensitive * objp) 04244 { 04245 if(!inline_xdr_bool(xdrs, objp)) 04246 return FALSE; 04247 return TRUE; 04248 } 04249 04250 static inline bool_t xdr_fattr4_case_preserving(XDR * xdrs, fattr4_case_preserving * objp) 04251 { 04252 if(!inline_xdr_bool(xdrs, objp)) 04253 return FALSE; 04254 return TRUE; 04255 } 04256 04257 static inline bool_t xdr_fattr4_chown_restricted(XDR * xdrs, fattr4_chown_restricted * objp) 04258 { 04259 if(!inline_xdr_bool(xdrs, objp)) 04260 return FALSE; 04261 return TRUE; 04262 } 04263 04264 static inline bool_t xdr_fattr4_fileid(XDR * xdrs, fattr4_fileid * objp) 04265 { 04266 if(!inline_xdr_u_int64_t(xdrs, objp)) 04267 return FALSE; 04268 return TRUE; 04269 } 04270 04271 static inline bool_t xdr_fattr4_files_avail(XDR * xdrs, fattr4_files_avail * objp) 04272 { 04273 if(!inline_xdr_u_int64_t(xdrs, objp)) 04274 return FALSE; 04275 return TRUE; 04276 } 04277 04278 static inline bool_t xdr_fattr4_filehandle(XDR * xdrs, fattr4_filehandle * objp) 04279 { 04280 if(!xdr_nfs_fh4(xdrs, objp)) 04281 return FALSE; 04282 return TRUE; 04283 } 04284 04285 static inline bool_t xdr_fattr4_files_free(XDR * xdrs, fattr4_files_free * objp) 04286 { 04287 if(!inline_xdr_u_int64_t(xdrs, objp)) 04288 return FALSE; 04289 return TRUE; 04290 } 04291 04292 static inline bool_t xdr_fattr4_files_total(XDR * xdrs, fattr4_files_total * objp) 04293 { 04294 if(!inline_xdr_u_int64_t(xdrs, objp)) 04295 return FALSE; 04296 return TRUE; 04297 } 04298 04299 static inline bool_t xdr_fattr4_fs_locations(XDR * xdrs, fattr4_fs_locations * objp) 04300 { 04301 if(!xdr_fs_locations4(xdrs, objp)) 04302 return FALSE; 04303 return TRUE; 04304 } 04305 04306 static inline bool_t xdr_fattr4_hidden(XDR * xdrs, fattr4_hidden * objp) 04307 { 04308 if(!inline_xdr_bool(xdrs, objp)) 04309 return FALSE; 04310 return TRUE; 04311 } 04312 04313 static inline bool_t xdr_fattr4_homogeneous(XDR * xdrs, fattr4_homogeneous * objp) 04314 { 04315 if(!inline_xdr_bool(xdrs, objp)) 04316 return FALSE; 04317 return TRUE; 04318 } 04319 04320 static inline bool_t xdr_fattr4_maxfilesize(XDR * xdrs, fattr4_maxfilesize * objp) 04321 { 04322 if(!inline_xdr_u_int64_t(xdrs, objp)) 04323 return FALSE; 04324 return TRUE; 04325 } 04326 04327 static inline bool_t xdr_fattr4_maxlink(XDR * xdrs, fattr4_maxlink * objp) 04328 { 04329 if(!inline_xdr_u_int32_t(xdrs, objp)) 04330 return FALSE; 04331 return TRUE; 04332 } 04333 04334 static inline bool_t xdr_fattr4_maxname(XDR * xdrs, fattr4_maxname * objp) 04335 { 04336 if(!inline_xdr_u_int32_t(xdrs, objp)) 04337 return FALSE; 04338 return TRUE; 04339 } 04340 04341 static inline bool_t xdr_fattr4_maxread(XDR * xdrs, fattr4_maxread * objp) 04342 { 04343 if(!inline_xdr_u_int64_t(xdrs, objp)) 04344 return FALSE; 04345 return TRUE; 04346 } 04347 04348 static inline bool_t xdr_fattr4_maxwrite(XDR * xdrs, fattr4_maxwrite * objp) 04349 { 04350 if(!inline_xdr_u_int64_t(xdrs, objp)) 04351 return FALSE; 04352 return TRUE; 04353 } 04354 04355 static inline bool_t xdr_fattr4_mimetype(XDR * xdrs, fattr4_mimetype * objp) 04356 { 04357 if(!xdr_utf8str_cs(xdrs, objp)) 04358 return FALSE; 04359 return TRUE; 04360 } 04361 04362 static inline bool_t xdr_fattr4_mode(XDR * xdrs, fattr4_mode * objp) 04363 { 04364 if(!xdr_mode4(xdrs, objp)) 04365 return FALSE; 04366 return TRUE; 04367 } 04368 04369 static inline bool_t xdr_fattr4_mode_set_masked(XDR * xdrs, fattr4_mode_set_masked * objp) 04370 { 04371 if(!xdr_mode_masked4(xdrs, objp)) 04372 return FALSE; 04373 return TRUE; 04374 } 04375 04376 static inline bool_t xdr_fattr4_mounted_on_fileid(XDR * xdrs, fattr4_mounted_on_fileid * objp) 04377 { 04378 if(!inline_xdr_u_int64_t(xdrs, objp)) 04379 return FALSE; 04380 return TRUE; 04381 } 04382 04383 static inline bool_t xdr_fattr4_no_trunc(XDR * xdrs, fattr4_no_trunc * objp) 04384 { 04385 if(!inline_xdr_bool(xdrs, objp)) 04386 return FALSE; 04387 return TRUE; 04388 } 04389 04390 static inline bool_t xdr_fattr4_numlinks(XDR * xdrs, fattr4_numlinks * objp) 04391 { 04392 if(!inline_xdr_u_int32_t(xdrs, objp)) 04393 return FALSE; 04394 return TRUE; 04395 } 04396 04397 static inline bool_t xdr_fattr4_owner(XDR * xdrs, fattr4_owner * objp) 04398 { 04399 if(!xdr_utf8str_mixed(xdrs, objp)) 04400 return FALSE; 04401 return TRUE; 04402 } 04403 04404 static inline bool_t xdr_fattr4_owner_group(XDR * xdrs, fattr4_owner_group * objp) 04405 { 04406 if(!xdr_utf8str_mixed(xdrs, objp)) 04407 return FALSE; 04408 return TRUE; 04409 } 04410 04411 static inline bool_t xdr_fattr4_quota_avail_hard(XDR * xdrs, fattr4_quota_avail_hard * objp) 04412 { 04413 if(!inline_xdr_u_int64_t(xdrs, objp)) 04414 return FALSE; 04415 return TRUE; 04416 } 04417 04418 static inline bool_t xdr_fattr4_quota_avail_soft(XDR * xdrs, fattr4_quota_avail_soft * objp) 04419 { 04420 if(!inline_xdr_u_int64_t(xdrs, objp)) 04421 return FALSE; 04422 return TRUE; 04423 } 04424 04425 static inline bool_t xdr_fattr4_quota_used(XDR * xdrs, fattr4_quota_used * objp) 04426 { 04427 if(!inline_xdr_u_int64_t(xdrs, objp)) 04428 return FALSE; 04429 return TRUE; 04430 } 04431 04432 static inline bool_t xdr_fattr4_rawdev(XDR * xdrs, fattr4_rawdev * objp) 04433 { 04434 if(!xdr_specdata4(xdrs, objp)) 04435 return FALSE; 04436 return TRUE; 04437 } 04438 04439 static inline bool_t xdr_fattr4_space_avail(XDR * xdrs, fattr4_space_avail * objp) 04440 { 04441 if(!inline_xdr_u_int64_t(xdrs, objp)) 04442 return FALSE; 04443 return TRUE; 04444 } 04445 04446 static inline bool_t xdr_fattr4_space_free(XDR * xdrs, fattr4_space_free * objp) 04447 { 04448 if(!inline_xdr_u_int64_t(xdrs, objp)) 04449 return FALSE; 04450 return TRUE; 04451 } 04452 04453 static inline bool_t xdr_fattr4_space_total(XDR * xdrs, fattr4_space_total * objp) 04454 { 04455 if(!inline_xdr_u_int64_t(xdrs, objp)) 04456 return FALSE; 04457 return TRUE; 04458 } 04459 04460 static inline bool_t xdr_fattr4_space_used(XDR * xdrs, fattr4_space_used * objp) 04461 { 04462 if(!inline_xdr_u_int64_t(xdrs, objp)) 04463 return FALSE; 04464 return TRUE; 04465 } 04466 04467 static inline bool_t xdr_fattr4_system(XDR * xdrs, fattr4_system * objp) 04468 { 04469 if(!inline_xdr_bool(xdrs, objp)) 04470 return FALSE; 04471 return TRUE; 04472 } 04473 04474 static inline bool_t xdr_fattr4_time_access(XDR * xdrs, fattr4_time_access * objp) 04475 { 04476 if(!xdr_nfstime4(xdrs, objp)) 04477 return FALSE; 04478 return TRUE; 04479 } 04480 04481 static inline bool_t xdr_fattr4_time_access_set(XDR * xdrs, fattr4_time_access_set * objp) 04482 { 04483 if(!xdr_settime4(xdrs, objp)) 04484 return FALSE; 04485 return TRUE; 04486 } 04487 04488 static inline bool_t xdr_fattr4_time_backup(XDR * xdrs, fattr4_time_backup * objp) 04489 { 04490 if(!xdr_nfstime4(xdrs, objp)) 04491 return FALSE; 04492 return TRUE; 04493 } 04494 04495 static inline bool_t xdr_fattr4_time_create(XDR * xdrs, fattr4_time_create * objp) 04496 { 04497 if(!xdr_nfstime4(xdrs, objp)) 04498 return FALSE; 04499 return TRUE; 04500 } 04501 04502 static inline bool_t xdr_fattr4_time_delta(XDR * xdrs, fattr4_time_delta * objp) 04503 { 04504 if(!xdr_nfstime4(xdrs, objp)) 04505 return FALSE; 04506 return TRUE; 04507 } 04508 04509 static inline bool_t xdr_fattr4_time_metadata(XDR * xdrs, fattr4_time_metadata * objp) 04510 { 04511 if(!xdr_nfstime4(xdrs, objp)) 04512 return FALSE; 04513 return TRUE; 04514 } 04515 04516 static inline bool_t xdr_fattr4_time_modify(XDR * xdrs, fattr4_time_modify * objp) 04517 { 04518 if(!xdr_nfstime4(xdrs, objp)) 04519 return FALSE; 04520 return TRUE; 04521 } 04522 04523 static inline bool_t xdr_fattr4_time_modify_set(XDR * xdrs, fattr4_time_modify_set * objp) 04524 { 04525 if(!xdr_settime4(xdrs, objp)) 04526 return FALSE; 04527 return TRUE; 04528 } 04529 04530 static inline bool_t xdr_fattr4_suppattr_exclcreat(XDR * xdrs, fattr4_suppattr_exclcreat * objp) 04531 { 04532 if(!xdr_bitmap4(xdrs, objp)) 04533 return FALSE; 04534 return TRUE; 04535 } 04536 04537 static inline bool_t xdr_fattr4_dir_notif_delay(XDR * xdrs, fattr4_dir_notif_delay * objp) 04538 { 04539 if(!xdr_nfstime4(xdrs, objp)) 04540 return FALSE; 04541 return TRUE; 04542 } 04543 04544 static inline bool_t xdr_fattr4_dirent_notif_delay(XDR * xdrs, fattr4_dirent_notif_delay * objp) 04545 { 04546 if(!xdr_nfstime4(xdrs, objp)) 04547 return FALSE; 04548 return TRUE; 04549 } 04550 04551 static inline bool_t xdr_fattr4_fs_layout_types(XDR * xdrs, fattr4_fs_layout_types * objp) 04552 { 04553 if(!xdr_array 04554 (xdrs, (char **)&objp->fattr4_fs_layout_types_val, 04555 (u_int *) & objp->fattr4_fs_layout_types_len, ~0, sizeof(layouttype4), 04556 (xdrproc_t) xdr_layouttype4)) 04557 return FALSE; 04558 return TRUE; 04559 } 04560 04561 static inline bool_t xdr_fattr4_fs_status(XDR * xdrs, fattr4_fs_status * objp) 04562 { 04563 if(!xdr_fs4_status(xdrs, objp)) 04564 return FALSE; 04565 return TRUE; 04566 } 04567 04568 static inline bool_t xdr_fattr4_fs_charset_cap(XDR * xdrs, fattr4_fs_charset_cap * objp) 04569 { 04570 if(!xdr_fs_charset_cap4(xdrs, objp)) 04571 return FALSE; 04572 return TRUE; 04573 } 04574 04575 static inline bool_t xdr_fattr4_layout_alignment(XDR * xdrs, fattr4_layout_alignment * objp) 04576 { 04577 if(!inline_xdr_u_int32_t(xdrs, objp)) 04578 return FALSE; 04579 return TRUE; 04580 } 04581 04582 static inline bool_t xdr_fattr4_layout_blksize(XDR * xdrs, fattr4_layout_blksize * objp) 04583 { 04584 if(!inline_xdr_u_int32_t(xdrs, objp)) 04585 return FALSE; 04586 return TRUE; 04587 } 04588 04589 static inline bool_t xdr_fattr4_layout_hint(XDR * xdrs, fattr4_layout_hint * objp) 04590 { 04591 if(!xdr_layouthint4(xdrs, objp)) 04592 return FALSE; 04593 return TRUE; 04594 } 04595 04596 static inline bool_t xdr_fattr4_layout_types(XDR * xdrs, fattr4_layout_types * objp) 04597 { 04598 if(!xdr_array 04599 (xdrs, (char **)&objp->fattr4_layout_types_val, 04600 (u_int *) & objp->fattr4_layout_types_len, ~0, sizeof(layouttype4), 04601 (xdrproc_t) xdr_layouttype4)) 04602 return FALSE; 04603 return TRUE; 04604 } 04605 04606 static inline bool_t xdr_fattr4_mdsthreshold(XDR * xdrs, fattr4_mdsthreshold * objp) 04607 { 04608 if(!xdr_mdsthreshold4(xdrs, objp)) 04609 return FALSE; 04610 return TRUE; 04611 } 04612 04613 static inline bool_t xdr_fattr4_retention_get(XDR * xdrs, fattr4_retention_get * objp) 04614 { 04615 if(!xdr_retention_get4(xdrs, objp)) 04616 return FALSE; 04617 return TRUE; 04618 } 04619 04620 static inline bool_t xdr_fattr4_retention_set(XDR * xdrs, fattr4_retention_set * objp) 04621 { 04622 if(!xdr_retention_set4(xdrs, objp)) 04623 return FALSE; 04624 return TRUE; 04625 } 04626 04627 static inline bool_t xdr_fattr4_retentevt_get(XDR * xdrs, fattr4_retentevt_get * objp) 04628 { 04629 if(!xdr_retention_get4(xdrs, objp)) 04630 return FALSE; 04631 return TRUE; 04632 } 04633 04634 static inline bool_t xdr_fattr4_retentevt_set(XDR * xdrs, fattr4_retentevt_set * objp) 04635 { 04636 if(!xdr_retention_set4(xdrs, objp)) 04637 return FALSE; 04638 return TRUE; 04639 } 04640 04641 static inline bool_t xdr_fattr4_retention_hold(XDR * xdrs, fattr4_retention_hold * objp) 04642 { 04643 if(!inline_xdr_u_int64_t(xdrs, objp)) 04644 return FALSE; 04645 return TRUE; 04646 } 04647 04648 static inline bool_t xdr_fattr4_dacl(XDR * xdrs, fattr4_dacl * objp) 04649 { 04650 if(!xdr_nfsacl41(xdrs, objp)) 04651 return FALSE; 04652 return TRUE; 04653 } 04654 04655 static inline bool_t xdr_fattr4_sacl(XDR * xdrs, fattr4_sacl * objp) 04656 { 04657 if(!xdr_nfsacl41(xdrs, objp)) 04658 return FALSE; 04659 return TRUE; 04660 } 04661 04662 static inline bool_t xdr_fattr4_change_policy(XDR * xdrs, fattr4_change_policy * objp) 04663 { 04664 if(!xdr_change_policy4(xdrs, objp)) 04665 return FALSE; 04666 return TRUE; 04667 } 04668 04669 /* 04670 * REQUIRED Attributes 04671 */ 04672 /* new to NFSV4.1 */ 04673 /* 04674 * RECOMMENDED Attributes 04675 */ 04676 04677 /* new to NFSV4.1 */ 04678 04679 static inline bool_t xdr_fattr4(XDR * xdrs, fattr4 * objp) 04680 { 04681 if(!xdr_bitmap4(xdrs, &objp->attrmask)) 04682 return FALSE; 04683 if(!xdr_attrlist4(xdrs, &objp->attr_vals)) 04684 return FALSE; 04685 return TRUE; 04686 } 04687 04688 static inline bool_t xdr_change_info4(XDR * xdrs, change_info4 * objp) 04689 { 04690 if(!inline_xdr_bool(xdrs, &objp->atomic)) 04691 return FALSE; 04692 if(!xdr_changeid4(xdrs, &objp->before)) 04693 return FALSE; 04694 if(!xdr_changeid4(xdrs, &objp->after)) 04695 return FALSE; 04696 return TRUE; 04697 } 04698 04699 static inline bool_t xdr_clientaddr4(XDR * xdrs, clientaddr4 * objp) 04700 { 04701 if(!xdr_netaddr4(xdrs, objp)) 04702 return FALSE; 04703 return TRUE; 04704 } 04705 04706 static inline bool_t xdr_cb_client4(XDR * xdrs, cb_client4 * objp) 04707 { 04708 if(!inline_xdr_u_int32_t(xdrs, &objp->cb_program)) 04709 return FALSE; 04710 if(!xdr_netaddr4(xdrs, &objp->cb_location)) 04711 return FALSE; 04712 return TRUE; 04713 } 04714 04715 static inline bool_t xdr_nfs_client_id4(XDR * xdrs, nfs_client_id4 * objp) 04716 { 04717 if(!xdr_verifier4(xdrs, objp->verifier)) 04718 return FALSE; 04719 if(!inline_xdr_bytes 04720 (xdrs, (char **)&objp->id.id_val, (u_int *) & objp->id.id_len, NFS4_OPAQUE_LIMIT)) 04721 return FALSE; 04722 return TRUE; 04723 } 04724 04725 static inline bool_t xdr_client_owner4(XDR * xdrs, client_owner4 * objp) 04726 { 04727 if(!xdr_verifier4(xdrs, objp->co_verifier)) 04728 return FALSE; 04729 if(!inline_xdr_bytes 04730 (xdrs, (char **)&objp->co_ownerid.co_ownerid_val, 04731 (u_int *) & objp->co_ownerid.co_ownerid_len, NFS4_OPAQUE_LIMIT)) 04732 return FALSE; 04733 return TRUE; 04734 } 04735 04736 static inline bool_t xdr_server_owner4(XDR * xdrs, server_owner4 * objp) 04737 { 04738 if(!inline_xdr_u_int64_t(xdrs, &objp->so_minor_id)) 04739 return FALSE; 04740 if(!inline_xdr_bytes 04741 (xdrs, (char **)&objp->so_major_id.so_major_id_val, 04742 (u_int *) & objp->so_major_id.so_major_id_len, NFS4_OPAQUE_LIMIT)) 04743 return FALSE; 04744 return TRUE; 04745 } 04746 04747 static inline bool_t xdr_state_owner4(XDR * xdrs, state_owner4 * objp) 04748 { 04749 if(!xdr_clientid4(xdrs, &objp->clientid)) 04750 return FALSE; 04751 if(!inline_xdr_bytes 04752 (xdrs, (char **)&objp->owner.owner_val, (u_int *) & objp->owner.owner_len, 04753 NFS4_OPAQUE_LIMIT)) 04754 return FALSE; 04755 return TRUE; 04756 } 04757 04758 static inline bool_t xdr_open_owner4(XDR * xdrs, open_owner4 * objp) 04759 { 04760 if(!xdr_state_owner4(xdrs, objp)) 04761 return FALSE; 04762 return TRUE; 04763 } 04764 04765 static inline bool_t xdr_lock_owner4(XDR * xdrs, lock_owner4 * objp) 04766 { 04767 if(!xdr_state_owner4(xdrs, objp)) 04768 return FALSE; 04769 return TRUE; 04770 } 04771 04772 static inline bool_t xdr_nfs_lock_type4(XDR * xdrs, nfs_lock_type4 * objp) 04773 { 04774 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 04775 return FALSE; 04776 return TRUE; 04777 } 04778 04779 /* Input for computing subkeys */ 04780 04781 static inline bool_t xdr_ssv_subkey4(XDR * xdrs, ssv_subkey4 * objp) 04782 { 04783 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 04784 return FALSE; 04785 return TRUE; 04786 } 04787 04788 /* Input for computing smt_hmac */ 04789 04790 static inline bool_t xdr_ssv_mic_plain_tkn4(XDR * xdrs, ssv_mic_plain_tkn4 * objp) 04791 { 04792 if(!inline_xdr_u_int32_t(xdrs, &objp->smpt_ssv_seq)) 04793 return FALSE; 04794 if(!inline_xdr_bytes 04795 (xdrs, (char **)&objp->smpt_orig_plain.smpt_orig_plain_val, 04796 (u_int *) & objp->smpt_orig_plain.smpt_orig_plain_len, ~0)) 04797 return FALSE; 04798 return TRUE; 04799 } 04800 04801 /* SSV GSS PerMsgToken token */ 04802 04803 static inline bool_t xdr_ssv_mic_tkn4(XDR * xdrs, ssv_mic_tkn4 * objp) 04804 { 04805 if(!inline_xdr_u_int32_t(xdrs, &objp->smt_ssv_seq)) 04806 return FALSE; 04807 if(!inline_xdr_bytes 04808 (xdrs, (char **)&objp->smt_hmac.smt_hmac_val, 04809 (u_int *) & objp->smt_hmac.smt_hmac_len, ~0)) 04810 return FALSE; 04811 return TRUE; 04812 } 04813 04814 /* Input for computing ssct_encr_data and ssct_hmac */ 04815 04816 static inline bool_t xdr_ssv_seal_plain_tkn4(XDR * xdrs, ssv_seal_plain_tkn4 * objp) 04817 { 04818 if(!inline_xdr_bytes 04819 (xdrs, (char **)&objp->sspt_confounder.sspt_confounder_val, 04820 (u_int *) & objp->sspt_confounder.sspt_confounder_len, ~0)) 04821 return FALSE; 04822 if(!inline_xdr_u_int32_t(xdrs, &objp->sspt_ssv_seq)) 04823 return FALSE; 04824 if(!inline_xdr_bytes 04825 (xdrs, (char **)&objp->sspt_orig_plain.sspt_orig_plain_val, 04826 (u_int *) & objp->sspt_orig_plain.sspt_orig_plain_len, ~0)) 04827 return FALSE; 04828 if(!inline_xdr_bytes 04829 (xdrs, (char **)&objp->sspt_pad.sspt_pad_val, 04830 (u_int *) & objp->sspt_pad.sspt_pad_len, ~0)) 04831 return FALSE; 04832 return TRUE; 04833 } 04834 04835 /* SSV GSS SealedMessage token */ 04836 04837 static inline bool_t xdr_ssv_seal_cipher_tkn4(XDR * xdrs, ssv_seal_cipher_tkn4 * objp) 04838 { 04839 if(!inline_xdr_u_int32_t(xdrs, &objp->ssct_ssv_seq)) 04840 return FALSE; 04841 if(!inline_xdr_bytes 04842 (xdrs, (char **)&objp->ssct_iv.ssct_iv_val, (u_int *) & objp->ssct_iv.ssct_iv_len, 04843 ~0)) 04844 return FALSE; 04845 if(!inline_xdr_bytes 04846 (xdrs, (char **)&objp->ssct_encr_data.ssct_encr_data_val, 04847 (u_int *) & objp->ssct_encr_data.ssct_encr_data_len, ~0)) 04848 return FALSE; 04849 if(!inline_xdr_bytes 04850 (xdrs, (char **)&objp->ssct_hmac.ssct_hmac_val, 04851 (u_int *) & objp->ssct_hmac.ssct_hmac_len, ~0)) 04852 return FALSE; 04853 return TRUE; 04854 } 04855 04856 static inline bool_t xdr_fs_locations_server4(XDR * xdrs, fs_locations_server4 * objp) 04857 { 04858 if(!xdr_int32_t(xdrs, &objp->fls_currency)) 04859 return FALSE; 04860 if(!inline_xdr_bytes 04861 (xdrs, (char **)&objp->fls_info.fls_info_val, 04862 (u_int *) & objp->fls_info.fls_info_len, ~0)) 04863 return FALSE; 04864 if(!xdr_utf8str_cis(xdrs, &objp->fls_server)) 04865 return FALSE; 04866 return TRUE; 04867 } 04868 04869 static inline bool_t xdr_fs_locations_item4(XDR * xdrs, fs_locations_item4 * objp) 04870 { 04871 if(!xdr_array 04872 (xdrs, (char **)&objp->fli_entries.fli_entries_val, 04873 (u_int *) & objp->fli_entries.fli_entries_len, ~0, sizeof(fs_locations_server4), 04874 (xdrproc_t) xdr_fs_locations_server4)) 04875 return FALSE; 04876 if(!xdr_pathname4(xdrs, &objp->fli_rootpath)) 04877 return FALSE; 04878 return TRUE; 04879 } 04880 04881 static inline bool_t xdr_fs_locations_info4(XDR * xdrs, fs_locations_info4 * objp) 04882 { 04883 if(!inline_xdr_u_int32_t(xdrs, &objp->fli_flags)) 04884 return FALSE; 04885 if(!xdr_int32_t(xdrs, &objp->fli_valid_for)) 04886 return FALSE; 04887 if(!xdr_pathname4(xdrs, &objp->fli_fs_root)) 04888 return FALSE; 04889 if(!xdr_array 04890 (xdrs, (char **)&objp->fli_items.fli_items_val, 04891 (u_int *) & objp->fli_items.fli_items_len, ~0, sizeof(fs_locations_item4), 04892 (xdrproc_t) xdr_fs_locations_item4)) 04893 return FALSE; 04894 return TRUE; 04895 } 04896 04897 static inline bool_t xdr_fattr4_fs_locations_info(XDR * xdrs, fattr4_fs_locations_info * objp) 04898 { 04899 if(!xdr_fs_locations_info4(xdrs, objp)) 04900 return FALSE; 04901 return TRUE; 04902 } 04903 04904 static inline bool_t xdr_nfl_util4(XDR * xdrs, nfl_util4 * objp) 04905 { 04906 if(!inline_xdr_u_int32_t(xdrs, objp)) 04907 return FALSE; 04908 return TRUE; 04909 } 04910 04911 static inline bool_t xdr_filelayout_hint_care4(XDR * xdrs, filelayout_hint_care4 * objp) 04912 { 04913 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 04914 return FALSE; 04915 return TRUE; 04916 } 04917 04918 /* Encoded in the loh_body field of data type layouthint4: */ 04919 04920 static inline bool_t xdr_nfsv4_1_file_layouthint4(XDR * xdrs, nfsv4_1_file_layouthint4 * objp) 04921 { 04922 if(!inline_xdr_u_int32_t(xdrs, &objp->nflh_care)) 04923 return FALSE; 04924 if(!xdr_nfl_util4(xdrs, &objp->nflh_util)) 04925 return FALSE; 04926 if(!xdr_count4(xdrs, &objp->nflh_stripe_count)) 04927 return FALSE; 04928 return TRUE; 04929 } 04930 04931 static inline bool_t xdr_multipath_list4(XDR * xdrs, multipath_list4 * objp) 04932 { 04933 if(!xdr_array 04934 (xdrs, (char **)&objp->multipath_list4_val, (u_int *) & objp->multipath_list4_len, 04935 ~0, sizeof(netaddr4), (xdrproc_t) xdr_netaddr4)) 04936 return FALSE; 04937 return TRUE; 04938 } 04939 04940 /* 04941 * Encoded in the da_addr_body field of 04942 * data type device_addr4: 04943 */ 04944 04945 static inline bool_t xdr_nfsv4_1_file_layout_ds_addr4(XDR * xdrs, nfsv4_1_file_layout_ds_addr4 * objp) 04946 { 04947 if(!xdr_array 04948 (xdrs, (char **)&objp->nflda_stripe_indices.nflda_stripe_indices_val, 04949 (u_int *) & objp->nflda_stripe_indices.nflda_stripe_indices_len, ~0, 04950 sizeof(uint32_t), (xdrproc_t) xdr_uint32_t)) 04951 return FALSE; 04952 if(!xdr_array 04953 (xdrs, (char **)&objp->nflda_multipath_ds_list.nflda_multipath_ds_list_val, 04954 (u_int *) & objp->nflda_multipath_ds_list.nflda_multipath_ds_list_len, ~0, 04955 sizeof(multipath_list4), (xdrproc_t) xdr_multipath_list4)) 04956 return FALSE; 04957 return TRUE; 04958 } 04959 04960 /* 04961 * Encoded in the loc_body field of 04962 * data type layout_content4: 04963 */ 04964 04965 static inline bool_t xdr_nfsv4_1_file_layout4(XDR * xdrs, nfsv4_1_file_layout4 * objp) 04966 { 04967 if(!xdr_deviceid4(xdrs, objp->nfl_deviceid)) 04968 return FALSE; 04969 if(!xdr_nfl_util4(xdrs, &objp->nfl_util)) 04970 return FALSE; 04971 if(!inline_xdr_u_int32_t(xdrs, &objp->nfl_first_stripe_index)) 04972 return FALSE; 04973 if(!xdr_offset4(xdrs, &objp->nfl_pattern_offset)) 04974 return FALSE; 04975 if(!xdr_array 04976 (xdrs, (char **)&objp->nfl_fh_list.nfl_fh_list_val, 04977 (u_int *) & objp->nfl_fh_list.nfl_fh_list_len, ~0, sizeof(nfs_fh4), 04978 (xdrproc_t) xdr_nfs_fh4)) 04979 return FALSE; 04980 return TRUE; 04981 } 04982 04983 /* 04984 * Encoded in the lou_body field of data type layoutupdate4: 04985 * Nothing. lou_body is a zero length array of bytes. 04986 */ 04987 04988 /* 04989 * Encoded in the lrf_body field of 04990 * data type layoutreturn_file4: 04991 * Nothing. lrf_body is a zero length array of bytes. 04992 */ 04993 04994 static inline bool_t xdr_ACCESS4args(XDR * xdrs, ACCESS4args * objp) 04995 { 04996 if(!inline_xdr_u_int32_t(xdrs, &objp->access)) 04997 return FALSE; 04998 return TRUE; 04999 } 05000 05001 static inline bool_t xdr_ACCESS4resok(XDR * xdrs, ACCESS4resok * objp) 05002 { 05003 if(!inline_xdr_u_int32_t(xdrs, &objp->supported)) 05004 return FALSE; 05005 if(!inline_xdr_u_int32_t(xdrs, &objp->access)) 05006 return FALSE; 05007 return TRUE; 05008 } 05009 05010 static inline bool_t xdr_ACCESS4res(XDR * xdrs, ACCESS4res * objp) 05011 { 05012 if(!xdr_nfsstat4(xdrs, &objp->status)) 05013 return FALSE; 05014 switch (objp->status) 05015 { 05016 case NFS4_OK: 05017 if(!xdr_ACCESS4resok(xdrs, &objp->ACCESS4res_u.resok4)) 05018 return FALSE; 05019 break; 05020 default: 05021 break; 05022 } 05023 return TRUE; 05024 } 05025 05026 static inline bool_t xdr_CLOSE4args(XDR * xdrs, CLOSE4args * objp) 05027 { 05028 if(!xdr_seqid4(xdrs, &objp->seqid)) 05029 return FALSE; 05030 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05031 return FALSE; 05032 return TRUE; 05033 } 05034 05035 static inline bool_t xdr_CLOSE4res(XDR * xdrs, CLOSE4res * objp) 05036 { 05037 if(!xdr_nfsstat4(xdrs, &objp->status)) 05038 return FALSE; 05039 switch (objp->status) 05040 { 05041 case NFS4_OK: 05042 if(!xdr_stateid4(xdrs, &objp->CLOSE4res_u.open_stateid)) 05043 return FALSE; 05044 break; 05045 default: 05046 break; 05047 } 05048 return TRUE; 05049 } 05050 05051 static inline bool_t xdr_COMMIT4args(XDR * xdrs, COMMIT4args * objp) 05052 { 05053 if(!xdr_offset4(xdrs, &objp->offset)) 05054 return FALSE; 05055 if(!xdr_count4(xdrs, &objp->count)) 05056 return FALSE; 05057 return TRUE; 05058 } 05059 05060 static inline bool_t xdr_COMMIT4resok(XDR * xdrs, COMMIT4resok * objp) 05061 { 05062 if(!xdr_verifier4(xdrs, objp->writeverf)) 05063 return FALSE; 05064 return TRUE; 05065 } 05066 05067 static inline bool_t xdr_COMMIT4res(XDR * xdrs, COMMIT4res * objp) 05068 { 05069 if(!xdr_nfsstat4(xdrs, &objp->status)) 05070 return FALSE; 05071 switch (objp->status) 05072 { 05073 case NFS4_OK: 05074 if(!xdr_COMMIT4resok(xdrs, &objp->COMMIT4res_u.resok4)) 05075 return FALSE; 05076 break; 05077 default: 05078 break; 05079 } 05080 return TRUE; 05081 } 05082 05083 static inline bool_t xdr_createtype4(XDR * xdrs, createtype4 * objp) 05084 { 05085 if(!xdr_nfs_ftype4(xdrs, &objp->type)) 05086 return FALSE; 05087 switch (objp->type) 05088 { 05089 case NF4LNK: 05090 if(!xdr_linktext4(xdrs, &objp->createtype4_u.linkdata)) 05091 return FALSE; 05092 break; 05093 case NF4BLK: 05094 case NF4CHR: 05095 if(!xdr_specdata4(xdrs, &objp->createtype4_u.devdata)) 05096 return FALSE; 05097 break; 05098 case NF4SOCK: 05099 case NF4FIFO: 05100 case NF4DIR: 05101 break; 05102 default: 05103 break; 05104 } 05105 return TRUE; 05106 } 05107 05108 static inline bool_t xdr_CREATE4args(XDR * xdrs, CREATE4args * objp) 05109 { 05110 if(!xdr_createtype4(xdrs, &objp->objtype)) 05111 return FALSE; 05112 if(!xdr_component4(xdrs, &objp->objname)) 05113 return FALSE; 05114 if(!xdr_fattr4(xdrs, &objp->createattrs)) 05115 return FALSE; 05116 return TRUE; 05117 } 05118 05119 static inline bool_t xdr_CREATE4resok(XDR * xdrs, CREATE4resok * objp) 05120 { 05121 if(!xdr_change_info4(xdrs, &objp->cinfo)) 05122 return FALSE; 05123 if(!xdr_bitmap4(xdrs, &objp->attrset)) 05124 return FALSE; 05125 return TRUE; 05126 } 05127 05128 static inline bool_t xdr_CREATE4res(XDR * xdrs, CREATE4res * objp) 05129 { 05130 if(!xdr_nfsstat4(xdrs, &objp->status)) 05131 return FALSE; 05132 switch (objp->status) 05133 { 05134 case NFS4_OK: 05135 if(!xdr_CREATE4resok(xdrs, &objp->CREATE4res_u.resok4)) 05136 return FALSE; 05137 break; 05138 default: 05139 break; 05140 } 05141 return TRUE; 05142 } 05143 05144 static inline bool_t xdr_DELEGPURGE4args(XDR * xdrs, DELEGPURGE4args * objp) 05145 { 05146 if(!xdr_clientid4(xdrs, &objp->clientid)) 05147 return FALSE; 05148 return TRUE; 05149 } 05150 05151 static inline bool_t xdr_DELEGPURGE4res(XDR * xdrs, DELEGPURGE4res * objp) 05152 { 05153 if(!xdr_nfsstat4(xdrs, &objp->status)) 05154 return FALSE; 05155 return TRUE; 05156 } 05157 05158 static inline bool_t xdr_DELEGRETURN4args(XDR * xdrs, DELEGRETURN4args * objp) 05159 { 05160 if(!xdr_stateid4(xdrs, &objp->deleg_stateid)) 05161 return FALSE; 05162 return TRUE; 05163 } 05164 05165 static inline bool_t xdr_DELEGRETURN4res(XDR * xdrs, DELEGRETURN4res * objp) 05166 { 05167 if(!xdr_nfsstat4(xdrs, &objp->status)) 05168 return FALSE; 05169 return TRUE; 05170 } 05171 05172 static inline bool_t xdr_GETATTR4args(XDR * xdrs, GETATTR4args * objp) 05173 { 05174 if(!xdr_bitmap4(xdrs, &objp->attr_request)) 05175 return FALSE; 05176 return TRUE; 05177 } 05178 05179 static inline bool_t xdr_GETATTR4resok(XDR * xdrs, GETATTR4resok * objp) 05180 { 05181 if(!xdr_fattr4(xdrs, &objp->obj_attributes)) 05182 return FALSE; 05183 return TRUE; 05184 } 05185 05186 static inline bool_t xdr_GETATTR4res(XDR * xdrs, GETATTR4res * objp) 05187 { 05188 if(!xdr_nfsstat4(xdrs, &objp->status)) 05189 return FALSE; 05190 switch (objp->status) 05191 { 05192 case NFS4_OK: 05193 if(!xdr_GETATTR4resok(xdrs, &objp->GETATTR4res_u.resok4)) 05194 return FALSE; 05195 break; 05196 default: 05197 break; 05198 } 05199 return TRUE; 05200 } 05201 05202 static inline bool_t xdr_GETFH4resok(XDR * xdrs, GETFH4resok * objp) 05203 { 05204 if(!xdr_nfs_fh4(xdrs, &objp->object)) 05205 return FALSE; 05206 return TRUE; 05207 } 05208 05209 static inline bool_t xdr_GETFH4res(XDR * xdrs, GETFH4res * objp) 05210 { 05211 if(!xdr_nfsstat4(xdrs, &objp->status)) 05212 return FALSE; 05213 switch (objp->status) 05214 { 05215 case NFS4_OK: 05216 if(!xdr_GETFH4resok(xdrs, &objp->GETFH4res_u.resok4)) 05217 return FALSE; 05218 break; 05219 default: 05220 break; 05221 } 05222 return TRUE; 05223 } 05224 05225 static inline bool_t xdr_LINK4args(XDR * xdrs, LINK4args * objp) 05226 { 05227 if(!xdr_component4(xdrs, &objp->newname)) 05228 return FALSE; 05229 return TRUE; 05230 } 05231 05232 static inline bool_t xdr_LINK4resok(XDR * xdrs, LINK4resok * objp) 05233 { 05234 if(!xdr_change_info4(xdrs, &objp->cinfo)) 05235 return FALSE; 05236 return TRUE; 05237 } 05238 05239 static inline bool_t xdr_LINK4res(XDR * xdrs, LINK4res * objp) 05240 { 05241 if(!xdr_nfsstat4(xdrs, &objp->status)) 05242 return FALSE; 05243 switch (objp->status) 05244 { 05245 case NFS4_OK: 05246 if(!xdr_LINK4resok(xdrs, &objp->LINK4res_u.resok4)) 05247 return FALSE; 05248 break; 05249 default: 05250 break; 05251 } 05252 return TRUE; 05253 } 05254 05255 static inline bool_t xdr_open_to_lock_owner4(XDR * xdrs, open_to_lock_owner4 * objp) 05256 { 05257 if(!xdr_seqid4(xdrs, &objp->open_seqid)) 05258 return FALSE; 05259 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05260 return FALSE; 05261 if(!xdr_seqid4(xdrs, &objp->lock_seqid)) 05262 return FALSE; 05263 if(!xdr_lock_owner4(xdrs, &objp->lock_owner)) 05264 return FALSE; 05265 return TRUE; 05266 } 05267 05268 static inline bool_t xdr_exist_lock_owner4(XDR * xdrs, exist_lock_owner4 * objp) 05269 { 05270 if(!xdr_stateid4(xdrs, &objp->lock_stateid)) 05271 return FALSE; 05272 if(!xdr_seqid4(xdrs, &objp->lock_seqid)) 05273 return FALSE; 05274 return TRUE; 05275 } 05276 05277 static inline bool_t xdr_locker4(XDR * xdrs, locker4 * objp) 05278 { 05279 if(!inline_xdr_bool(xdrs, &objp->new_lock_owner)) 05280 return FALSE; 05281 switch (objp->new_lock_owner) 05282 { 05283 case TRUE: 05284 if(!xdr_open_to_lock_owner4(xdrs, &objp->locker4_u.open_owner)) 05285 return FALSE; 05286 break; 05287 case FALSE: 05288 if(!xdr_exist_lock_owner4(xdrs, &objp->locker4_u.lock_owner)) 05289 return FALSE; 05290 break; 05291 default: 05292 return FALSE; 05293 } 05294 return TRUE; 05295 } 05296 05297 static inline bool_t xdr_LOCK4args(XDR * xdrs, LOCK4args * objp) 05298 { 05299 if(!xdr_nfs_lock_type4(xdrs, &objp->locktype)) 05300 return FALSE; 05301 if(!inline_xdr_bool(xdrs, &objp->reclaim)) 05302 return FALSE; 05303 if(!xdr_offset4(xdrs, &objp->offset)) 05304 return FALSE; 05305 if(!xdr_length4(xdrs, &objp->length)) 05306 return FALSE; 05307 if(!xdr_locker4(xdrs, &objp->locker)) 05308 return FALSE; 05309 return TRUE; 05310 } 05311 05312 static inline bool_t xdr_LOCK4denied(XDR * xdrs, LOCK4denied * objp) 05313 { 05314 if(!xdr_offset4(xdrs, &objp->offset)) 05315 return FALSE; 05316 if(!xdr_length4(xdrs, &objp->length)) 05317 return FALSE; 05318 if(!xdr_nfs_lock_type4(xdrs, &objp->locktype)) 05319 return FALSE; 05320 if(!xdr_lock_owner4(xdrs, &objp->owner)) 05321 return FALSE; 05322 return TRUE; 05323 } 05324 05325 static inline bool_t xdr_LOCK4resok(XDR * xdrs, LOCK4resok * objp) 05326 { 05327 if(!xdr_stateid4(xdrs, &objp->lock_stateid)) 05328 return FALSE; 05329 return TRUE; 05330 } 05331 05332 static inline bool_t xdr_LOCK4res(XDR * xdrs, LOCK4res * objp) 05333 { 05334 if(!xdr_nfsstat4(xdrs, &objp->status)) 05335 return FALSE; 05336 switch (objp->status) 05337 { 05338 case NFS4_OK: 05339 if(!xdr_LOCK4resok(xdrs, &objp->LOCK4res_u.resok4)) 05340 return FALSE; 05341 break; 05342 case NFS4ERR_DENIED: 05343 if(!xdr_LOCK4denied(xdrs, &objp->LOCK4res_u.denied)) 05344 return FALSE; 05345 break; 05346 default: 05347 break; 05348 } 05349 return TRUE; 05350 } 05351 05352 static inline bool_t xdr_LOCKT4args(XDR * xdrs, LOCKT4args * objp) 05353 { 05354 if(!xdr_nfs_lock_type4(xdrs, &objp->locktype)) 05355 return FALSE; 05356 if(!xdr_offset4(xdrs, &objp->offset)) 05357 return FALSE; 05358 if(!xdr_length4(xdrs, &objp->length)) 05359 return FALSE; 05360 if(!xdr_lock_owner4(xdrs, &objp->owner)) 05361 return FALSE; 05362 return TRUE; 05363 } 05364 05365 static inline bool_t xdr_LOCKT4res(XDR * xdrs, LOCKT4res * objp) 05366 { 05367 if(!xdr_nfsstat4(xdrs, &objp->status)) 05368 return FALSE; 05369 switch (objp->status) 05370 { 05371 case NFS4ERR_DENIED: 05372 if(!xdr_LOCK4denied(xdrs, &objp->LOCKT4res_u.denied)) 05373 return FALSE; 05374 break; 05375 case NFS4_OK: 05376 break; 05377 default: 05378 break; 05379 } 05380 return TRUE; 05381 } 05382 05383 static inline bool_t xdr_LOCKU4args(XDR * xdrs, LOCKU4args * objp) 05384 { 05385 if(!xdr_nfs_lock_type4(xdrs, &objp->locktype)) 05386 return FALSE; 05387 if(!xdr_seqid4(xdrs, &objp->seqid)) 05388 return FALSE; 05389 if(!xdr_stateid4(xdrs, &objp->lock_stateid)) 05390 return FALSE; 05391 if(!xdr_offset4(xdrs, &objp->offset)) 05392 return FALSE; 05393 if(!xdr_length4(xdrs, &objp->length)) 05394 return FALSE; 05395 return TRUE; 05396 } 05397 05398 static inline bool_t xdr_LOCKU4res(XDR * xdrs, LOCKU4res * objp) 05399 { 05400 if(!xdr_nfsstat4(xdrs, &objp->status)) 05401 return FALSE; 05402 switch (objp->status) 05403 { 05404 case NFS4_OK: 05405 if(!xdr_stateid4(xdrs, &objp->LOCKU4res_u.lock_stateid)) 05406 return FALSE; 05407 break; 05408 default: 05409 break; 05410 } 05411 return TRUE; 05412 } 05413 05414 static inline bool_t xdr_LOOKUP4args(XDR * xdrs, LOOKUP4args * objp) 05415 { 05416 if(!xdr_component4(xdrs, &objp->objname)) 05417 return FALSE; 05418 return TRUE; 05419 } 05420 05421 static inline bool_t xdr_LOOKUP4res(XDR * xdrs, LOOKUP4res * objp) 05422 { 05423 if(!xdr_nfsstat4(xdrs, &objp->status)) 05424 return FALSE; 05425 return TRUE; 05426 } 05427 05428 static inline bool_t xdr_LOOKUPP4res(XDR * xdrs, LOOKUPP4res * objp) 05429 { 05430 if(!xdr_nfsstat4(xdrs, &objp->status)) 05431 return FALSE; 05432 return TRUE; 05433 } 05434 05435 static inline bool_t xdr_NVERIFY4args(XDR * xdrs, NVERIFY4args * objp) 05436 { 05437 if(!xdr_fattr4(xdrs, &objp->obj_attributes)) 05438 return FALSE; 05439 return TRUE; 05440 } 05441 05442 static inline bool_t xdr_NVERIFY4res(XDR * xdrs, NVERIFY4res * objp) 05443 { 05444 if(!xdr_nfsstat4(xdrs, &objp->status)) 05445 return FALSE; 05446 return TRUE; 05447 } 05448 05449 static inline bool_t xdr_createmode4(XDR * xdrs, createmode4 * objp) 05450 { 05451 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05452 return FALSE; 05453 return TRUE; 05454 } 05455 05456 static inline bool_t xdr_creatverfattr(XDR * xdrs, creatverfattr * objp) 05457 { 05458 if(!xdr_verifier4(xdrs, objp->cva_verf)) 05459 return FALSE; 05460 if(!xdr_fattr4(xdrs, &objp->cva_attrs)) 05461 return FALSE; 05462 return TRUE; 05463 } 05464 05465 static inline bool_t xdr_createhow4(XDR * xdrs, createhow4 * objp) 05466 { 05467 if(!xdr_createmode4(xdrs, &objp->mode)) 05468 return FALSE; 05469 switch (objp->mode) 05470 { 05471 case UNCHECKED4: 05472 case GUARDED4: 05473 if(!xdr_fattr4(xdrs, &objp->createhow4_u.createattrs)) 05474 return FALSE; 05475 break; 05476 case EXCLUSIVE4: 05477 if(!xdr_verifier4(xdrs, objp->createhow4_u.createverf)) 05478 return FALSE; 05479 break; 05480 case EXCLUSIVE4_1: 05481 if(!xdr_creatverfattr(xdrs, &objp->createhow4_u.ch_createboth)) 05482 return FALSE; 05483 break; 05484 default: 05485 return FALSE; 05486 } 05487 return TRUE; 05488 } 05489 05490 static inline bool_t xdr_opentype4(XDR * xdrs, opentype4 * objp) 05491 { 05492 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05493 return FALSE; 05494 return TRUE; 05495 } 05496 05497 static inline bool_t xdr_openflag4(XDR * xdrs, openflag4 * objp) 05498 { 05499 if(!xdr_opentype4(xdrs, &objp->opentype)) 05500 return FALSE; 05501 switch (objp->opentype) 05502 { 05503 case OPEN4_CREATE: 05504 if(!xdr_createhow4(xdrs, &objp->openflag4_u.how)) 05505 return FALSE; 05506 break; 05507 default: 05508 break; 05509 } 05510 return TRUE; 05511 } 05512 05513 static inline bool_t xdr_limit_by4(XDR * xdrs, limit_by4 * objp) 05514 { 05515 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05516 return FALSE; 05517 return TRUE; 05518 } 05519 05520 static inline bool_t xdr_nfs_modified_limit4(XDR * xdrs, nfs_modified_limit4 * objp) 05521 { 05522 if(!inline_xdr_u_int32_t(xdrs, &objp->num_blocks)) 05523 return FALSE; 05524 if(!inline_xdr_u_int32_t(xdrs, &objp->bytes_per_block)) 05525 return FALSE; 05526 return TRUE; 05527 } 05528 05529 static inline bool_t xdr_nfs_space_limit4(XDR * xdrs, nfs_space_limit4 * objp) 05530 { 05531 if(!xdr_limit_by4(xdrs, &objp->limitby)) 05532 return FALSE; 05533 switch (objp->limitby) 05534 { 05535 case NFS_LIMIT_SIZE: 05536 if(!inline_xdr_u_int64_t(xdrs, &objp->nfs_space_limit4_u.filesize)) 05537 return FALSE; 05538 break; 05539 case NFS_LIMIT_BLOCKS: 05540 if(!xdr_nfs_modified_limit4(xdrs, &objp->nfs_space_limit4_u.mod_blocks)) 05541 return FALSE; 05542 break; 05543 default: 05544 return FALSE; 05545 } 05546 return TRUE; 05547 } 05548 05549 static inline bool_t xdr_open_delegation_type4(XDR * xdrs, open_delegation_type4 * objp) 05550 { 05551 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05552 return FALSE; 05553 return TRUE; 05554 } 05555 05556 static inline bool_t xdr_open_claim_type4(XDR * xdrs, open_claim_type4 * objp) 05557 { 05558 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05559 return FALSE; 05560 return TRUE; 05561 } 05562 05563 static inline bool_t xdr_open_claim_delegate_cur4(XDR * xdrs, open_claim_delegate_cur4 * objp) 05564 { 05565 if(!xdr_stateid4(xdrs, &objp->delegate_stateid)) 05566 return FALSE; 05567 if(!xdr_component4(xdrs, &objp->file)) 05568 return FALSE; 05569 return TRUE; 05570 } 05571 05572 static inline bool_t xdr_open_claim4(XDR * xdrs, open_claim4 * objp) 05573 { 05574 if(!xdr_open_claim_type4(xdrs, &objp->claim)) 05575 return FALSE; 05576 switch (objp->claim) 05577 { 05578 case CLAIM_NULL: 05579 if(!xdr_component4(xdrs, &objp->open_claim4_u.file)) 05580 return FALSE; 05581 break; 05582 case CLAIM_PREVIOUS: 05583 if(!xdr_open_delegation_type4(xdrs, &objp->open_claim4_u.delegate_type)) 05584 return FALSE; 05585 break; 05586 case CLAIM_DELEGATE_CUR: 05587 if(!xdr_open_claim_delegate_cur4(xdrs, &objp->open_claim4_u.delegate_cur_info)) 05588 return FALSE; 05589 break; 05590 case CLAIM_DELEGATE_PREV: 05591 if(!xdr_component4(xdrs, &objp->open_claim4_u.file_delegate_prev)) 05592 return FALSE; 05593 break; 05594 case CLAIM_FH: 05595 break; 05596 case CLAIM_DELEG_PREV_FH: 05597 break; 05598 case CLAIM_DELEG_CUR_FH: 05599 if(!xdr_stateid4(xdrs, &objp->open_claim4_u.oc_delegate_stateid)) 05600 return FALSE; 05601 break; 05602 default: 05603 return FALSE; 05604 } 05605 return TRUE; 05606 } 05607 05608 static inline bool_t xdr_OPEN4args(XDR * xdrs, OPEN4args * objp) 05609 { 05610 if(!xdr_seqid4(xdrs, &objp->seqid)) 05611 return FALSE; 05612 if(!inline_xdr_u_int32_t(xdrs, &objp->share_access)) 05613 return FALSE; 05614 if(!inline_xdr_u_int32_t(xdrs, &objp->share_deny)) 05615 return FALSE; 05616 if(!xdr_open_owner4(xdrs, &objp->owner)) 05617 return FALSE; 05618 if(!xdr_openflag4(xdrs, &objp->openhow)) 05619 return FALSE; 05620 if(!xdr_open_claim4(xdrs, &objp->claim)) 05621 return FALSE; 05622 return TRUE; 05623 } 05624 05625 static inline bool_t xdr_open_read_delegation4(XDR * xdrs, open_read_delegation4 * objp) 05626 { 05627 if(!xdr_stateid4(xdrs, &objp->stateid)) 05628 return FALSE; 05629 if(!inline_xdr_bool(xdrs, &objp->recall)) 05630 return FALSE; 05631 if(!xdr_nfsace4(xdrs, &objp->permissions)) 05632 return FALSE; 05633 return TRUE; 05634 } 05635 05636 static inline bool_t xdr_open_write_delegation4(XDR * xdrs, open_write_delegation4 * objp) 05637 { 05638 if(!xdr_stateid4(xdrs, &objp->stateid)) 05639 return FALSE; 05640 if(!inline_xdr_bool(xdrs, &objp->recall)) 05641 return FALSE; 05642 if(!xdr_nfs_space_limit4(xdrs, &objp->space_limit)) 05643 return FALSE; 05644 if(!xdr_nfsace4(xdrs, &objp->permissions)) 05645 return FALSE; 05646 return TRUE; 05647 } 05648 05649 static inline bool_t xdr_why_no_delegation4(XDR * xdrs, why_no_delegation4 * objp) 05650 { 05651 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 05652 return FALSE; 05653 return TRUE; 05654 } 05655 05656 static inline bool_t xdr_open_none_delegation4(XDR * xdrs, open_none_delegation4 * objp) 05657 { 05658 if(!xdr_why_no_delegation4(xdrs, &objp->ond_why)) 05659 return FALSE; 05660 switch (objp->ond_why) 05661 { 05662 case WND4_CONTENTION: 05663 if(!inline_xdr_bool(xdrs, &objp->open_none_delegation4_u.ond_server_will_push_deleg)) 05664 return FALSE; 05665 break; 05666 case WND4_RESOURCE: 05667 if(!inline_xdr_bool(xdrs, &objp->open_none_delegation4_u.ond_server_will_signal_avail)) 05668 return FALSE; 05669 break; 05670 default: 05671 break; 05672 } 05673 return TRUE; 05674 } 05675 05676 static inline bool_t xdr_open_delegation4(XDR * xdrs, open_delegation4 * objp) 05677 { 05678 if(!xdr_open_delegation_type4(xdrs, &objp->delegation_type)) 05679 return FALSE; 05680 switch (objp->delegation_type) 05681 { 05682 case OPEN_DELEGATE_NONE: 05683 break; 05684 case OPEN_DELEGATE_READ: 05685 if(!xdr_open_read_delegation4(xdrs, &objp->open_delegation4_u.read)) 05686 return FALSE; 05687 break; 05688 case OPEN_DELEGATE_WRITE: 05689 if(!xdr_open_write_delegation4(xdrs, &objp->open_delegation4_u.write)) 05690 return FALSE; 05691 break; 05692 case OPEN_DELEGATE_NONE_EXT: 05693 if(!xdr_open_none_delegation4(xdrs, &objp->open_delegation4_u.od_whynone)) 05694 return FALSE; 05695 break; 05696 default: 05697 return FALSE; 05698 } 05699 return TRUE; 05700 } 05701 05702 static inline bool_t xdr_OPEN4resok(XDR * xdrs, OPEN4resok * objp) 05703 { 05704 if(!xdr_stateid4(xdrs, &objp->stateid)) 05705 return FALSE; 05706 if(!xdr_change_info4(xdrs, &objp->cinfo)) 05707 return FALSE; 05708 if(!inline_xdr_u_int32_t(xdrs, &objp->rflags)) 05709 return FALSE; 05710 if(!xdr_bitmap4(xdrs, &objp->attrset)) 05711 return FALSE; 05712 if(!xdr_open_delegation4(xdrs, &objp->delegation)) 05713 return FALSE; 05714 return TRUE; 05715 } 05716 05717 static inline bool_t xdr_OPEN4res(XDR * xdrs, OPEN4res * objp) 05718 { 05719 if(!xdr_nfsstat4(xdrs, &objp->status)) 05720 return FALSE; 05721 switch (objp->status) 05722 { 05723 case NFS4_OK: 05724 if(!xdr_OPEN4resok(xdrs, &objp->OPEN4res_u.resok4)) 05725 return FALSE; 05726 break; 05727 default: 05728 break; 05729 } 05730 return TRUE; 05731 } 05732 05733 static inline bool_t xdr_OPENATTR4args(XDR * xdrs, OPENATTR4args * objp) 05734 { 05735 if(!inline_xdr_bool(xdrs, &objp->createdir)) 05736 return FALSE; 05737 return TRUE; 05738 } 05739 05740 static inline bool_t xdr_OPENATTR4res(XDR * xdrs, OPENATTR4res * objp) 05741 { 05742 if(!xdr_nfsstat4(xdrs, &objp->status)) 05743 return FALSE; 05744 return TRUE; 05745 } 05746 05747 static inline bool_t xdr_OPEN_CONFIRM4args(XDR * xdrs, OPEN_CONFIRM4args * objp) 05748 { 05749 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05750 return FALSE; 05751 if(!xdr_seqid4(xdrs, &objp->seqid)) 05752 return FALSE; 05753 return TRUE; 05754 } 05755 05756 static inline bool_t xdr_OPEN_CONFIRM4resok(XDR * xdrs, OPEN_CONFIRM4resok * objp) 05757 { 05758 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05759 return FALSE; 05760 return TRUE; 05761 } 05762 05763 static inline bool_t xdr_OPEN_CONFIRM4res(XDR * xdrs, OPEN_CONFIRM4res * objp) 05764 { 05765 if(!xdr_nfsstat4(xdrs, &objp->status)) 05766 return FALSE; 05767 switch (objp->status) 05768 { 05769 case NFS4_OK: 05770 if(!xdr_OPEN_CONFIRM4resok(xdrs, &objp->OPEN_CONFIRM4res_u.resok4)) 05771 return FALSE; 05772 break; 05773 default: 05774 break; 05775 } 05776 return TRUE; 05777 } 05778 05779 static inline bool_t xdr_OPEN_DOWNGRADE4args(XDR * xdrs, OPEN_DOWNGRADE4args * objp) 05780 { 05781 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05782 return FALSE; 05783 if(!xdr_seqid4(xdrs, &objp->seqid)) 05784 return FALSE; 05785 if(!inline_xdr_u_int32_t(xdrs, &objp->share_access)) 05786 return FALSE; 05787 if(!inline_xdr_u_int32_t(xdrs, &objp->share_deny)) 05788 return FALSE; 05789 return TRUE; 05790 } 05791 05792 static inline bool_t xdr_OPEN_DOWNGRADE4resok(XDR * xdrs, OPEN_DOWNGRADE4resok * objp) 05793 { 05794 if(!xdr_stateid4(xdrs, &objp->open_stateid)) 05795 return FALSE; 05796 return TRUE; 05797 } 05798 05799 static inline bool_t xdr_OPEN_DOWNGRADE4res(XDR * xdrs, OPEN_DOWNGRADE4res * objp) 05800 { 05801 if(!xdr_nfsstat4(xdrs, &objp->status)) 05802 return FALSE; 05803 switch (objp->status) 05804 { 05805 case NFS4_OK: 05806 if(!xdr_OPEN_DOWNGRADE4resok(xdrs, &objp->OPEN_DOWNGRADE4res_u.resok4)) 05807 return FALSE; 05808 break; 05809 default: 05810 break; 05811 } 05812 return TRUE; 05813 } 05814 05815 static inline bool_t xdr_PUTFH4args(XDR * xdrs, PUTFH4args * objp) 05816 { 05817 if(!xdr_nfs_fh4(xdrs, &objp->object)) 05818 return FALSE; 05819 return TRUE; 05820 } 05821 05822 static inline bool_t xdr_PUTFH4res(XDR * xdrs, PUTFH4res * objp) 05823 { 05824 if(!xdr_nfsstat4(xdrs, &objp->status)) 05825 return FALSE; 05826 return TRUE; 05827 } 05828 05829 static inline bool_t xdr_PUTPUBFH4res(XDR * xdrs, PUTPUBFH4res * objp) 05830 { 05831 if(!xdr_nfsstat4(xdrs, &objp->status)) 05832 return FALSE; 05833 return TRUE; 05834 } 05835 05836 static inline bool_t xdr_PUTROOTFH4res(XDR * xdrs, PUTROOTFH4res * objp) 05837 { 05838 if(!xdr_nfsstat4(xdrs, &objp->status)) 05839 return FALSE; 05840 return TRUE; 05841 } 05842 05843 static inline bool_t xdr_READ4args(XDR * xdrs, READ4args * objp) 05844 { 05845 if(!xdr_stateid4(xdrs, &objp->stateid)) 05846 return FALSE; 05847 if(!xdr_offset4(xdrs, &objp->offset)) 05848 return FALSE; 05849 if(!xdr_count4(xdrs, &objp->count)) 05850 return FALSE; 05851 return TRUE; 05852 } 05853 05854 static inline bool_t xdr_READ4resok(XDR * xdrs, READ4resok * objp) 05855 { 05856 if(!inline_xdr_bool(xdrs, &objp->eof)) 05857 return FALSE; 05858 if(!inline_xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) & objp->data.data_len, ~0)) 05859 return FALSE; 05860 return TRUE; 05861 } 05862 05863 static inline bool_t xdr_READ4res(XDR * xdrs, READ4res * objp) 05864 { 05865 if(!xdr_nfsstat4(xdrs, &objp->status)) 05866 return FALSE; 05867 switch (objp->status) 05868 { 05869 case NFS4_OK: 05870 if(!xdr_READ4resok(xdrs, &objp->READ4res_u.resok4)) 05871 return FALSE; 05872 break; 05873 default: 05874 break; 05875 } 05876 return TRUE; 05877 } 05878 05879 static inline bool_t xdr_READDIR4args(XDR * xdrs, READDIR4args * objp) 05880 { 05881 if(!xdr_nfs_cookie4(xdrs, &objp->cookie)) 05882 return FALSE; 05883 if(!xdr_verifier4(xdrs, objp->cookieverf)) 05884 return FALSE; 05885 if(!xdr_count4(xdrs, &objp->dircount)) 05886 return FALSE; 05887 if(!xdr_count4(xdrs, &objp->maxcount)) 05888 return FALSE; 05889 if(!xdr_bitmap4(xdrs, &objp->attr_request)) 05890 return FALSE; 05891 return TRUE; 05892 } 05893 05894 static inline bool_t xdr_entry4(XDR * xdrs, entry4 * objp) 05895 { 05896 if(!xdr_nfs_cookie4(xdrs, &objp->cookie)) 05897 return FALSE; 05898 if(!xdr_component4(xdrs, &objp->name)) 05899 return FALSE; 05900 if(!xdr_fattr4(xdrs, &objp->attrs)) 05901 return FALSE; 05902 if(!xdr_pointer 05903 (xdrs, (char **)&objp->nextentry, sizeof(entry4), (xdrproc_t) xdr_entry4)) 05904 return FALSE; 05905 return TRUE; 05906 } 05907 05908 static inline bool_t xdr_dirlist4(XDR * xdrs, dirlist4 * objp) 05909 { 05910 if(!xdr_pointer(xdrs, (char **)&objp->entries, sizeof(entry4), (xdrproc_t) xdr_entry4)) 05911 return FALSE; 05912 if(!inline_xdr_bool(xdrs, &objp->eof)) 05913 return FALSE; 05914 return TRUE; 05915 } 05916 05917 static inline bool_t xdr_READDIR4resok(XDR * xdrs, READDIR4resok * objp) 05918 { 05919 if(!xdr_verifier4(xdrs, objp->cookieverf)) 05920 return FALSE; 05921 if(!xdr_dirlist4(xdrs, &objp->reply)) 05922 return FALSE; 05923 return TRUE; 05924 } 05925 05926 static inline bool_t xdr_READDIR4res(XDR * xdrs, READDIR4res * objp) 05927 { 05928 if(!xdr_nfsstat4(xdrs, &objp->status)) 05929 return FALSE; 05930 switch (objp->status) 05931 { 05932 case NFS4_OK: 05933 if(!xdr_READDIR4resok(xdrs, &objp->READDIR4res_u.resok4)) 05934 return FALSE; 05935 break; 05936 default: 05937 break; 05938 } 05939 return TRUE; 05940 } 05941 05942 static inline bool_t xdr_READLINK4resok(XDR * xdrs, READLINK4resok * objp) 05943 { 05944 if(!xdr_linktext4(xdrs, &objp->link)) 05945 return FALSE; 05946 return TRUE; 05947 } 05948 05949 static inline bool_t xdr_READLINK4res(XDR * xdrs, READLINK4res * objp) 05950 { 05951 if(!xdr_nfsstat4(xdrs, &objp->status)) 05952 return FALSE; 05953 switch (objp->status) 05954 { 05955 case NFS4_OK: 05956 if(!xdr_READLINK4resok(xdrs, &objp->READLINK4res_u.resok4)) 05957 return FALSE; 05958 break; 05959 default: 05960 break; 05961 } 05962 return TRUE; 05963 } 05964 05965 static inline bool_t xdr_REMOVE4args(XDR * xdrs, REMOVE4args * objp) 05966 { 05967 if(!xdr_component4(xdrs, &objp->target)) 05968 return FALSE; 05969 return TRUE; 05970 } 05971 05972 static inline bool_t xdr_REMOVE4resok(XDR * xdrs, REMOVE4resok * objp) 05973 { 05974 if(!xdr_change_info4(xdrs, &objp->cinfo)) 05975 return FALSE; 05976 return TRUE; 05977 } 05978 05979 static inline bool_t xdr_REMOVE4res(XDR * xdrs, REMOVE4res * objp) 05980 { 05981 if(!xdr_nfsstat4(xdrs, &objp->status)) 05982 return FALSE; 05983 switch (objp->status) 05984 { 05985 case NFS4_OK: 05986 if(!xdr_REMOVE4resok(xdrs, &objp->REMOVE4res_u.resok4)) 05987 return FALSE; 05988 break; 05989 default: 05990 break; 05991 } 05992 return TRUE; 05993 } 05994 05995 static inline bool_t xdr_RENAME4args(XDR * xdrs, RENAME4args * objp) 05996 { 05997 if(!xdr_component4(xdrs, &objp->oldname)) 05998 return FALSE; 05999 if(!xdr_component4(xdrs, &objp->newname)) 06000 return FALSE; 06001 return TRUE; 06002 } 06003 06004 static inline bool_t xdr_RENAME4resok(XDR * xdrs, RENAME4resok * objp) 06005 { 06006 if(!xdr_change_info4(xdrs, &objp->source_cinfo)) 06007 return FALSE; 06008 if(!xdr_change_info4(xdrs, &objp->target_cinfo)) 06009 return FALSE; 06010 return TRUE; 06011 } 06012 06013 static inline bool_t xdr_RENAME4res(XDR * xdrs, RENAME4res * objp) 06014 { 06015 if(!xdr_nfsstat4(xdrs, &objp->status)) 06016 return FALSE; 06017 switch (objp->status) 06018 { 06019 case NFS4_OK: 06020 if(!xdr_RENAME4resok(xdrs, &objp->RENAME4res_u.resok4)) 06021 return FALSE; 06022 break; 06023 default: 06024 break; 06025 } 06026 return TRUE; 06027 } 06028 06029 static inline bool_t xdr_RENEW4args(XDR * xdrs, RENEW4args * objp) 06030 { 06031 if(!xdr_clientid4(xdrs, &objp->clientid)) 06032 return FALSE; 06033 return TRUE; 06034 } 06035 06036 static inline bool_t xdr_RENEW4res(XDR * xdrs, RENEW4res * objp) 06037 { 06038 if(!xdr_nfsstat4(xdrs, &objp->status)) 06039 return FALSE; 06040 return TRUE; 06041 } 06042 06043 static inline bool_t xdr_RESTOREFH4res(XDR * xdrs, RESTOREFH4res * objp) 06044 { 06045 if(!xdr_nfsstat4(xdrs, &objp->status)) 06046 return FALSE; 06047 return TRUE; 06048 } 06049 06050 static inline bool_t xdr_SAVEFH4res(XDR * xdrs, SAVEFH4res * objp) 06051 { 06052 if(!xdr_nfsstat4(xdrs, &objp->status)) 06053 return FALSE; 06054 return TRUE; 06055 } 06056 06057 static inline bool_t xdr_SECINFO4args(XDR * xdrs, SECINFO4args * objp) 06058 { 06059 if(!xdr_component4(xdrs, &objp->name)) 06060 return FALSE; 06061 return TRUE; 06062 } 06063 06064 static inline bool_t xdr_rpc_gss_svc_t(XDR * xdrs, rpc_gss_svc_t * objp) 06065 { 06066 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06067 return FALSE; 06068 return TRUE; 06069 } 06070 06071 static inline bool_t xdr_rpcsec_gss_info(XDR * xdrs, rpcsec_gss_info * objp) 06072 { 06073 if(!xdr_sec_oid4(xdrs, &objp->oid)) 06074 return FALSE; 06075 if(!xdr_qop4(xdrs, &objp->qop)) 06076 return FALSE; 06077 if(!xdr_rpc_gss_svc_t(xdrs, &objp->service)) 06078 return FALSE; 06079 return TRUE; 06080 } 06081 06082 static inline bool_t xdr_secinfo4(XDR * xdrs, secinfo4 * objp) 06083 { 06084 if(!inline_xdr_u_int32_t(xdrs, &objp->flavor)) 06085 return FALSE; 06086 switch (objp->flavor) 06087 { 06088 case RPCSEC_GSS: 06089 if(!xdr_rpcsec_gss_info(xdrs, &objp->secinfo4_u.flavor_info)) 06090 return FALSE; 06091 break; 06092 default: 06093 break; 06094 } 06095 return TRUE; 06096 } 06097 06098 static inline bool_t xdr_SECINFO4resok(XDR * xdrs, SECINFO4resok * objp) 06099 { 06100 if(!xdr_array 06101 (xdrs, (char **)&objp->SECINFO4resok_val, (u_int *) & objp->SECINFO4resok_len, ~0, 06102 sizeof(secinfo4), (xdrproc_t) xdr_secinfo4)) 06103 return FALSE; 06104 return TRUE; 06105 } 06106 06107 static inline bool_t xdr_SECINFO4res(XDR * xdrs, SECINFO4res * objp) 06108 { 06109 if(!xdr_nfsstat4(xdrs, &objp->status)) 06110 return FALSE; 06111 switch (objp->status) 06112 { 06113 case NFS4_OK: 06114 if(!xdr_SECINFO4resok(xdrs, &objp->SECINFO4res_u.resok4)) 06115 return FALSE; 06116 break; 06117 default: 06118 break; 06119 } 06120 return TRUE; 06121 } 06122 06123 static inline bool_t xdr_SETATTR4args(XDR * xdrs, SETATTR4args * objp) 06124 { 06125 if(!xdr_stateid4(xdrs, &objp->stateid)) 06126 return FALSE; 06127 if(!xdr_fattr4(xdrs, &objp->obj_attributes)) 06128 return FALSE; 06129 return TRUE; 06130 } 06131 06132 static inline bool_t xdr_SETATTR4res(XDR * xdrs, SETATTR4res * objp) 06133 { 06134 if(!xdr_nfsstat4(xdrs, &objp->status)) 06135 return FALSE; 06136 if(!xdr_bitmap4(xdrs, &objp->attrsset)) 06137 return FALSE; 06138 return TRUE; 06139 } 06140 06141 static inline bool_t xdr_SETCLIENTID4args(XDR * xdrs, SETCLIENTID4args * objp) 06142 { 06143 if(!xdr_nfs_client_id4(xdrs, &objp->client)) 06144 return FALSE; 06145 if(!xdr_cb_client4(xdrs, &objp->callback)) 06146 return FALSE; 06147 if(!inline_xdr_u_int32_t(xdrs, &objp->callback_ident)) 06148 return FALSE; 06149 return TRUE; 06150 } 06151 06152 static inline bool_t xdr_SETCLIENTID4resok(XDR * xdrs, SETCLIENTID4resok * objp) 06153 { 06154 if(!xdr_clientid4(xdrs, &objp->clientid)) 06155 return FALSE; 06156 if(!xdr_verifier4(xdrs, objp->setclientid_confirm)) 06157 return FALSE; 06158 return TRUE; 06159 } 06160 06161 static inline bool_t xdr_SETCLIENTID4res(XDR * xdrs, SETCLIENTID4res * objp) 06162 { 06163 if(!xdr_nfsstat4(xdrs, &objp->status)) 06164 return FALSE; 06165 switch (objp->status) 06166 { 06167 case NFS4_OK: 06168 if(!xdr_SETCLIENTID4resok(xdrs, &objp->SETCLIENTID4res_u.resok4)) 06169 return FALSE; 06170 break; 06171 case NFS4ERR_CLID_INUSE: 06172 if(!xdr_clientaddr4(xdrs, &objp->SETCLIENTID4res_u.client_using)) 06173 return FALSE; 06174 break; 06175 default: 06176 break; 06177 } 06178 return TRUE; 06179 } 06180 06181 static inline bool_t xdr_SETCLIENTID_CONFIRM4args(XDR * xdrs, SETCLIENTID_CONFIRM4args * objp) 06182 { 06183 if(!xdr_clientid4(xdrs, &objp->clientid)) 06184 return FALSE; 06185 if(!xdr_verifier4(xdrs, objp->setclientid_confirm)) 06186 return FALSE; 06187 return TRUE; 06188 } 06189 06190 static inline bool_t xdr_SETCLIENTID_CONFIRM4res(XDR * xdrs, SETCLIENTID_CONFIRM4res * objp) 06191 { 06192 if(!xdr_nfsstat4(xdrs, &objp->status)) 06193 return FALSE; 06194 return TRUE; 06195 } 06196 06197 static inline bool_t xdr_VERIFY4args(XDR * xdrs, VERIFY4args * objp) 06198 { 06199 if(!xdr_fattr4(xdrs, &objp->obj_attributes)) 06200 return FALSE; 06201 return TRUE; 06202 } 06203 06204 static inline bool_t xdr_VERIFY4res(XDR * xdrs, VERIFY4res * objp) 06205 { 06206 if(!xdr_nfsstat4(xdrs, &objp->status)) 06207 return FALSE; 06208 return TRUE; 06209 } 06210 06211 static inline bool_t xdr_stable_how4(XDR * xdrs, stable_how4 * objp) 06212 { 06213 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06214 return FALSE; 06215 return TRUE; 06216 } 06217 06218 static inline bool_t xdr_WRITE4args(XDR * xdrs, WRITE4args * objp) 06219 { 06220 if(!xdr_stateid4(xdrs, &objp->stateid)) 06221 return FALSE; 06222 if(!xdr_offset4(xdrs, &objp->offset)) 06223 return FALSE; 06224 if(!xdr_stable_how4(xdrs, &objp->stable)) 06225 return FALSE; 06226 if(!inline_xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) & objp->data.data_len, ~0)) 06227 return FALSE; 06228 return TRUE; 06229 } 06230 06231 static inline bool_t xdr_WRITE4resok(XDR * xdrs, WRITE4resok * objp) 06232 { 06233 if(!xdr_count4(xdrs, &objp->count)) 06234 return FALSE; 06235 if(!xdr_stable_how4(xdrs, &objp->committed)) 06236 return FALSE; 06237 if(!xdr_verifier4(xdrs, objp->writeverf)) 06238 return FALSE; 06239 return TRUE; 06240 } 06241 06242 static inline bool_t xdr_WRITE4res(XDR * xdrs, WRITE4res * objp) 06243 { 06244 if(!xdr_nfsstat4(xdrs, &objp->status)) 06245 return FALSE; 06246 switch (objp->status) 06247 { 06248 case NFS4_OK: 06249 if(!xdr_WRITE4resok(xdrs, &objp->WRITE4res_u.resok4)) 06250 return FALSE; 06251 break; 06252 default: 06253 break; 06254 } 06255 return TRUE; 06256 } 06257 06258 static inline bool_t xdr_RELEASE_LOCKOWNER4args(XDR * xdrs, RELEASE_LOCKOWNER4args * objp) 06259 { 06260 if(!xdr_lock_owner4(xdrs, &objp->lock_owner)) 06261 return FALSE; 06262 return TRUE; 06263 } 06264 06265 static inline bool_t xdr_RELEASE_LOCKOWNER4res(XDR * xdrs, RELEASE_LOCKOWNER4res * objp) 06266 { 06267 if(!xdr_nfsstat4(xdrs, &objp->status)) 06268 return FALSE; 06269 return TRUE; 06270 } 06271 06272 static inline bool_t xdr_ILLEGAL4res(XDR * xdrs, ILLEGAL4res * objp) 06273 { 06274 if(!xdr_nfsstat4(xdrs, &objp->status)) 06275 return FALSE; 06276 return TRUE; 06277 } 06278 06279 static inline bool_t xdr_gsshandle4_t(XDR * xdrs, gsshandle4_t * objp) 06280 { 06281 if(!inline_xdr_bytes 06282 (xdrs, (char **)&objp->gsshandle4_t_val, (u_int *) & objp->gsshandle4_t_len, ~0)) 06283 return FALSE; 06284 return TRUE; 06285 } 06286 06287 static inline bool_t xdr_gss_cb_handles4(XDR * xdrs, gss_cb_handles4 * objp) 06288 { 06289 if(!xdr_rpc_gss_svc_t(xdrs, &objp->gcbp_service)) 06290 return FALSE; 06291 if(!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_server)) 06292 return FALSE; 06293 if(!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_client)) 06294 return FALSE; 06295 return TRUE; 06296 } 06297 06298 static inline bool_t xdr_callback_sec_parms4(XDR * xdrs, callback_sec_parms4 * objp) 06299 { 06300 if(!inline_xdr_u_int32_t(xdrs, &objp->cb_secflavor)) 06301 return FALSE; 06302 switch (objp->cb_secflavor) 06303 { 06304 case AUTH_NONE: 06305 break; 06306 case AUTH_SYS: 06307 //if (!xdr_authsys_parms (xdrs, &objp->callback_sec_parms4_u.cbsp_sys_cred)) 06308 if(!xdr_authunix_parms(xdrs, &objp->callback_sec_parms4_u.cbsp_sys_cred)) 06309 return FALSE; 06310 break; 06311 case RPCSEC_GSS: 06312 if(!xdr_gss_cb_handles4(xdrs, &objp->callback_sec_parms4_u.cbsp_gss_handles)) 06313 return FALSE; 06314 break; 06315 default: 06316 return FALSE; 06317 } 06318 return TRUE; 06319 } 06320 06321 static inline bool_t xdr_BACKCHANNEL_CTL4args(XDR * xdrs, BACKCHANNEL_CTL4args * objp) 06322 { 06323 if(!inline_xdr_u_int32_t(xdrs, &objp->bca_cb_program)) 06324 return FALSE; 06325 if(!xdr_array 06326 (xdrs, (char **)&objp->bca_sec_parms.bca_sec_parms_val, 06327 (u_int *) & objp->bca_sec_parms.bca_sec_parms_len, ~0, sizeof(callback_sec_parms4), 06328 (xdrproc_t) xdr_callback_sec_parms4)) 06329 return FALSE; 06330 return TRUE; 06331 } 06332 06333 static inline bool_t xdr_BACKCHANNEL_CTL4res(XDR * xdrs, BACKCHANNEL_CTL4res * objp) 06334 { 06335 if(!xdr_nfsstat4(xdrs, &objp->bcr_status)) 06336 return FALSE; 06337 return TRUE; 06338 } 06339 06340 static inline bool_t xdr_channel_dir_from_client4(XDR * xdrs, channel_dir_from_client4 * objp) 06341 { 06342 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06343 return FALSE; 06344 return TRUE; 06345 } 06346 06347 static inline bool_t xdr_BIND_CONN_TO_SESSION4args(XDR * xdrs, BIND_CONN_TO_SESSION4args * objp) 06348 { 06349 if(!xdr_sessionid4(xdrs, objp->bctsa_sessid)) 06350 return FALSE; 06351 if(!xdr_channel_dir_from_client4(xdrs, &objp->bctsa_dir)) 06352 return FALSE; 06353 if(!inline_xdr_bool(xdrs, &objp->bctsa_use_conn_in_rdma_mode)) 06354 return FALSE; 06355 return TRUE; 06356 } 06357 06358 static inline bool_t xdr_channel_dir_from_server4(XDR * xdrs, channel_dir_from_server4 * objp) 06359 { 06360 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06361 return FALSE; 06362 return TRUE; 06363 } 06364 06365 static inline bool_t xdr_BIND_CONN_TO_SESSION4resok(XDR * xdrs, BIND_CONN_TO_SESSION4resok * objp) 06366 { 06367 if(!xdr_sessionid4(xdrs, objp->bctsr_sessid)) 06368 return FALSE; 06369 if(!xdr_channel_dir_from_server4(xdrs, &objp->bctsr_dir)) 06370 return FALSE; 06371 if(!inline_xdr_bool(xdrs, &objp->bctsr_use_conn_in_rdma_mode)) 06372 return FALSE; 06373 return TRUE; 06374 } 06375 06376 static inline bool_t xdr_BIND_CONN_TO_SESSION4res(XDR * xdrs, BIND_CONN_TO_SESSION4res * objp) 06377 { 06378 if(!xdr_nfsstat4(xdrs, &objp->bctsr_status)) 06379 return FALSE; 06380 switch (objp->bctsr_status) 06381 { 06382 case NFS4_OK: 06383 if(!xdr_BIND_CONN_TO_SESSION4resok 06384 (xdrs, &objp->BIND_CONN_TO_SESSION4res_u.bctsr_resok4)) 06385 return FALSE; 06386 break; 06387 default: 06388 break; 06389 } 06390 return TRUE; 06391 } 06392 06393 static inline bool_t xdr_state_protect_ops4(XDR * xdrs, state_protect_ops4 * objp) 06394 { 06395 if(!xdr_bitmap4(xdrs, &objp->spo_must_enforce)) 06396 return FALSE; 06397 if(!xdr_bitmap4(xdrs, &objp->spo_must_allow)) 06398 return FALSE; 06399 return TRUE; 06400 } 06401 06402 static inline bool_t xdr_ssv_sp_parms4(XDR * xdrs, ssv_sp_parms4 * objp) 06403 { 06404 if(!xdr_state_protect_ops4(xdrs, &objp->ssp_ops)) 06405 return FALSE; 06406 if(!xdr_array 06407 (xdrs, (char **)&objp->ssp_hash_algs.ssp_hash_algs_val, 06408 (u_int *) & objp->ssp_hash_algs.ssp_hash_algs_len, ~0, sizeof(sec_oid4), 06409 (xdrproc_t) xdr_sec_oid4)) 06410 return FALSE; 06411 if(!xdr_array 06412 (xdrs, (char **)&objp->ssp_encr_algs.ssp_encr_algs_val, 06413 (u_int *) & objp->ssp_encr_algs.ssp_encr_algs_len, ~0, sizeof(sec_oid4), 06414 (xdrproc_t) xdr_sec_oid4)) 06415 return FALSE; 06416 if(!inline_xdr_u_int32_t(xdrs, &objp->ssp_window)) 06417 return FALSE; 06418 if(!inline_xdr_u_int32_t(xdrs, &objp->ssp_num_gss_handles)) 06419 return FALSE; 06420 return TRUE; 06421 } 06422 06423 static inline bool_t xdr_state_protect_how4(XDR * xdrs, state_protect_how4 * objp) 06424 { 06425 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06426 return FALSE; 06427 return TRUE; 06428 } 06429 06430 static inline bool_t xdr_state_protect4_a(XDR * xdrs, state_protect4_a * objp) 06431 { 06432 if(!xdr_state_protect_how4(xdrs, &objp->spa_how)) 06433 return FALSE; 06434 switch (objp->spa_how) 06435 { 06436 case SP4_NONE: 06437 break; 06438 case SP4_MACH_CRED: 06439 if(!xdr_state_protect_ops4(xdrs, &objp->state_protect4_a_u.spa_mach_ops)) 06440 return FALSE; 06441 break; 06442 case SP4_SSV: 06443 if(!xdr_ssv_sp_parms4(xdrs, &objp->state_protect4_a_u.spa_ssv_parms)) 06444 return FALSE; 06445 break; 06446 default: 06447 return FALSE; 06448 } 06449 return TRUE; 06450 } 06451 06452 static inline bool_t xdr_EXCHANGE_ID4args(XDR * xdrs, EXCHANGE_ID4args * objp) 06453 { 06454 if(!xdr_client_owner4(xdrs, &objp->eia_clientowner)) 06455 return FALSE; 06456 if(!inline_xdr_u_int32_t(xdrs, &objp->eia_flags)) 06457 return FALSE; 06458 if(!xdr_state_protect4_a(xdrs, &objp->eia_state_protect)) 06459 return FALSE; 06460 if(!xdr_array 06461 (xdrs, (char **)&objp->eia_client_impl_id.eia_client_impl_id_val, 06462 (u_int *) & objp->eia_client_impl_id.eia_client_impl_id_len, 1, 06463 sizeof(nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4)) 06464 return FALSE; 06465 return TRUE; 06466 } 06467 06468 static inline bool_t xdr_ssv_prot_info4(XDR * xdrs, ssv_prot_info4 * objp) 06469 { 06470 if(!xdr_state_protect_ops4(xdrs, &objp->spi_ops)) 06471 return FALSE; 06472 if(!inline_xdr_u_int32_t(xdrs, &objp->spi_hash_alg)) 06473 return FALSE; 06474 if(!inline_xdr_u_int32_t(xdrs, &objp->spi_encr_alg)) 06475 return FALSE; 06476 if(!inline_xdr_u_int32_t(xdrs, &objp->spi_ssv_len)) 06477 return FALSE; 06478 if(!inline_xdr_u_int32_t(xdrs, &objp->spi_window)) 06479 return FALSE; 06480 if(!xdr_array 06481 (xdrs, (char **)&objp->spi_handles.spi_handles_val, 06482 (u_int *) & objp->spi_handles.spi_handles_len, ~0, sizeof(gsshandle4_t), 06483 (xdrproc_t) xdr_gsshandle4_t)) 06484 return FALSE; 06485 return TRUE; 06486 } 06487 06488 static inline bool_t xdr_state_protect4_r(XDR * xdrs, state_protect4_r * objp) 06489 { 06490 if(!xdr_state_protect_how4(xdrs, &objp->spr_how)) 06491 return FALSE; 06492 switch (objp->spr_how) 06493 { 06494 case SP4_NONE: 06495 break; 06496 case SP4_MACH_CRED: 06497 if(!xdr_state_protect_ops4(xdrs, &objp->state_protect4_r_u.spr_mach_ops)) 06498 return FALSE; 06499 break; 06500 case SP4_SSV: 06501 if(!xdr_ssv_prot_info4(xdrs, &objp->state_protect4_r_u.spr_ssv_info)) 06502 return FALSE; 06503 break; 06504 default: 06505 return FALSE; 06506 } 06507 return TRUE; 06508 } 06509 06510 static inline bool_t xdr_EXCHANGE_ID4resok(XDR * xdrs, EXCHANGE_ID4resok * objp) 06511 { 06512 if(!xdr_clientid4(xdrs, &objp->eir_clientid)) 06513 return FALSE; 06514 if(!xdr_sequenceid4(xdrs, &objp->eir_sequenceid)) 06515 return FALSE; 06516 if(!inline_xdr_u_int32_t(xdrs, &objp->eir_flags)) 06517 return FALSE; 06518 if(!xdr_state_protect4_r(xdrs, &objp->eir_state_protect)) 06519 return FALSE; 06520 if(!xdr_server_owner4(xdrs, &objp->eir_server_owner)) 06521 return FALSE; 06522 if(!inline_xdr_bytes 06523 (xdrs, (char **)&objp->eir_server_scope.eir_server_scope_val, 06524 (u_int *) & objp->eir_server_scope.eir_server_scope_len, NFS4_OPAQUE_LIMIT)) 06525 return FALSE; 06526 if(!xdr_array 06527 (xdrs, (char **)&objp->eir_server_impl_id.eir_server_impl_id_val, 06528 (u_int *) & objp->eir_server_impl_id.eir_server_impl_id_len, 1, 06529 sizeof(nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4)) 06530 return FALSE; 06531 return TRUE; 06532 } 06533 06534 static inline bool_t xdr_EXCHANGE_ID4res(XDR * xdrs, EXCHANGE_ID4res * objp) 06535 { 06536 if(!xdr_nfsstat4(xdrs, &objp->eir_status)) 06537 return FALSE; 06538 switch (objp->eir_status) 06539 { 06540 case NFS4_OK: 06541 if(!xdr_EXCHANGE_ID4resok(xdrs, &objp->EXCHANGE_ID4res_u.eir_resok4)) 06542 return FALSE; 06543 break; 06544 default: 06545 break; 06546 } 06547 return TRUE; 06548 } 06549 06550 static inline bool_t xdr_channel_attrs4(XDR * xdrs, channel_attrs4 * objp) 06551 { 06552 if(!xdr_count4(xdrs, &objp->ca_headerpadsize)) 06553 return FALSE; 06554 if(!xdr_count4(xdrs, &objp->ca_maxrequestsize)) 06555 return FALSE; 06556 if(!xdr_count4(xdrs, &objp->ca_maxresponsesize)) 06557 return FALSE; 06558 if(!xdr_count4(xdrs, &objp->ca_maxresponsesize_cached)) 06559 return FALSE; 06560 if(!xdr_count4(xdrs, &objp->ca_maxoperations)) 06561 return FALSE; 06562 if(!xdr_count4(xdrs, &objp->ca_maxrequests)) 06563 return FALSE; 06564 if(!xdr_array 06565 (xdrs, (char **)&objp->ca_rdma_ird.ca_rdma_ird_val, 06566 (u_int *) & objp->ca_rdma_ird.ca_rdma_ird_len, 1, sizeof(uint32_t), 06567 (xdrproc_t) xdr_uint32_t)) 06568 return FALSE; 06569 return TRUE; 06570 } 06571 06572 static inline bool_t xdr_CREATE_SESSION4args(XDR * xdrs, CREATE_SESSION4args * objp) 06573 { 06574 if(!xdr_clientid4(xdrs, &objp->csa_clientid)) 06575 return FALSE; 06576 if(!xdr_sequenceid4(xdrs, &objp->csa_sequence)) 06577 return FALSE; 06578 if(!inline_xdr_u_int32_t(xdrs, &objp->csa_flags)) 06579 return FALSE; 06580 if(!xdr_channel_attrs4(xdrs, &objp->csa_fore_chan_attrs)) 06581 return FALSE; 06582 if(!xdr_channel_attrs4(xdrs, &objp->csa_back_chan_attrs)) 06583 return FALSE; 06584 if(!inline_xdr_u_int32_t(xdrs, &objp->csa_cb_program)) 06585 return FALSE; 06586 if(!xdr_array 06587 (xdrs, (char **)&objp->csa_sec_parms.csa_sec_parms_val, 06588 (u_int *) & objp->csa_sec_parms.csa_sec_parms_len, ~0, sizeof(callback_sec_parms4), 06589 (xdrproc_t) xdr_callback_sec_parms4)) 06590 return FALSE; 06591 return TRUE; 06592 } 06593 06594 static inline bool_t xdr_CREATE_SESSION4resok(XDR * xdrs, CREATE_SESSION4resok * objp) 06595 { 06596 if(!xdr_sessionid4(xdrs, objp->csr_sessionid)) 06597 return FALSE; 06598 if(!xdr_sequenceid4(xdrs, &objp->csr_sequence)) 06599 return FALSE; 06600 if(!inline_xdr_u_int32_t(xdrs, &objp->csr_flags)) 06601 return FALSE; 06602 if(!xdr_channel_attrs4(xdrs, &objp->csr_fore_chan_attrs)) 06603 return FALSE; 06604 if(!xdr_channel_attrs4(xdrs, &objp->csr_back_chan_attrs)) 06605 return FALSE; 06606 return TRUE; 06607 } 06608 06609 static inline bool_t xdr_CREATE_SESSION4res(XDR * xdrs, CREATE_SESSION4res * objp) 06610 { 06611 if(!xdr_nfsstat4(xdrs, &objp->csr_status)) 06612 return FALSE; 06613 switch (objp->csr_status) 06614 { 06615 case NFS4_OK: 06616 if(!xdr_CREATE_SESSION4resok(xdrs, &objp->CREATE_SESSION4res_u.csr_resok4)) 06617 return FALSE; 06618 break; 06619 default: 06620 break; 06621 } 06622 return TRUE; 06623 } 06624 06625 static inline bool_t xdr_DESTROY_SESSION4args(XDR * xdrs, DESTROY_SESSION4args * objp) 06626 { 06627 if(!xdr_sessionid4(xdrs, objp->dsa_sessionid)) 06628 return FALSE; 06629 return TRUE; 06630 } 06631 06632 static inline bool_t xdr_DESTROY_SESSION4res(XDR * xdrs, DESTROY_SESSION4res * objp) 06633 { 06634 if(!xdr_nfsstat4(xdrs, &objp->dsr_status)) 06635 return FALSE; 06636 return TRUE; 06637 } 06638 06639 static inline bool_t xdr_FREE_STATEID4args(XDR * xdrs, FREE_STATEID4args * objp) 06640 { 06641 if(!xdr_stateid4(xdrs, &objp->fsa_stateid)) 06642 return FALSE; 06643 return TRUE; 06644 } 06645 06646 static inline bool_t xdr_FREE_STATEID4res(XDR * xdrs, FREE_STATEID4res * objp) 06647 { 06648 if(!xdr_nfsstat4(xdrs, &objp->fsr_status)) 06649 return FALSE; 06650 return TRUE; 06651 } 06652 06653 static inline bool_t xdr_attr_notice4(XDR * xdrs, attr_notice4 * objp) 06654 { 06655 if(!xdr_nfstime4(xdrs, objp)) 06656 return FALSE; 06657 return TRUE; 06658 } 06659 06660 static inline bool_t xdr_GET_DIR_DELEGATION4args(XDR * xdrs, GET_DIR_DELEGATION4args * objp) 06661 { 06662 if(!inline_xdr_bool(xdrs, &objp->gdda_signal_deleg_avail)) 06663 return FALSE; 06664 if(!xdr_bitmap4(xdrs, &objp->gdda_notification_types)) 06665 return FALSE; 06666 if(!xdr_attr_notice4(xdrs, &objp->gdda_child_attr_delay)) 06667 return FALSE; 06668 if(!xdr_attr_notice4(xdrs, &objp->gdda_dir_attr_delay)) 06669 return FALSE; 06670 if(!xdr_bitmap4(xdrs, &objp->gdda_child_attributes)) 06671 return FALSE; 06672 if(!xdr_bitmap4(xdrs, &objp->gdda_dir_attributes)) 06673 return FALSE; 06674 return TRUE; 06675 } 06676 06677 static inline bool_t xdr_GET_DIR_DELEGATION4resok(XDR * xdrs, GET_DIR_DELEGATION4resok * objp) 06678 { 06679 if(!xdr_verifier4(xdrs, objp->gddr_cookieverf)) 06680 return FALSE; 06681 if(!xdr_stateid4(xdrs, &objp->gddr_stateid)) 06682 return FALSE; 06683 if(!xdr_bitmap4(xdrs, &objp->gddr_notification)) 06684 return FALSE; 06685 if(!xdr_bitmap4(xdrs, &objp->gddr_child_attributes)) 06686 return FALSE; 06687 if(!xdr_bitmap4(xdrs, &objp->gddr_dir_attributes)) 06688 return FALSE; 06689 return TRUE; 06690 } 06691 06692 static inline bool_t xdr_gddrnf4_status(XDR * xdrs, gddrnf4_status * objp) 06693 { 06694 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 06695 return FALSE; 06696 return TRUE; 06697 } 06698 06699 static inline bool_t 06700 xdr_GET_DIR_DELEGATION4res_non_fatal(XDR * xdrs, GET_DIR_DELEGATION4res_non_fatal * objp) 06701 { 06702 if(!xdr_gddrnf4_status(xdrs, &objp->gddrnf_status)) 06703 return FALSE; 06704 switch (objp->gddrnf_status) 06705 { 06706 case GDD4_OK: 06707 if(!xdr_GET_DIR_DELEGATION4resok 06708 (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4)) 06709 return FALSE; 06710 break; 06711 case GDD4_UNAVAIL: 06712 if(!inline_xdr_bool 06713 (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_will_signal_deleg_avail)) 06714 return FALSE; 06715 break; 06716 default: 06717 return FALSE; 06718 } 06719 return TRUE; 06720 } 06721 06722 static inline bool_t xdr_GET_DIR_DELEGATION4res(XDR * xdrs, GET_DIR_DELEGATION4res * objp) 06723 { 06724 if(!xdr_nfsstat4(xdrs, &objp->gddr_status)) 06725 return FALSE; 06726 switch (objp->gddr_status) 06727 { 06728 case NFS4_OK: 06729 if(!xdr_GET_DIR_DELEGATION4res_non_fatal 06730 (xdrs, &objp->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4)) 06731 return FALSE; 06732 break; 06733 default: 06734 break; 06735 } 06736 return TRUE; 06737 } 06738 06739 static inline bool_t xdr_GETDEVICEINFO4args(XDR * xdrs, GETDEVICEINFO4args * objp) 06740 { 06741 if(!xdr_deviceid4(xdrs, objp->gdia_device_id)) 06742 return FALSE; 06743 if(!xdr_layouttype4(xdrs, &objp->gdia_layout_type)) 06744 return FALSE; 06745 if(!xdr_count4(xdrs, &objp->gdia_maxcount)) 06746 return FALSE; 06747 if(!xdr_bitmap4(xdrs, &objp->gdia_notify_types)) 06748 return FALSE; 06749 return TRUE; 06750 } 06751 06752 static inline bool_t xdr_GETDEVICEINFO4resok(XDR * xdrs, GETDEVICEINFO4resok * objp) 06753 { 06754 if(!xdr_device_addr4(xdrs, &objp->gdir_device_addr)) 06755 return FALSE; 06756 if(!xdr_bitmap4(xdrs, &objp->gdir_notification)) 06757 return FALSE; 06758 return TRUE; 06759 } 06760 06761 static inline bool_t xdr_GETDEVICEINFO4res(XDR * xdrs, GETDEVICEINFO4res * objp) 06762 { 06763 if(!xdr_nfsstat4(xdrs, &objp->gdir_status)) 06764 return FALSE; 06765 switch (objp->gdir_status) 06766 { 06767 case NFS4_OK: 06768 if(!xdr_GETDEVICEINFO4resok(xdrs, &objp->GETDEVICEINFO4res_u.gdir_resok4)) 06769 return FALSE; 06770 break; 06771 case NFS4ERR_TOOSMALL: 06772 if(!xdr_count4(xdrs, &objp->GETDEVICEINFO4res_u.gdir_mincount)) 06773 return FALSE; 06774 break; 06775 default: 06776 break; 06777 } 06778 return TRUE; 06779 } 06780 06781 static inline bool_t xdr_GETDEVICELIST4args(XDR * xdrs, GETDEVICELIST4args * objp) 06782 { 06783 if(!xdr_layouttype4(xdrs, &objp->gdla_layout_type)) 06784 return FALSE; 06785 if(!xdr_count4(xdrs, &objp->gdla_maxdevices)) 06786 return FALSE; 06787 if(!xdr_nfs_cookie4(xdrs, &objp->gdla_cookie)) 06788 return FALSE; 06789 if(!xdr_verifier4(xdrs, objp->gdla_cookieverf)) 06790 return FALSE; 06791 return TRUE; 06792 } 06793 06794 static inline bool_t xdr_GETDEVICELIST4resok(XDR * xdrs, GETDEVICELIST4resok * objp) 06795 { 06796 if(!xdr_nfs_cookie4(xdrs, &objp->gdlr_cookie)) 06797 return FALSE; 06798 if(!xdr_verifier4(xdrs, objp->gdlr_cookieverf)) 06799 return FALSE; 06800 if(!xdr_array 06801 (xdrs, (char **)&objp->gdlr_deviceid_list.gdlr_deviceid_list_val, 06802 (u_int *) & objp->gdlr_deviceid_list.gdlr_deviceid_list_len, ~0, sizeof(deviceid4), 06803 (xdrproc_t) xdr_deviceid4)) 06804 return FALSE; 06805 if(!inline_xdr_bool(xdrs, &objp->gdlr_eof)) 06806 return FALSE; 06807 return TRUE; 06808 } 06809 06810 static inline bool_t xdr_GETDEVICELIST4res(XDR * xdrs, GETDEVICELIST4res * objp) 06811 { 06812 if(!xdr_nfsstat4(xdrs, &objp->gdlr_status)) 06813 return FALSE; 06814 switch (objp->gdlr_status) 06815 { 06816 case NFS4_OK: 06817 if(!xdr_GETDEVICELIST4resok(xdrs, &objp->GETDEVICELIST4res_u.gdlr_resok4)) 06818 return FALSE; 06819 break; 06820 default: 06821 break; 06822 } 06823 return TRUE; 06824 } 06825 06826 static inline bool_t xdr_newtime4(XDR * xdrs, newtime4 * objp) 06827 { 06828 if(!inline_xdr_bool(xdrs, &objp->nt_timechanged)) 06829 return FALSE; 06830 switch (objp->nt_timechanged) 06831 { 06832 case TRUE: 06833 if(!xdr_nfstime4(xdrs, &objp->newtime4_u.nt_time)) 06834 return FALSE; 06835 break; 06836 case FALSE: 06837 break; 06838 default: 06839 return FALSE; 06840 } 06841 return TRUE; 06842 } 06843 06844 static inline bool_t xdr_newoffset4(XDR * xdrs, newoffset4 * objp) 06845 { 06846 if(!inline_xdr_bool(xdrs, &objp->no_newoffset)) 06847 return FALSE; 06848 switch (objp->no_newoffset) 06849 { 06850 case TRUE: 06851 if(!xdr_offset4(xdrs, &objp->newoffset4_u.no_offset)) 06852 return FALSE; 06853 break; 06854 case FALSE: 06855 break; 06856 default: 06857 return FALSE; 06858 } 06859 return TRUE; 06860 } 06861 06862 static inline bool_t xdr_LAYOUTCOMMIT4args(XDR * xdrs, LAYOUTCOMMIT4args * objp) 06863 { 06864 if(!xdr_offset4(xdrs, &objp->loca_offset)) 06865 return FALSE; 06866 if(!xdr_length4(xdrs, &objp->loca_length)) 06867 return FALSE; 06868 if(!inline_xdr_bool(xdrs, &objp->loca_reclaim)) 06869 return FALSE; 06870 if(!xdr_stateid4(xdrs, &objp->loca_stateid)) 06871 return FALSE; 06872 if(!xdr_newoffset4(xdrs, &objp->loca_last_write_offset)) 06873 return FALSE; 06874 if(!xdr_newtime4(xdrs, &objp->loca_time_modify)) 06875 return FALSE; 06876 if(!xdr_layoutupdate4(xdrs, &objp->loca_layoutupdate)) 06877 return FALSE; 06878 return TRUE; 06879 } 06880 06881 static inline bool_t xdr_newsize4(XDR * xdrs, newsize4 * objp) 06882 { 06883 if(!inline_xdr_bool(xdrs, &objp->ns_sizechanged)) 06884 return FALSE; 06885 switch (objp->ns_sizechanged) 06886 { 06887 case TRUE: 06888 if(!xdr_length4(xdrs, &objp->newsize4_u.ns_size)) 06889 return FALSE; 06890 break; 06891 case FALSE: 06892 break; 06893 default: 06894 return FALSE; 06895 } 06896 return TRUE; 06897 } 06898 06899 static inline bool_t xdr_LAYOUTCOMMIT4resok(XDR * xdrs, LAYOUTCOMMIT4resok * objp) 06900 { 06901 if(!xdr_newsize4(xdrs, &objp->locr_newsize)) 06902 return FALSE; 06903 return TRUE; 06904 } 06905 06906 static inline bool_t xdr_LAYOUTCOMMIT4res(XDR * xdrs, LAYOUTCOMMIT4res * objp) 06907 { 06908 if(!xdr_nfsstat4(xdrs, &objp->locr_status)) 06909 return FALSE; 06910 switch (objp->locr_status) 06911 { 06912 case NFS4_OK: 06913 if(!xdr_LAYOUTCOMMIT4resok(xdrs, &objp->LAYOUTCOMMIT4res_u.locr_resok4)) 06914 return FALSE; 06915 break; 06916 default: 06917 break; 06918 } 06919 return TRUE; 06920 } 06921 06922 static inline bool_t xdr_LAYOUTGET4args(XDR * xdrs, LAYOUTGET4args * objp) 06923 { 06924 if(!inline_xdr_bool(xdrs, &objp->loga_signal_layout_avail)) 06925 return FALSE; 06926 if(!xdr_layouttype4(xdrs, &objp->loga_layout_type)) 06927 return FALSE; 06928 if(!xdr_layoutiomode4(xdrs, &objp->loga_iomode)) 06929 return FALSE; 06930 if(!xdr_offset4(xdrs, &objp->loga_offset)) 06931 return FALSE; 06932 if(!xdr_length4(xdrs, &objp->loga_length)) 06933 return FALSE; 06934 if(!xdr_length4(xdrs, &objp->loga_minlength)) 06935 return FALSE; 06936 if(!xdr_stateid4(xdrs, &objp->loga_stateid)) 06937 return FALSE; 06938 if(!xdr_count4(xdrs, &objp->loga_maxcount)) 06939 return FALSE; 06940 return TRUE; 06941 } 06942 06943 static inline bool_t xdr_LAYOUTGET4resok(XDR * xdrs, LAYOUTGET4resok * objp) 06944 { 06945 if(!inline_xdr_bool(xdrs, &objp->logr_return_on_close)) 06946 return FALSE; 06947 if(!xdr_stateid4(xdrs, &objp->logr_stateid)) 06948 return FALSE; 06949 if(!xdr_array 06950 (xdrs, (char **)&objp->logr_layout.logr_layout_val, 06951 (u_int *) & objp->logr_layout.logr_layout_len, ~0, sizeof(layout4), 06952 (xdrproc_t) xdr_layout4)) 06953 return FALSE; 06954 return TRUE; 06955 } 06956 06957 static inline bool_t xdr_LAYOUTGET4res(XDR * xdrs, LAYOUTGET4res * objp) 06958 { 06959 if(!xdr_nfsstat4(xdrs, &objp->logr_status)) 06960 return FALSE; 06961 switch (objp->logr_status) 06962 { 06963 case NFS4_OK: 06964 if(!xdr_LAYOUTGET4resok(xdrs, &objp->LAYOUTGET4res_u.logr_resok4)) 06965 return FALSE; 06966 break; 06967 case NFS4ERR_LAYOUTTRYLATER: 06968 if(!inline_xdr_bool(xdrs, &objp->LAYOUTGET4res_u.logr_will_signal_layout_avail)) 06969 return FALSE; 06970 break; 06971 default: 06972 break; 06973 } 06974 return TRUE; 06975 } 06976 06977 static inline bool_t xdr_LAYOUTRETURN4args(XDR * xdrs, LAYOUTRETURN4args * objp) 06978 { 06979 if(!inline_xdr_bool(xdrs, &objp->lora_reclaim)) 06980 return FALSE; 06981 if(!xdr_layouttype4(xdrs, &objp->lora_layout_type)) 06982 return FALSE; 06983 if(!xdr_layoutiomode4(xdrs, &objp->lora_iomode)) 06984 return FALSE; 06985 if(!xdr_layoutreturn4(xdrs, &objp->lora_layoutreturn)) 06986 return FALSE; 06987 return TRUE; 06988 } 06989 06990 static inline bool_t xdr_layoutreturn_stateid(XDR * xdrs, layoutreturn_stateid * objp) 06991 { 06992 if(!inline_xdr_bool(xdrs, &objp->lrs_present)) 06993 return FALSE; 06994 switch (objp->lrs_present) 06995 { 06996 case TRUE: 06997 if(!xdr_stateid4(xdrs, &objp->layoutreturn_stateid_u.lrs_stateid)) 06998 return FALSE; 06999 break; 07000 case FALSE: 07001 break; 07002 default: 07003 return FALSE; 07004 } 07005 return TRUE; 07006 } 07007 07008 static inline bool_t xdr_LAYOUTRETURN4res(XDR * xdrs, LAYOUTRETURN4res * objp) 07009 { 07010 if(!xdr_nfsstat4(xdrs, &objp->lorr_status)) 07011 return FALSE; 07012 switch (objp->lorr_status) 07013 { 07014 case NFS4_OK: 07015 if(!xdr_layoutreturn_stateid(xdrs, &objp->LAYOUTRETURN4res_u.lorr_stateid)) 07016 return FALSE; 07017 break; 07018 default: 07019 break; 07020 } 07021 return TRUE; 07022 } 07023 07024 static inline bool_t xdr_secinfo_style4(XDR * xdrs, secinfo_style4 * objp) 07025 { 07026 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 07027 return FALSE; 07028 return TRUE; 07029 } 07030 07031 static inline bool_t xdr_SECINFO_NO_NAME4args(XDR * xdrs, SECINFO_NO_NAME4args * objp) 07032 { 07033 if(!xdr_secinfo_style4(xdrs, objp)) 07034 return FALSE; 07035 return TRUE; 07036 } 07037 07038 static inline bool_t xdr_SECINFO_NO_NAME4res(XDR * xdrs, SECINFO_NO_NAME4res * objp) 07039 { 07040 if(!xdr_SECINFO4res(xdrs, objp)) 07041 return FALSE; 07042 return TRUE; 07043 } 07044 07045 static inline bool_t xdr_SEQUENCE4args(XDR * xdrs, SEQUENCE4args * objp) 07046 { 07047 if(!xdr_sessionid4(xdrs, objp->sa_sessionid)) 07048 return FALSE; 07049 if(!xdr_sequenceid4(xdrs, &objp->sa_sequenceid)) 07050 return FALSE; 07051 if(!xdr_slotid4(xdrs, &objp->sa_slotid)) 07052 return FALSE; 07053 if(!xdr_slotid4(xdrs, &objp->sa_highest_slotid)) 07054 return FALSE; 07055 if(!inline_xdr_bool(xdrs, &objp->sa_cachethis)) 07056 return FALSE; 07057 return TRUE; 07058 } 07059 07060 static inline bool_t xdr_SEQUENCE4resok(XDR * xdrs, SEQUENCE4resok * objp) 07061 { 07062 if(!xdr_sessionid4(xdrs, objp->sr_sessionid)) 07063 return FALSE; 07064 if(!xdr_sequenceid4(xdrs, &objp->sr_sequenceid)) 07065 return FALSE; 07066 if(!xdr_slotid4(xdrs, &objp->sr_slotid)) 07067 return FALSE; 07068 if(!xdr_slotid4(xdrs, &objp->sr_highest_slotid)) 07069 return FALSE; 07070 if(!xdr_slotid4(xdrs, &objp->sr_target_highest_slotid)) 07071 return FALSE; 07072 if(!inline_xdr_u_int32_t(xdrs, &objp->sr_status_flags)) 07073 return FALSE; 07074 return TRUE; 07075 } 07076 07077 static inline bool_t xdr_SEQUENCE4res(XDR * xdrs, SEQUENCE4res * objp) 07078 { 07079 if(!xdr_nfsstat4(xdrs, &objp->sr_status)) 07080 return FALSE; 07081 switch (objp->sr_status) 07082 { 07083 case NFS4_OK: 07084 if(!xdr_SEQUENCE4resok(xdrs, &objp->SEQUENCE4res_u.sr_resok4)) 07085 return FALSE; 07086 break; 07087 default: 07088 break; 07089 } 07090 return TRUE; 07091 } 07092 07093 static inline bool_t xdr_ssa_digest_input4(XDR * xdrs, ssa_digest_input4 * objp) 07094 { 07095 if(!xdr_SEQUENCE4args(xdrs, &objp->sdi_seqargs)) 07096 return FALSE; 07097 return TRUE; 07098 } 07099 07100 static inline bool_t xdr_SET_SSV4args(XDR * xdrs, SET_SSV4args * objp) 07101 { 07102 if(!inline_xdr_bytes 07103 (xdrs, (char **)&objp->ssa_ssv.ssa_ssv_val, (u_int *) & objp->ssa_ssv.ssa_ssv_len, 07104 ~0)) 07105 return FALSE; 07106 if(!inline_xdr_bytes 07107 (xdrs, (char **)&objp->ssa_digest.ssa_digest_val, 07108 (u_int *) & objp->ssa_digest.ssa_digest_len, ~0)) 07109 return FALSE; 07110 return TRUE; 07111 } 07112 07113 static inline bool_t xdr_ssr_digest_input4(XDR * xdrs, ssr_digest_input4 * objp) 07114 { 07115 if(!xdr_SEQUENCE4res(xdrs, &objp->sdi_seqres)) 07116 return FALSE; 07117 return TRUE; 07118 } 07119 07120 static inline bool_t xdr_SET_SSV4resok(XDR * xdrs, SET_SSV4resok * objp) 07121 { 07122 if(!inline_xdr_bytes 07123 (xdrs, (char **)&objp->ssr_digest.ssr_digest_val, 07124 (u_int *) & objp->ssr_digest.ssr_digest_len, ~0)) 07125 return FALSE; 07126 return TRUE; 07127 } 07128 07129 static inline bool_t xdr_SET_SSV4res(XDR * xdrs, SET_SSV4res * objp) 07130 { 07131 if(!xdr_nfsstat4(xdrs, &objp->ssr_status)) 07132 return FALSE; 07133 switch (objp->ssr_status) 07134 { 07135 case NFS4_OK: 07136 if(!xdr_SET_SSV4resok(xdrs, &objp->SET_SSV4res_u.ssr_resok4)) 07137 return FALSE; 07138 break; 07139 default: 07140 break; 07141 } 07142 return TRUE; 07143 } 07144 07145 static inline bool_t xdr_TEST_STATEID4args(XDR * xdrs, TEST_STATEID4args * objp) 07146 { 07147 if(!xdr_array 07148 (xdrs, (char **)&objp->ts_stateids.ts_stateids_val, 07149 (u_int *) & objp->ts_stateids.ts_stateids_len, ~0, sizeof(stateid4), 07150 (xdrproc_t) xdr_stateid4)) 07151 return FALSE; 07152 return TRUE; 07153 } 07154 07155 static inline bool_t xdr_TEST_STATEID4resok(XDR * xdrs, TEST_STATEID4resok * objp) 07156 { 07157 if(!xdr_array 07158 (xdrs, (char **)&objp->tsr_status_codes.tsr_status_codes_val, 07159 (u_int *) & objp->tsr_status_codes.tsr_status_codes_len, ~0, sizeof(nfsstat4), 07160 (xdrproc_t) xdr_nfsstat4)) 07161 return FALSE; 07162 return TRUE; 07163 } 07164 07165 static inline bool_t xdr_TEST_STATEID4res(XDR * xdrs, TEST_STATEID4res * objp) 07166 { 07167 if(!xdr_nfsstat4(xdrs, &objp->tsr_status)) 07168 return FALSE; 07169 switch (objp->tsr_status) 07170 { 07171 case NFS4_OK: 07172 if(!xdr_TEST_STATEID4resok(xdrs, &objp->TEST_STATEID4res_u.tsr_resok4)) 07173 return FALSE; 07174 break; 07175 default: 07176 break; 07177 } 07178 return TRUE; 07179 } 07180 07181 static inline bool_t xdr_deleg_claim4(XDR * xdrs, deleg_claim4 * objp) 07182 { 07183 if(!xdr_open_claim_type4(xdrs, &objp->dc_claim)) 07184 return FALSE; 07185 switch (objp->dc_claim) 07186 { 07187 case CLAIM_FH: 07188 break; 07189 case CLAIM_DELEG_PREV_FH: 07190 break; 07191 case CLAIM_PREVIOUS: 07192 if(!xdr_open_delegation_type4(xdrs, &objp->deleg_claim4_u.dc_delegate_type)) 07193 return FALSE; 07194 break; 07195 default: 07196 return FALSE; 07197 } 07198 return TRUE; 07199 } 07200 07201 static inline bool_t xdr_WANT_DELEGATION4args(XDR * xdrs, WANT_DELEGATION4args * objp) 07202 { 07203 if(!inline_xdr_u_int32_t(xdrs, &objp->wda_want)) 07204 return FALSE; 07205 if(!xdr_deleg_claim4(xdrs, &objp->wda_claim)) 07206 return FALSE; 07207 return TRUE; 07208 } 07209 07210 static inline bool_t xdr_WANT_DELEGATION4res(XDR * xdrs, WANT_DELEGATION4res * objp) 07211 { 07212 if(!xdr_nfsstat4(xdrs, &objp->wdr_status)) 07213 return FALSE; 07214 switch (objp->wdr_status) 07215 { 07216 case NFS4_OK: 07217 if(!xdr_open_delegation4(xdrs, &objp->WANT_DELEGATION4res_u.wdr_resok4)) 07218 return FALSE; 07219 break; 07220 default: 07221 break; 07222 } 07223 return TRUE; 07224 } 07225 07226 static inline bool_t xdr_DESTROY_CLIENTID4args(XDR * xdrs, DESTROY_CLIENTID4args * objp) 07227 { 07228 if(!xdr_clientid4(xdrs, &objp->dca_clientid)) 07229 return FALSE; 07230 return TRUE; 07231 } 07232 07233 static inline bool_t xdr_DESTROY_CLIENTID4res(XDR * xdrs, DESTROY_CLIENTID4res * objp) 07234 { 07235 if(!xdr_nfsstat4(xdrs, &objp->dcr_status)) 07236 return FALSE; 07237 return TRUE; 07238 } 07239 07240 static inline bool_t xdr_RECLAIM_COMPLETE4args(XDR * xdrs, RECLAIM_COMPLETE4args * objp) 07241 { 07242 if(!inline_xdr_bool(xdrs, &objp->rca_one_fs)) 07243 return FALSE; 07244 return TRUE; 07245 } 07246 07247 static inline bool_t xdr_RECLAIM_COMPLETE4res(XDR * xdrs, RECLAIM_COMPLETE4res * objp) 07248 { 07249 if(!xdr_nfsstat4(xdrs, &objp->rcr_status)) 07250 return FALSE; 07251 return TRUE; 07252 } 07253 07254 /* new operations for NFSv4.1 */ 07255 07256 static inline bool_t xdr_nfs_opnum4(XDR * xdrs, nfs_opnum4 * objp) 07257 { 07258 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 07259 return FALSE; 07260 return TRUE; 07261 } 07262 07263 static inline bool_t xdr_nfs_argop4(XDR * xdrs, nfs_argop4 * objp) 07264 { 07265 if(!xdr_nfs_opnum4(xdrs, &objp->argop)) 07266 return FALSE; 07267 switch (objp->argop) 07268 { 07269 case NFS4_OP_ACCESS: 07270 if(!xdr_ACCESS4args(xdrs, &objp->nfs_argop4_u.opaccess)) 07271 return FALSE; 07272 break; 07273 case NFS4_OP_CLOSE: 07274 if(!xdr_CLOSE4args(xdrs, &objp->nfs_argop4_u.opclose)) 07275 return FALSE; 07276 break; 07277 case NFS4_OP_COMMIT: 07278 if(!xdr_COMMIT4args(xdrs, &objp->nfs_argop4_u.opcommit)) 07279 return FALSE; 07280 break; 07281 case NFS4_OP_CREATE: 07282 if(!xdr_CREATE4args(xdrs, &objp->nfs_argop4_u.opcreate)) 07283 return FALSE; 07284 break; 07285 case NFS4_OP_DELEGPURGE: 07286 if(!xdr_DELEGPURGE4args(xdrs, &objp->nfs_argop4_u.opdelegpurge)) 07287 return FALSE; 07288 break; 07289 case NFS4_OP_DELEGRETURN: 07290 if(!xdr_DELEGRETURN4args(xdrs, &objp->nfs_argop4_u.opdelegreturn)) 07291 return FALSE; 07292 break; 07293 case NFS4_OP_GETATTR: 07294 if(!xdr_GETATTR4args(xdrs, &objp->nfs_argop4_u.opgetattr)) 07295 return FALSE; 07296 break; 07297 case NFS4_OP_GETFH: 07298 break; 07299 case NFS4_OP_LINK: 07300 if(!xdr_LINK4args(xdrs, &objp->nfs_argop4_u.oplink)) 07301 return FALSE; 07302 break; 07303 case NFS4_OP_LOCK: 07304 if(!xdr_LOCK4args(xdrs, &objp->nfs_argop4_u.oplock)) 07305 return FALSE; 07306 break; 07307 case NFS4_OP_LOCKT: 07308 if(!xdr_LOCKT4args(xdrs, &objp->nfs_argop4_u.oplockt)) 07309 return FALSE; 07310 break; 07311 case NFS4_OP_LOCKU: 07312 if(!xdr_LOCKU4args(xdrs, &objp->nfs_argop4_u.oplocku)) 07313 return FALSE; 07314 break; 07315 case NFS4_OP_LOOKUP: 07316 if(!xdr_LOOKUP4args(xdrs, &objp->nfs_argop4_u.oplookup)) 07317 return FALSE; 07318 break; 07319 case NFS4_OP_LOOKUPP: 07320 break; 07321 case NFS4_OP_NVERIFY: 07322 if(!xdr_NVERIFY4args(xdrs, &objp->nfs_argop4_u.opnverify)) 07323 return FALSE; 07324 break; 07325 case NFS4_OP_OPEN: 07326 if(!xdr_OPEN4args(xdrs, &objp->nfs_argop4_u.opopen)) 07327 return FALSE; 07328 break; 07329 case NFS4_OP_OPENATTR: 07330 if(!xdr_OPENATTR4args(xdrs, &objp->nfs_argop4_u.opopenattr)) 07331 return FALSE; 07332 break; 07333 case NFS4_OP_OPEN_CONFIRM: 07334 if(!xdr_OPEN_CONFIRM4args(xdrs, &objp->nfs_argop4_u.opopen_confirm)) 07335 return FALSE; 07336 break; 07337 case NFS4_OP_OPEN_DOWNGRADE: 07338 if(!xdr_OPEN_DOWNGRADE4args(xdrs, &objp->nfs_argop4_u.opopen_downgrade)) 07339 return FALSE; 07340 break; 07341 case NFS4_OP_PUTFH: 07342 if(!xdr_PUTFH4args(xdrs, &objp->nfs_argop4_u.opputfh)) 07343 return FALSE; 07344 break; 07345 case NFS4_OP_PUTPUBFH: 07346 break; 07347 case NFS4_OP_PUTROOTFH: 07348 break; 07349 case NFS4_OP_READ: 07350 if(!xdr_READ4args(xdrs, &objp->nfs_argop4_u.opread)) 07351 return FALSE; 07352 break; 07353 case NFS4_OP_READDIR: 07354 if(!xdr_READDIR4args(xdrs, &objp->nfs_argop4_u.opreaddir)) 07355 return FALSE; 07356 break; 07357 case NFS4_OP_READLINK: 07358 break; 07359 case NFS4_OP_REMOVE: 07360 if(!xdr_REMOVE4args(xdrs, &objp->nfs_argop4_u.opremove)) 07361 return FALSE; 07362 break; 07363 case NFS4_OP_RENAME: 07364 if(!xdr_RENAME4args(xdrs, &objp->nfs_argop4_u.oprename)) 07365 return FALSE; 07366 break; 07367 case NFS4_OP_RENEW: 07368 if(!xdr_RENEW4args(xdrs, &objp->nfs_argop4_u.oprenew)) 07369 return FALSE; 07370 break; 07371 case NFS4_OP_RESTOREFH: 07372 break; 07373 case NFS4_OP_SAVEFH: 07374 break; 07375 case NFS4_OP_SECINFO: 07376 if(!xdr_SECINFO4args(xdrs, &objp->nfs_argop4_u.opsecinfo)) 07377 return FALSE; 07378 break; 07379 case NFS4_OP_SETATTR: 07380 if(!xdr_SETATTR4args(xdrs, &objp->nfs_argop4_u.opsetattr)) 07381 return FALSE; 07382 break; 07383 case NFS4_OP_SETCLIENTID: 07384 if(!xdr_SETCLIENTID4args(xdrs, &objp->nfs_argop4_u.opsetclientid)) 07385 return FALSE; 07386 break; 07387 case NFS4_OP_SETCLIENTID_CONFIRM: 07388 if(!xdr_SETCLIENTID_CONFIRM4args(xdrs, &objp->nfs_argop4_u.opsetclientid_confirm)) 07389 return FALSE; 07390 break; 07391 case NFS4_OP_VERIFY: 07392 if(!xdr_VERIFY4args(xdrs, &objp->nfs_argop4_u.opverify)) 07393 return FALSE; 07394 break; 07395 case NFS4_OP_WRITE: 07396 if(!xdr_WRITE4args(xdrs, &objp->nfs_argop4_u.opwrite)) 07397 return FALSE; 07398 break; 07399 case NFS4_OP_RELEASE_LOCKOWNER: 07400 if(!xdr_RELEASE_LOCKOWNER4args(xdrs, &objp->nfs_argop4_u.oprelease_lockowner)) 07401 return FALSE; 07402 break; 07403 case NFS4_OP_BACKCHANNEL_CTL: 07404 if(!xdr_BACKCHANNEL_CTL4args(xdrs, &objp->nfs_argop4_u.opbackchannel_ctl)) 07405 return FALSE; 07406 break; 07407 case NFS4_OP_BIND_CONN_TO_SESSION: 07408 if(!xdr_BIND_CONN_TO_SESSION4args(xdrs, &objp->nfs_argop4_u.opbind_conn_to_session)) 07409 return FALSE; 07410 break; 07411 case NFS4_OP_EXCHANGE_ID: 07412 if(!xdr_EXCHANGE_ID4args(xdrs, &objp->nfs_argop4_u.opexchange_id)) 07413 return FALSE; 07414 break; 07415 case NFS4_OP_CREATE_SESSION: 07416 if(!xdr_CREATE_SESSION4args(xdrs, &objp->nfs_argop4_u.opcreate_session)) 07417 return FALSE; 07418 break; 07419 case NFS4_OP_DESTROY_SESSION: 07420 if(!xdr_DESTROY_SESSION4args(xdrs, &objp->nfs_argop4_u.opdestroy_session)) 07421 return FALSE; 07422 break; 07423 case NFS4_OP_FREE_STATEID: 07424 if(!xdr_FREE_STATEID4args(xdrs, &objp->nfs_argop4_u.opfree_stateid)) 07425 return FALSE; 07426 break; 07427 case NFS4_OP_GET_DIR_DELEGATION: 07428 if(!xdr_GET_DIR_DELEGATION4args(xdrs, &objp->nfs_argop4_u.opget_dir_delegation)) 07429 return FALSE; 07430 break; 07431 case NFS4_OP_GETDEVICEINFO: 07432 if(!xdr_GETDEVICEINFO4args(xdrs, &objp->nfs_argop4_u.opgetdeviceinfo)) 07433 return FALSE; 07434 break; 07435 case NFS4_OP_GETDEVICELIST: 07436 if(!xdr_GETDEVICELIST4args(xdrs, &objp->nfs_argop4_u.opgetdevicelist)) 07437 return FALSE; 07438 break; 07439 case NFS4_OP_LAYOUTCOMMIT: 07440 if(!xdr_LAYOUTCOMMIT4args(xdrs, &objp->nfs_argop4_u.oplayoutcommit)) 07441 return FALSE; 07442 break; 07443 case NFS4_OP_LAYOUTGET: 07444 if(!xdr_LAYOUTGET4args(xdrs, &objp->nfs_argop4_u.oplayoutget)) 07445 return FALSE; 07446 break; 07447 case NFS4_OP_LAYOUTRETURN: 07448 if(!xdr_LAYOUTRETURN4args(xdrs, &objp->nfs_argop4_u.oplayoutreturn)) 07449 return FALSE; 07450 break; 07451 case NFS4_OP_SECINFO_NO_NAME: 07452 if(!xdr_SECINFO_NO_NAME4args(xdrs, &objp->nfs_argop4_u.opsecinfo_no_name)) 07453 return FALSE; 07454 break; 07455 case NFS4_OP_SEQUENCE: 07456 if(!xdr_SEQUENCE4args(xdrs, &objp->nfs_argop4_u.opsequence)) 07457 return FALSE; 07458 break; 07459 case NFS4_OP_SET_SSV: 07460 if(!xdr_SET_SSV4args(xdrs, &objp->nfs_argop4_u.opset_ssv)) 07461 return FALSE; 07462 break; 07463 case NFS4_OP_TEST_STATEID: 07464 if(!xdr_TEST_STATEID4args(xdrs, &objp->nfs_argop4_u.optest_stateid)) 07465 return FALSE; 07466 break; 07467 case NFS4_OP_WANT_DELEGATION: 07468 if(!xdr_WANT_DELEGATION4args(xdrs, &objp->nfs_argop4_u.opwant_delegation)) 07469 return FALSE; 07470 break; 07471 case NFS4_OP_DESTROY_CLIENTID: 07472 if(!xdr_DESTROY_CLIENTID4args(xdrs, &objp->nfs_argop4_u.opdestroy_clientid)) 07473 return FALSE; 07474 break; 07475 case NFS4_OP_RECLAIM_COMPLETE: 07476 if(!xdr_RECLAIM_COMPLETE4args(xdrs, &objp->nfs_argop4_u.opreclaim_complete)) 07477 return FALSE; 07478 break; 07479 case NFS4_OP_ILLEGAL: 07480 break; 07481 default: 07482 return FALSE; 07483 } 07484 return TRUE; 07485 } 07486 07487 static inline bool_t xdr_nfs_resop4(XDR * xdrs, nfs_resop4 * objp) 07488 { 07489 if(!xdr_nfs_opnum4(xdrs, &objp->resop)) 07490 return FALSE; 07491 switch (objp->resop) 07492 { 07493 case NFS4_OP_ACCESS: 07494 if(!xdr_ACCESS4res(xdrs, &objp->nfs_resop4_u.opaccess)) 07495 return FALSE; 07496 break; 07497 case NFS4_OP_CLOSE: 07498 if(!xdr_CLOSE4res(xdrs, &objp->nfs_resop4_u.opclose)) 07499 return FALSE; 07500 break; 07501 case NFS4_OP_COMMIT: 07502 if(!xdr_COMMIT4res(xdrs, &objp->nfs_resop4_u.opcommit)) 07503 return FALSE; 07504 break; 07505 case NFS4_OP_CREATE: 07506 if(!xdr_CREATE4res(xdrs, &objp->nfs_resop4_u.opcreate)) 07507 return FALSE; 07508 break; 07509 case NFS4_OP_DELEGPURGE: 07510 if(!xdr_DELEGPURGE4res(xdrs, &objp->nfs_resop4_u.opdelegpurge)) 07511 return FALSE; 07512 break; 07513 case NFS4_OP_DELEGRETURN: 07514 if(!xdr_DELEGRETURN4res(xdrs, &objp->nfs_resop4_u.opdelegreturn)) 07515 return FALSE; 07516 break; 07517 case NFS4_OP_GETATTR: 07518 if(!xdr_GETATTR4res(xdrs, &objp->nfs_resop4_u.opgetattr)) 07519 return FALSE; 07520 break; 07521 case NFS4_OP_GETFH: 07522 if(!xdr_GETFH4res(xdrs, &objp->nfs_resop4_u.opgetfh)) 07523 return FALSE; 07524 break; 07525 case NFS4_OP_LINK: 07526 if(!xdr_LINK4res(xdrs, &objp->nfs_resop4_u.oplink)) 07527 return FALSE; 07528 break; 07529 case NFS4_OP_LOCK: 07530 if(!xdr_LOCK4res(xdrs, &objp->nfs_resop4_u.oplock)) 07531 return FALSE; 07532 break; 07533 case NFS4_OP_LOCKT: 07534 if(!xdr_LOCKT4res(xdrs, &objp->nfs_resop4_u.oplockt)) 07535 return FALSE; 07536 break; 07537 case NFS4_OP_LOCKU: 07538 if(!xdr_LOCKU4res(xdrs, &objp->nfs_resop4_u.oplocku)) 07539 return FALSE; 07540 break; 07541 case NFS4_OP_LOOKUP: 07542 if(!xdr_LOOKUP4res(xdrs, &objp->nfs_resop4_u.oplookup)) 07543 return FALSE; 07544 break; 07545 case NFS4_OP_LOOKUPP: 07546 if(!xdr_LOOKUPP4res(xdrs, &objp->nfs_resop4_u.oplookupp)) 07547 return FALSE; 07548 break; 07549 case NFS4_OP_NVERIFY: 07550 if(!xdr_NVERIFY4res(xdrs, &objp->nfs_resop4_u.opnverify)) 07551 return FALSE; 07552 break; 07553 case NFS4_OP_OPEN: 07554 if(!xdr_OPEN4res(xdrs, &objp->nfs_resop4_u.opopen)) 07555 return FALSE; 07556 break; 07557 case NFS4_OP_OPENATTR: 07558 if(!xdr_OPENATTR4res(xdrs, &objp->nfs_resop4_u.opopenattr)) 07559 return FALSE; 07560 break; 07561 case NFS4_OP_OPEN_CONFIRM: 07562 if(!xdr_OPEN_CONFIRM4res(xdrs, &objp->nfs_resop4_u.opopen_confirm)) 07563 return FALSE; 07564 break; 07565 case NFS4_OP_OPEN_DOWNGRADE: 07566 if(!xdr_OPEN_DOWNGRADE4res(xdrs, &objp->nfs_resop4_u.opopen_downgrade)) 07567 return FALSE; 07568 break; 07569 case NFS4_OP_PUTFH: 07570 if(!xdr_PUTFH4res(xdrs, &objp->nfs_resop4_u.opputfh)) 07571 return FALSE; 07572 break; 07573 case NFS4_OP_PUTPUBFH: 07574 if(!xdr_PUTPUBFH4res(xdrs, &objp->nfs_resop4_u.opputpubfh)) 07575 return FALSE; 07576 break; 07577 case NFS4_OP_PUTROOTFH: 07578 if(!xdr_PUTROOTFH4res(xdrs, &objp->nfs_resop4_u.opputrootfh)) 07579 return FALSE; 07580 break; 07581 case NFS4_OP_READ: 07582 if(!xdr_READ4res(xdrs, &objp->nfs_resop4_u.opread)) 07583 return FALSE; 07584 break; 07585 case NFS4_OP_READDIR: 07586 if(!xdr_READDIR4res(xdrs, &objp->nfs_resop4_u.opreaddir)) 07587 return FALSE; 07588 break; 07589 case NFS4_OP_READLINK: 07590 if(!xdr_READLINK4res(xdrs, &objp->nfs_resop4_u.opreadlink)) 07591 return FALSE; 07592 break; 07593 case NFS4_OP_REMOVE: 07594 if(!xdr_REMOVE4res(xdrs, &objp->nfs_resop4_u.opremove)) 07595 return FALSE; 07596 break; 07597 case NFS4_OP_RENAME: 07598 if(!xdr_RENAME4res(xdrs, &objp->nfs_resop4_u.oprename)) 07599 return FALSE; 07600 break; 07601 case NFS4_OP_RENEW: 07602 if(!xdr_RENEW4res(xdrs, &objp->nfs_resop4_u.oprenew)) 07603 return FALSE; 07604 break; 07605 case NFS4_OP_RESTOREFH: 07606 if(!xdr_RESTOREFH4res(xdrs, &objp->nfs_resop4_u.oprestorefh)) 07607 return FALSE; 07608 break; 07609 case NFS4_OP_SAVEFH: 07610 if(!xdr_SAVEFH4res(xdrs, &objp->nfs_resop4_u.opsavefh)) 07611 return FALSE; 07612 break; 07613 case NFS4_OP_SECINFO: 07614 if(!xdr_SECINFO4res(xdrs, &objp->nfs_resop4_u.opsecinfo)) 07615 return FALSE; 07616 break; 07617 case NFS4_OP_SETATTR: 07618 if(!xdr_SETATTR4res(xdrs, &objp->nfs_resop4_u.opsetattr)) 07619 return FALSE; 07620 break; 07621 case NFS4_OP_SETCLIENTID: 07622 if(!xdr_SETCLIENTID4res(xdrs, &objp->nfs_resop4_u.opsetclientid)) 07623 return FALSE; 07624 break; 07625 case NFS4_OP_SETCLIENTID_CONFIRM: 07626 if(!xdr_SETCLIENTID_CONFIRM4res(xdrs, &objp->nfs_resop4_u.opsetclientid_confirm)) 07627 return FALSE; 07628 break; 07629 case NFS4_OP_VERIFY: 07630 if(!xdr_VERIFY4res(xdrs, &objp->nfs_resop4_u.opverify)) 07631 return FALSE; 07632 break; 07633 case NFS4_OP_WRITE: 07634 if(!xdr_WRITE4res(xdrs, &objp->nfs_resop4_u.opwrite)) 07635 return FALSE; 07636 break; 07637 case NFS4_OP_RELEASE_LOCKOWNER: 07638 if(!xdr_RELEASE_LOCKOWNER4res(xdrs, &objp->nfs_resop4_u.oprelease_lockowner)) 07639 return FALSE; 07640 break; 07641 case NFS4_OP_BACKCHANNEL_CTL: 07642 if(!xdr_BACKCHANNEL_CTL4res(xdrs, &objp->nfs_resop4_u.opbackchannel_ctl)) 07643 return FALSE; 07644 break; 07645 case NFS4_OP_BIND_CONN_TO_SESSION: 07646 if(!xdr_BIND_CONN_TO_SESSION4res(xdrs, &objp->nfs_resop4_u.opbind_conn_to_session)) 07647 return FALSE; 07648 break; 07649 case NFS4_OP_EXCHANGE_ID: 07650 if(!xdr_EXCHANGE_ID4res(xdrs, &objp->nfs_resop4_u.opexchange_id)) 07651 return FALSE; 07652 break; 07653 case NFS4_OP_CREATE_SESSION: 07654 if(!xdr_CREATE_SESSION4res(xdrs, &objp->nfs_resop4_u.opcreate_session)) 07655 return FALSE; 07656 break; 07657 case NFS4_OP_DESTROY_SESSION: 07658 if(!xdr_DESTROY_SESSION4res(xdrs, &objp->nfs_resop4_u.opdestroy_session)) 07659 return FALSE; 07660 break; 07661 case NFS4_OP_FREE_STATEID: 07662 if(!xdr_FREE_STATEID4res(xdrs, &objp->nfs_resop4_u.opfree_stateid)) 07663 return FALSE; 07664 break; 07665 case NFS4_OP_GET_DIR_DELEGATION: 07666 if(!xdr_GET_DIR_DELEGATION4res(xdrs, &objp->nfs_resop4_u.opget_dir_delegation)) 07667 return FALSE; 07668 break; 07669 case NFS4_OP_GETDEVICEINFO: 07670 if(!xdr_GETDEVICEINFO4res(xdrs, &objp->nfs_resop4_u.opgetdeviceinfo)) 07671 return FALSE; 07672 break; 07673 case NFS4_OP_GETDEVICELIST: 07674 if(!xdr_GETDEVICELIST4res(xdrs, &objp->nfs_resop4_u.opgetdevicelist)) 07675 return FALSE; 07676 break; 07677 case NFS4_OP_LAYOUTCOMMIT: 07678 if(!xdr_LAYOUTCOMMIT4res(xdrs, &objp->nfs_resop4_u.oplayoutcommit)) 07679 return FALSE; 07680 break; 07681 case NFS4_OP_LAYOUTGET: 07682 if(!xdr_LAYOUTGET4res(xdrs, &objp->nfs_resop4_u.oplayoutget)) 07683 return FALSE; 07684 break; 07685 case NFS4_OP_LAYOUTRETURN: 07686 if(!xdr_LAYOUTRETURN4res(xdrs, &objp->nfs_resop4_u.oplayoutreturn)) 07687 return FALSE; 07688 break; 07689 case NFS4_OP_SECINFO_NO_NAME: 07690 if(!xdr_SECINFO_NO_NAME4res(xdrs, &objp->nfs_resop4_u.opsecinfo_no_name)) 07691 return FALSE; 07692 break; 07693 case NFS4_OP_SEQUENCE: 07694 if(!xdr_SEQUENCE4res(xdrs, &objp->nfs_resop4_u.opsequence)) 07695 return FALSE; 07696 break; 07697 case NFS4_OP_SET_SSV: 07698 if(!xdr_SET_SSV4res(xdrs, &objp->nfs_resop4_u.opset_ssv)) 07699 return FALSE; 07700 break; 07701 case NFS4_OP_TEST_STATEID: 07702 if(!xdr_TEST_STATEID4res(xdrs, &objp->nfs_resop4_u.optest_stateid)) 07703 return FALSE; 07704 break; 07705 case NFS4_OP_WANT_DELEGATION: 07706 if(!xdr_WANT_DELEGATION4res(xdrs, &objp->nfs_resop4_u.opwant_delegation)) 07707 return FALSE; 07708 break; 07709 case NFS4_OP_DESTROY_CLIENTID: 07710 if(!xdr_DESTROY_CLIENTID4res(xdrs, &objp->nfs_resop4_u.opdestroy_clientid)) 07711 return FALSE; 07712 break; 07713 case NFS4_OP_RECLAIM_COMPLETE: 07714 if(!xdr_RECLAIM_COMPLETE4res(xdrs, &objp->nfs_resop4_u.opreclaim_complete)) 07715 return FALSE; 07716 break; 07717 case NFS4_OP_ILLEGAL: 07718 if(!xdr_ILLEGAL4res(xdrs, &objp->nfs_resop4_u.opillegal)) 07719 return FALSE; 07720 break; 07721 default: 07722 return FALSE; 07723 } 07724 return TRUE; 07725 } 07726 07727 static inline bool_t xdr_COMPOUND4args(XDR * xdrs, COMPOUND4args * objp) 07728 { 07729 if(!xdr_utf8str_cs(xdrs, &objp->tag)) 07730 return FALSE; 07731 if(!inline_xdr_u_int32_t(xdrs, &objp->minorversion)) 07732 return FALSE; 07733 if(!xdr_array 07734 (xdrs, (char **)&objp->argarray.argarray_val, 07735 (u_int *) & objp->argarray.argarray_len, ~0, sizeof(nfs_argop4), 07736 (xdrproc_t) xdr_nfs_argop4)) 07737 return FALSE; 07738 return TRUE; 07739 } 07740 07741 static inline bool_t xdr_COMPOUND4res(XDR * xdrs, COMPOUND4res * objp) 07742 { 07743 if(!xdr_nfsstat4(xdrs, &objp->status)) 07744 return FALSE; 07745 if(!xdr_utf8str_cs(xdrs, &objp->tag)) 07746 return FALSE; 07747 if(!xdr_array 07748 (xdrs, (char **)&objp->resarray.resarray_val, 07749 (u_int *) & objp->resarray.resarray_len, ~0, sizeof(nfs_resop4), 07750 (xdrproc_t) xdr_nfs_resop4)) 07751 return FALSE; 07752 return TRUE; 07753 } 07754 07755 static inline bool_t xdr_CB_GETATTR4args(XDR * xdrs, CB_GETATTR4args * objp) 07756 { 07757 if(!xdr_nfs_fh4(xdrs, &objp->fh)) 07758 return FALSE; 07759 if(!xdr_bitmap4(xdrs, &objp->attr_request)) 07760 return FALSE; 07761 return TRUE; 07762 } 07763 07764 static inline bool_t xdr_CB_GETATTR4resok(XDR * xdrs, CB_GETATTR4resok * objp) 07765 { 07766 if(!xdr_fattr4(xdrs, &objp->obj_attributes)) 07767 return FALSE; 07768 return TRUE; 07769 } 07770 07771 static inline bool_t xdr_CB_GETATTR4res(XDR * xdrs, CB_GETATTR4res * objp) 07772 { 07773 if(!xdr_nfsstat4(xdrs, &objp->status)) 07774 return FALSE; 07775 switch (objp->status) 07776 { 07777 case NFS4_OK: 07778 if(!xdr_CB_GETATTR4resok(xdrs, &objp->CB_GETATTR4res_u.resok4)) 07779 return FALSE; 07780 break; 07781 default: 07782 break; 07783 } 07784 return TRUE; 07785 } 07786 07787 static inline bool_t xdr_CB_RECALL4args(XDR * xdrs, CB_RECALL4args * objp) 07788 { 07789 if(!xdr_stateid4(xdrs, &objp->stateid)) 07790 return FALSE; 07791 if(!inline_xdr_bool(xdrs, &objp->truncate)) 07792 return FALSE; 07793 if(!xdr_nfs_fh4(xdrs, &objp->fh)) 07794 return FALSE; 07795 return TRUE; 07796 } 07797 07798 static inline bool_t xdr_CB_RECALL4res(XDR * xdrs, CB_RECALL4res * objp) 07799 { 07800 if(!xdr_nfsstat4(xdrs, &objp->status)) 07801 return FALSE; 07802 return TRUE; 07803 } 07804 07805 static inline bool_t xdr_CB_ILLEGAL4res(XDR * xdrs, CB_ILLEGAL4res * objp) 07806 { 07807 if(!xdr_nfsstat4(xdrs, &objp->status)) 07808 return FALSE; 07809 return TRUE; 07810 } 07811 07812 static inline bool_t xdr_layoutrecall_type4(XDR * xdrs, layoutrecall_type4 * objp) 07813 { 07814 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 07815 return FALSE; 07816 return TRUE; 07817 } 07818 07819 static inline bool_t xdr_layoutrecall_file4(XDR * xdrs, layoutrecall_file4 * objp) 07820 { 07821 if(!xdr_nfs_fh4(xdrs, &objp->lor_fh)) 07822 return FALSE; 07823 if(!xdr_offset4(xdrs, &objp->lor_offset)) 07824 return FALSE; 07825 if(!xdr_length4(xdrs, &objp->lor_length)) 07826 return FALSE; 07827 if(!xdr_stateid4(xdrs, &objp->lor_stateid)) 07828 return FALSE; 07829 return TRUE; 07830 } 07831 07832 static inline bool_t xdr_layoutrecall4(XDR * xdrs, layoutrecall4 * objp) 07833 { 07834 if(!xdr_layoutrecall_type4(xdrs, &objp->lor_recalltype)) 07835 return FALSE; 07836 switch (objp->lor_recalltype) 07837 { 07838 case LAYOUTRECALL4_FILE: 07839 if(!xdr_layoutrecall_file4(xdrs, &objp->layoutrecall4_u.lor_layout)) 07840 return FALSE; 07841 break; 07842 case LAYOUTRECALL4_FSID: 07843 if(!xdr_fsid4(xdrs, &objp->layoutrecall4_u.lor_fsid)) 07844 return FALSE; 07845 break; 07846 case LAYOUTRECALL4_ALL: 07847 break; 07848 default: 07849 return FALSE; 07850 } 07851 return TRUE; 07852 } 07853 07854 static inline bool_t xdr_CB_LAYOUTRECALL4args(XDR * xdrs, CB_LAYOUTRECALL4args * objp) 07855 { 07856 if(!xdr_layouttype4(xdrs, &objp->clora_type)) 07857 return FALSE; 07858 if(!xdr_layoutiomode4(xdrs, &objp->clora_iomode)) 07859 return FALSE; 07860 if(!inline_xdr_bool(xdrs, &objp->clora_changed)) 07861 return FALSE; 07862 if(!xdr_layoutrecall4(xdrs, &objp->clora_recall)) 07863 return FALSE; 07864 return TRUE; 07865 } 07866 07867 static inline bool_t xdr_CB_LAYOUTRECALL4res(XDR * xdrs, CB_LAYOUTRECALL4res * objp) 07868 { 07869 if(!xdr_nfsstat4(xdrs, &objp->clorr_status)) 07870 return FALSE; 07871 return TRUE; 07872 } 07873 07874 static inline bool_t xdr_notify_type4(XDR * xdrs, notify_type4 * objp) 07875 { 07876 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 07877 return FALSE; 07878 return TRUE; 07879 } 07880 07881 static inline bool_t xdr_notify_entry4(XDR * xdrs, notify_entry4 * objp) 07882 { 07883 if(!xdr_component4(xdrs, &objp->ne_file)) 07884 return FALSE; 07885 if(!xdr_fattr4(xdrs, &objp->ne_attrs)) 07886 return FALSE; 07887 return TRUE; 07888 } 07889 07890 static inline bool_t xdr_prev_entry4(XDR * xdrs, prev_entry4 * objp) 07891 { 07892 if(!xdr_notify_entry4(xdrs, &objp->pe_prev_entry)) 07893 return FALSE; 07894 if(!xdr_nfs_cookie4(xdrs, &objp->pe_prev_entry_cookie)) 07895 return FALSE; 07896 return TRUE; 07897 } 07898 07899 static inline bool_t xdr_notify_remove4(XDR * xdrs, notify_remove4 * objp) 07900 { 07901 if(!xdr_notify_entry4(xdrs, &objp->nrm_old_entry)) 07902 return FALSE; 07903 if(!xdr_nfs_cookie4(xdrs, &objp->nrm_old_entry_cookie)) 07904 return FALSE; 07905 return TRUE; 07906 } 07907 07908 static inline bool_t xdr_notify_add4(XDR * xdrs, notify_add4 * objp) 07909 { 07910 if(!xdr_array 07911 (xdrs, (char **)&objp->nad_old_entry.nad_old_entry_val, 07912 (u_int *) & objp->nad_old_entry.nad_old_entry_len, 1, sizeof(notify_remove4), 07913 (xdrproc_t) xdr_notify_remove4)) 07914 return FALSE; 07915 if(!xdr_notify_entry4(xdrs, &objp->nad_new_entry)) 07916 return FALSE; 07917 if(!xdr_array 07918 (xdrs, (char **)&objp->nad_new_entry_cookie.nad_new_entry_cookie_val, 07919 (u_int *) & objp->nad_new_entry_cookie.nad_new_entry_cookie_len, 1, 07920 sizeof(nfs_cookie4), (xdrproc_t) xdr_nfs_cookie4)) 07921 return FALSE; 07922 if(!xdr_array 07923 (xdrs, (char **)&objp->nad_prev_entry.nad_prev_entry_val, 07924 (u_int *) & objp->nad_prev_entry.nad_prev_entry_len, 1, sizeof(prev_entry4), 07925 (xdrproc_t) xdr_prev_entry4)) 07926 return FALSE; 07927 if(!inline_xdr_bool(xdrs, &objp->nad_last_entry)) 07928 return FALSE; 07929 return TRUE; 07930 } 07931 07932 static inline bool_t xdr_notify_attr4(XDR * xdrs, notify_attr4 * objp) 07933 { 07934 if(!xdr_notify_entry4(xdrs, &objp->na_changed_entry)) 07935 return FALSE; 07936 return TRUE; 07937 } 07938 07939 static inline bool_t xdr_notify_rename4(XDR * xdrs, notify_rename4 * objp) 07940 { 07941 if(!xdr_notify_remove4(xdrs, &objp->nrn_old_entry)) 07942 return FALSE; 07943 if(!xdr_notify_add4(xdrs, &objp->nrn_new_entry)) 07944 return FALSE; 07945 return TRUE; 07946 } 07947 07948 static inline bool_t xdr_notify_verifier4(XDR * xdrs, notify_verifier4 * objp) 07949 { 07950 if(!xdr_verifier4(xdrs, objp->nv_old_cookieverf)) 07951 return FALSE; 07952 if(!xdr_verifier4(xdrs, objp->nv_new_cookieverf)) 07953 return FALSE; 07954 return TRUE; 07955 } 07956 07957 static inline bool_t xdr_notifylist4(XDR * xdrs, notifylist4 * objp) 07958 { 07959 if(!inline_xdr_bytes 07960 (xdrs, (char **)&objp->notifylist4_val, (u_int *) & objp->notifylist4_len, ~0)) 07961 return FALSE; 07962 return TRUE; 07963 } 07964 07965 static inline bool_t xdr_notify4(XDR * xdrs, notify4 * objp) 07966 { 07967 if(!xdr_bitmap4(xdrs, &objp->notify_mask)) 07968 return FALSE; 07969 if(!xdr_notifylist4(xdrs, &objp->notify_vals)) 07970 return FALSE; 07971 return TRUE; 07972 } 07973 07974 static inline bool_t xdr_CB_NOTIFY4args(XDR * xdrs, CB_NOTIFY4args * objp) 07975 { 07976 if(!xdr_stateid4(xdrs, &objp->cna_stateid)) 07977 return FALSE; 07978 if(!xdr_nfs_fh4(xdrs, &objp->cna_fh)) 07979 return FALSE; 07980 if(!xdr_array 07981 (xdrs, (char **)&objp->cna_changes.cna_changes_val, 07982 (u_int *) & objp->cna_changes.cna_changes_len, ~0, sizeof(notify4), 07983 (xdrproc_t) xdr_notify4)) 07984 return FALSE; 07985 return TRUE; 07986 } 07987 07988 static inline bool_t xdr_CB_NOTIFY4res(XDR * xdrs, CB_NOTIFY4res * objp) 07989 { 07990 if(!xdr_nfsstat4(xdrs, &objp->cnr_status)) 07991 return FALSE; 07992 return TRUE; 07993 } 07994 07995 static inline bool_t xdr_CB_PUSH_DELEG4args(XDR * xdrs, CB_PUSH_DELEG4args * objp) 07996 { 07997 if(!xdr_nfs_fh4(xdrs, &objp->cpda_fh)) 07998 return FALSE; 07999 if(!xdr_open_delegation4(xdrs, &objp->cpda_delegation)) 08000 return FALSE; 08001 return TRUE; 08002 } 08003 08004 static inline bool_t xdr_CB_PUSH_DELEG4res(XDR * xdrs, CB_PUSH_DELEG4res * objp) 08005 { 08006 if(!xdr_nfsstat4(xdrs, &objp->cpdr_status)) 08007 return FALSE; 08008 return TRUE; 08009 } 08010 08011 static inline bool_t xdr_CB_RECALL_ANY4args(XDR * xdrs, CB_RECALL_ANY4args * objp) 08012 { 08013 if(!inline_xdr_u_int32_t(xdrs, &objp->craa_objects_to_keep)) 08014 return FALSE; 08015 if(!xdr_bitmap4(xdrs, &objp->craa_type_mask)) 08016 return FALSE; 08017 return TRUE; 08018 } 08019 08020 static inline bool_t xdr_CB_RECALL_ANY4res(XDR * xdrs, CB_RECALL_ANY4res * objp) 08021 { 08022 if(!xdr_nfsstat4(xdrs, &objp->crar_status)) 08023 return FALSE; 08024 return TRUE; 08025 } 08026 08027 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(XDR * xdrs, CB_RECALLABLE_OBJ_AVAIL4args * objp) 08028 { 08029 if(!xdr_CB_RECALL_ANY4args(xdrs, objp)) 08030 return FALSE; 08031 return TRUE; 08032 } 08033 08034 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(XDR * xdrs, CB_RECALLABLE_OBJ_AVAIL4res * objp) 08035 { 08036 if(!xdr_nfsstat4(xdrs, &objp->croa_status)) 08037 return FALSE; 08038 return TRUE; 08039 } 08040 08041 static inline bool_t xdr_CB_RECALL_SLOT4args(XDR * xdrs, CB_RECALL_SLOT4args * objp) 08042 { 08043 if(!xdr_slotid4(xdrs, &objp->rsa_target_highest_slotid)) 08044 return FALSE; 08045 return TRUE; 08046 } 08047 08048 static inline bool_t xdr_CB_RECALL_SLOT4res(XDR * xdrs, CB_RECALL_SLOT4res * objp) 08049 { 08050 if(!xdr_nfsstat4(xdrs, &objp->rsr_status)) 08051 return FALSE; 08052 return TRUE; 08053 } 08054 08055 static inline bool_t xdr_referring_call4(XDR * xdrs, referring_call4 * objp) 08056 { 08057 if(!xdr_sequenceid4(xdrs, &objp->rc_sequenceid)) 08058 return FALSE; 08059 if(!xdr_slotid4(xdrs, &objp->rc_slotid)) 08060 return FALSE; 08061 return TRUE; 08062 } 08063 08064 static inline bool_t xdr_referring_call_list4(XDR * xdrs, referring_call_list4 * objp) 08065 { 08066 if(!xdr_sessionid4(xdrs, objp->rcl_sessionid)) 08067 return FALSE; 08068 if(!xdr_array 08069 (xdrs, (char **)&objp->rcl_referring_calls.rcl_referring_calls_val, 08070 (u_int *) & objp->rcl_referring_calls.rcl_referring_calls_len, ~0, 08071 sizeof(referring_call4), (xdrproc_t) xdr_referring_call4)) 08072 return FALSE; 08073 return TRUE; 08074 } 08075 08076 static inline bool_t xdr_CB_SEQUENCE4args(XDR * xdrs, CB_SEQUENCE4args * objp) 08077 { 08078 if(!xdr_sessionid4(xdrs, objp->csa_sessionid)) 08079 return FALSE; 08080 if(!xdr_sequenceid4(xdrs, &objp->csa_sequenceid)) 08081 return FALSE; 08082 if(!xdr_slotid4(xdrs, &objp->csa_slotid)) 08083 return FALSE; 08084 if(!xdr_slotid4(xdrs, &objp->csa_highest_slotid)) 08085 return FALSE; 08086 if(!inline_xdr_bool(xdrs, &objp->csa_cachethis)) 08087 return FALSE; 08088 if(!xdr_array 08089 (xdrs, (char **)&objp->csa_referring_call_lists.csa_referring_call_lists_val, 08090 (u_int *) & objp->csa_referring_call_lists.csa_referring_call_lists_len, ~0, 08091 sizeof(referring_call_list4), (xdrproc_t) xdr_referring_call_list4)) 08092 return FALSE; 08093 return TRUE; 08094 } 08095 08096 static inline bool_t xdr_CB_SEQUENCE4resok(XDR * xdrs, CB_SEQUENCE4resok * objp) 08097 { 08098 if(!xdr_sessionid4(xdrs, objp->csr_sessionid)) 08099 return FALSE; 08100 if(!xdr_sequenceid4(xdrs, &objp->csr_sequenceid)) 08101 return FALSE; 08102 if(!xdr_slotid4(xdrs, &objp->csr_slotid)) 08103 return FALSE; 08104 if(!xdr_slotid4(xdrs, &objp->csr_highest_slotid)) 08105 return FALSE; 08106 if(!xdr_slotid4(xdrs, &objp->csr_target_highest_slotid)) 08107 return FALSE; 08108 return TRUE; 08109 } 08110 08111 static inline bool_t xdr_CB_SEQUENCE4res(XDR * xdrs, CB_SEQUENCE4res * objp) 08112 { 08113 if(!xdr_nfsstat4(xdrs, &objp->csr_status)) 08114 return FALSE; 08115 switch (objp->csr_status) 08116 { 08117 case NFS4_OK: 08118 if(!xdr_CB_SEQUENCE4resok(xdrs, &objp->CB_SEQUENCE4res_u.csr_resok4)) 08119 return FALSE; 08120 break; 08121 default: 08122 break; 08123 } 08124 return TRUE; 08125 } 08126 08127 static inline bool_t xdr_CB_WANTS_CANCELLED4args(XDR * xdrs, CB_WANTS_CANCELLED4args * objp) 08128 { 08129 if(!inline_xdr_bool(xdrs, &objp->cwca_contended_wants_cancelled)) 08130 return FALSE; 08131 if(!inline_xdr_bool(xdrs, &objp->cwca_resourced_wants_cancelled)) 08132 return FALSE; 08133 return TRUE; 08134 } 08135 08136 static inline bool_t xdr_CB_WANTS_CANCELLED4res(XDR * xdrs, CB_WANTS_CANCELLED4res * objp) 08137 { 08138 if(!xdr_nfsstat4(xdrs, &objp->cwcr_status)) 08139 return FALSE; 08140 return TRUE; 08141 } 08142 08143 static inline bool_t xdr_CB_NOTIFY_LOCK4args(XDR * xdrs, CB_NOTIFY_LOCK4args * objp) 08144 { 08145 if(!xdr_nfs_fh4(xdrs, &objp->cnla_fh)) 08146 return FALSE; 08147 if(!xdr_lock_owner4(xdrs, &objp->cnla_lock_owner)) 08148 return FALSE; 08149 return TRUE; 08150 } 08151 08152 static inline bool_t xdr_CB_NOTIFY_LOCK4res(XDR * xdrs, CB_NOTIFY_LOCK4res * objp) 08153 { 08154 if(!xdr_nfsstat4(xdrs, &objp->cnlr_status)) 08155 return FALSE; 08156 return TRUE; 08157 } 08158 08159 static inline bool_t xdr_notify_deviceid_type4(XDR * xdrs, notify_deviceid_type4 * objp) 08160 { 08161 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 08162 return FALSE; 08163 return TRUE; 08164 } 08165 08166 static inline bool_t xdr_notify_deviceid_delete4(XDR * xdrs, notify_deviceid_delete4 * objp) 08167 { 08168 if(!xdr_layouttype4(xdrs, &objp->ndd_layouttype)) 08169 return FALSE; 08170 if(!xdr_deviceid4(xdrs, objp->ndd_deviceid)) 08171 return FALSE; 08172 return TRUE; 08173 } 08174 08175 static inline bool_t xdr_notify_deviceid_change4(XDR * xdrs, notify_deviceid_change4 * objp) 08176 { 08177 if(!xdr_layouttype4(xdrs, &objp->ndc_layouttype)) 08178 return FALSE; 08179 if(!xdr_deviceid4(xdrs, objp->ndc_deviceid)) 08180 return FALSE; 08181 if(!inline_xdr_bool(xdrs, &objp->ndc_immediate)) 08182 return FALSE; 08183 return TRUE; 08184 } 08185 08186 static inline bool_t xdr_CB_NOTIFY_DEVICEID4args(XDR * xdrs, CB_NOTIFY_DEVICEID4args * objp) 08187 { 08188 if(!xdr_array 08189 (xdrs, (char **)&objp->cnda_changes.cnda_changes_val, 08190 (u_int *) & objp->cnda_changes.cnda_changes_len, ~0, sizeof(notify4), 08191 (xdrproc_t) xdr_notify4)) 08192 return FALSE; 08193 return TRUE; 08194 } 08195 08196 static inline bool_t xdr_CB_NOTIFY_DEVICEID4res(XDR * xdrs, CB_NOTIFY_DEVICEID4res * objp) 08197 { 08198 if(!xdr_nfsstat4(xdrs, &objp->cndr_status)) 08199 return FALSE; 08200 return TRUE; 08201 } 08202 08203 /* Callback operations new to NFSv4.1 */ 08204 08205 static inline bool_t xdr_nfs_cb_opnum4(XDR * xdrs, nfs_cb_opnum4 * objp) 08206 { 08207 if(!inline_xdr_enum(xdrs, (enum_t *) objp)) 08208 return FALSE; 08209 return TRUE; 08210 } 08211 08212 static inline bool_t xdr_nfs_cb_argop4(XDR * xdrs, nfs_cb_argop4 * objp) 08213 { 08214 if(!inline_xdr_u_int(xdrs, &objp->argop)) 08215 return FALSE; 08216 switch (objp->argop) 08217 { 08218 case NFS4_OP_CB_GETATTR: 08219 if(!xdr_CB_GETATTR4args(xdrs, &objp->nfs_cb_argop4_u.opcbgetattr)) 08220 return FALSE; 08221 break; 08222 case NFS4_OP_CB_RECALL: 08223 if(!xdr_CB_RECALL4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall)) 08224 return FALSE; 08225 break; 08226 case NFS4_OP_CB_LAYOUTRECALL: 08227 if(!xdr_CB_LAYOUTRECALL4args(xdrs, &objp->nfs_cb_argop4_u.opcblayoutrecall)) 08228 return FALSE; 08229 break; 08230 case NFS4_OP_CB_NOTIFY: 08231 if(!xdr_CB_NOTIFY4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify)) 08232 return FALSE; 08233 break; 08234 case NFS4_OP_CB_PUSH_DELEG: 08235 if(!xdr_CB_PUSH_DELEG4args(xdrs, &objp->nfs_cb_argop4_u.opcbpush_deleg)) 08236 return FALSE; 08237 break; 08238 case NFS4_OP_CB_RECALL_ANY: 08239 if(!xdr_CB_RECALL_ANY4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall_any)) 08240 return FALSE; 08241 break; 08242 case NFS4_OP_CB_RECALLABLE_OBJ_AVAIL: 08243 if(!xdr_CB_RECALLABLE_OBJ_AVAIL4args 08244 (xdrs, &objp->nfs_cb_argop4_u.opcbrecallable_obj_avail)) 08245 return FALSE; 08246 break; 08247 case NFS4_OP_CB_RECALL_SLOT: 08248 if(!xdr_CB_RECALL_SLOT4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall_slot)) 08249 return FALSE; 08250 break; 08251 case NFS4_OP_CB_SEQUENCE: 08252 if(!xdr_CB_SEQUENCE4args(xdrs, &objp->nfs_cb_argop4_u.opcbsequence)) 08253 return FALSE; 08254 break; 08255 case NFS4_OP_CB_WANTS_CANCELLED: 08256 if(!xdr_CB_WANTS_CANCELLED4args(xdrs, &objp->nfs_cb_argop4_u.opcbwants_cancelled)) 08257 return FALSE; 08258 break; 08259 case NFS4_OP_CB_NOTIFY_LOCK: 08260 if(!xdr_CB_NOTIFY_LOCK4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify_lock)) 08261 return FALSE; 08262 break; 08263 case NFS4_OP_CB_NOTIFY_DEVICEID: 08264 if(!xdr_CB_NOTIFY_DEVICEID4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify_deviceid)) 08265 return FALSE; 08266 break; 08267 case NFS4_OP_CB_ILLEGAL: 08268 break; 08269 default: 08270 return FALSE; 08271 } 08272 return TRUE; 08273 } 08274 08275 static inline bool_t xdr_nfs_cb_resop4(XDR * xdrs, nfs_cb_resop4 * objp) 08276 { 08277 if(!inline_xdr_u_int(xdrs, &objp->resop)) 08278 return FALSE; 08279 switch (objp->resop) 08280 { 08281 case NFS4_OP_CB_GETATTR: 08282 if(!xdr_CB_GETATTR4res(xdrs, &objp->nfs_cb_resop4_u.opcbgetattr)) 08283 return FALSE; 08284 break; 08285 case NFS4_OP_CB_RECALL: 08286 if(!xdr_CB_RECALL4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall)) 08287 return FALSE; 08288 break; 08289 case NFS4_OP_CB_LAYOUTRECALL: 08290 if(!xdr_CB_LAYOUTRECALL4res(xdrs, &objp->nfs_cb_resop4_u.opcblayoutrecall)) 08291 return FALSE; 08292 break; 08293 case NFS4_OP_CB_NOTIFY: 08294 if(!xdr_CB_NOTIFY4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify)) 08295 return FALSE; 08296 break; 08297 case NFS4_OP_CB_PUSH_DELEG: 08298 if(!xdr_CB_PUSH_DELEG4res(xdrs, &objp->nfs_cb_resop4_u.opcbpush_deleg)) 08299 return FALSE; 08300 break; 08301 case NFS4_OP_CB_RECALL_ANY: 08302 if(!xdr_CB_RECALL_ANY4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall_any)) 08303 return FALSE; 08304 break; 08305 case NFS4_OP_CB_RECALLABLE_OBJ_AVAIL: 08306 if(!xdr_CB_RECALLABLE_OBJ_AVAIL4res 08307 (xdrs, &objp->nfs_cb_resop4_u.opcbrecallable_obj_avail)) 08308 return FALSE; 08309 break; 08310 case NFS4_OP_CB_RECALL_SLOT: 08311 if(!xdr_CB_RECALL_SLOT4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall_slot)) 08312 return FALSE; 08313 break; 08314 case NFS4_OP_CB_SEQUENCE: 08315 if(!xdr_CB_SEQUENCE4res(xdrs, &objp->nfs_cb_resop4_u.opcbsequence)) 08316 return FALSE; 08317 break; 08318 case NFS4_OP_CB_WANTS_CANCELLED: 08319 if(!xdr_CB_WANTS_CANCELLED4res(xdrs, &objp->nfs_cb_resop4_u.opcbwants_cancelled)) 08320 return FALSE; 08321 break; 08322 case NFS4_OP_CB_NOTIFY_LOCK: 08323 if(!xdr_CB_NOTIFY_LOCK4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify_lock)) 08324 return FALSE; 08325 break; 08326 case NFS4_OP_CB_NOTIFY_DEVICEID: 08327 if(!xdr_CB_NOTIFY_DEVICEID4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify_deviceid)) 08328 return FALSE; 08329 break; 08330 case NFS4_OP_CB_ILLEGAL: 08331 if(!xdr_CB_ILLEGAL4res(xdrs, &objp->nfs_cb_resop4_u.opcbillegal)) 08332 return FALSE; 08333 break; 08334 default: 08335 return FALSE; 08336 } 08337 return TRUE; 08338 } 08339 08340 static inline bool_t xdr_CB_COMPOUND4args(XDR * xdrs, CB_COMPOUND4args * objp) 08341 { 08342 if(!xdr_utf8str_cs(xdrs, &objp->tag)) 08343 return FALSE; 08344 if(!inline_xdr_u_int32_t(xdrs, &objp->minorversion)) 08345 return FALSE; 08346 if(!inline_xdr_u_int32_t(xdrs, &objp->callback_ident)) 08347 return FALSE; 08348 if(!xdr_array 08349 (xdrs, (char **)&objp->argarray.argarray_val, 08350 (u_int *) & objp->argarray.argarray_len, ~0, sizeof(nfs_cb_argop4), 08351 (xdrproc_t) xdr_nfs_cb_argop4)) 08352 return FALSE; 08353 return TRUE; 08354 } 08355 08356 static inline bool_t xdr_CB_COMPOUND4res(XDR * xdrs, CB_COMPOUND4res * objp) 08357 { 08358 if(!xdr_nfsstat4(xdrs, &objp->status)) 08359 return FALSE; 08360 if(!xdr_utf8str_cs(xdrs, &objp->tag)) 08361 return FALSE; 08362 if(!xdr_array 08363 (xdrs, (char **)&objp->resarray.resarray_val, 08364 (u_int *) & objp->resarray.resarray_len, ~0, sizeof(nfs_cb_resop4), 08365 (xdrproc_t) xdr_nfs_cb_resop4)) 08366 return FALSE; 08367 return TRUE; 08368 } 08369 08370 08371 #if 0 08372 static inline bool_t xdr_nfs_ftype4(XDR *, nfs_ftype4 *); 08373 static inline bool_t xdr_nfsstat4(XDR *, nfsstat4 *); 08374 static inline bool_t xdr_attrlist4(XDR *, attrlist4 *); 08375 static inline bool_t xdr_bitmap4(XDR *, bitmap4 *); 08376 static inline bool_t xdr_changeid4(XDR *, changeid4 *); 08377 static inline bool_t xdr_clientid4(XDR *, clientid4 *); 08378 static inline bool_t xdr_count4(XDR *, count4 *); 08379 static inline bool_t xdr_length4(XDR *, length4 *); 08380 static inline bool_t xdr_mode4(XDR *, mode4 *); 08381 static inline bool_t xdr_nfs_cookie4(XDR *, nfs_cookie4 *); 08382 static inline bool_t xdr_nfs_fh4(XDR *, nfs_fh4 *); 08383 static inline bool_t xdr_offset4(XDR *, offset4 *); 08384 static inline bool_t xdr_qop4(XDR *, qop4 *); 08385 static inline bool_t xdr_sec_oid4(XDR *, sec_oid4 *); 08386 static inline bool_t xdr_sequenceid4(XDR *, sequenceid4 *); 08387 static inline bool_t xdr_seqid4(XDR *, seqid4 *); 08388 static inline bool_t xdr_sessionid4(XDR *, sessionid4); 08389 static inline bool_t xdr_slotid4(XDR *, slotid4 *); 08390 static inline bool_t xdr_utf8string(XDR *, utf8string *); 08391 static inline bool_t xdr_utf8str_cis(XDR *, utf8str_cis *); 08392 static inline bool_t xdr_utf8str_cs(XDR *, utf8str_cs *); 08393 static inline bool_t xdr_utf8str_mixed(XDR *, utf8str_mixed *); 08394 static inline bool_t xdr_component4(XDR *, component4 *); 08395 static inline bool_t xdr_linktext4(XDR *, linktext4 *); 08396 static inline bool_t xdr_pathname4(XDR *, pathname4 *); 08397 static inline bool_t xdr_verifier4(XDR *, verifier4); 08398 static inline bool_t xdr_nfstime4(XDR *, nfstime4 *); 08399 static inline bool_t xdr_time_how4(XDR *, time_how4 *); 08400 static inline bool_t xdr_settime4(XDR *, settime4 *); 08401 static inline bool_t xdr_nfs_lease4(XDR *, nfs_lease4 *); 08402 static inline bool_t xdr_fsid4(XDR *, fsid4 *); 08403 static inline bool_t xdr_change_policy4(XDR *, change_policy4 *); 08404 static inline bool_t xdr_fs_location4(XDR *, fs_location4 *); 08405 static inline bool_t xdr_fs_locations4(XDR *, fs_locations4 *); 08406 static inline bool_t xdr_acetype4(XDR *, acetype4 *); 08407 static inline bool_t xdr_aceflag4(XDR *, aceflag4 *); 08408 static inline bool_t xdr_acemask4(XDR *, acemask4 *); 08409 static inline bool_t xdr_nfsace4(XDR *, nfsace4 *); 08410 static inline bool_t xdr_aclflag4(XDR *, aclflag4 *); 08411 static inline bool_t xdr_nfsacl41(XDR *, nfsacl41 *); 08412 static inline bool_t xdr_mode_masked4(XDR *, mode_masked4 *); 08413 static inline bool_t xdr_specdata4(XDR *, specdata4 *); 08414 static inline bool_t xdr_netaddr4(XDR *, netaddr4 *); 08415 static inline bool_t xdr_nfs_impl_id4(XDR *, nfs_impl_id4 *); 08416 static inline bool_t xdr_stateid4(XDR *, stateid4 *); 08417 static inline bool_t xdr_layouttype4(XDR *, layouttype4 *); 08418 static inline bool_t xdr_layout_content4(XDR *, layout_content4 *); 08419 static inline bool_t xdr_layouthint4(XDR *, layouthint4 *); 08420 static inline bool_t xdr_layoutiomode4(XDR *, layoutiomode4 *); 08421 static inline bool_t xdr_layout4(XDR *, layout4 *); 08422 static inline bool_t xdr_deviceid4(XDR *, deviceid4); 08423 static inline bool_t xdr_device_addr4(XDR *, device_addr4 *); 08424 static inline bool_t xdr_layoutupdate4(XDR *, layoutupdate4 *); 08425 static inline bool_t xdr_layoutreturn_type4(XDR *, layoutreturn_type4 *); 08426 static inline bool_t xdr_layoutreturn_file4(XDR *, layoutreturn_file4 *); 08427 static inline bool_t xdr_layoutreturn4(XDR *, layoutreturn4 *); 08428 static inline bool_t xdr_fs4_status_type(XDR *, fs4_status_type *); 08429 static inline bool_t xdr_fs4_status(XDR *, fs4_status *); 08430 static inline bool_t xdr_threshold4_read_size(XDR *, threshold4_read_size *); 08431 static inline bool_t xdr_threshold4_write_size(XDR *, threshold4_write_size *); 08432 static inline bool_t xdr_threshold4_read_iosize(XDR *, threshold4_read_iosize *); 08433 static inline bool_t xdr_threshold4_write_iosize(XDR *, threshold4_write_iosize *); 08434 static inline bool_t xdr_threshold_item4(XDR *, threshold_item4 *); 08435 static inline bool_t xdr_mdsthreshold4(XDR *, mdsthreshold4 *); 08436 static inline bool_t xdr_retention_get4(XDR *, retention_get4 *); 08437 static inline bool_t xdr_retention_set4(XDR *, retention_set4 *); 08438 static inline bool_t xdr_fs_charset_cap4(XDR *, fs_charset_cap4 *); 08439 static inline bool_t xdr_fattr4_supported_attrs(XDR *, fattr4_supported_attrs *); 08440 static inline bool_t xdr_fattr4_type(XDR *, fattr4_type *); 08441 static inline bool_t xdr_fattr4_fh_expire_type(XDR *, fattr4_fh_expire_type *); 08442 static inline bool_t xdr_fattr4_change(XDR *, fattr4_change *); 08443 static inline bool_t xdr_fattr4_size(XDR *, fattr4_size *); 08444 static inline bool_t xdr_fattr4_link_support(XDR *, fattr4_link_support *); 08445 static inline bool_t xdr_fattr4_symlink_support(XDR *, fattr4_symlink_support *); 08446 static inline bool_t xdr_fattr4_named_attr(XDR *, fattr4_named_attr *); 08447 static inline bool_t xdr_fattr4_fsid(XDR *, fattr4_fsid *); 08448 static inline bool_t xdr_fattr4_unique_handles(XDR *, fattr4_unique_handles *); 08449 static inline bool_t xdr_fattr4_lease_time(XDR *, fattr4_lease_time *); 08450 static inline bool_t xdr_fattr4_rdattr_error(XDR *, fattr4_rdattr_error *); 08451 static inline bool_t xdr_fattr4_acl(XDR *, fattr4_acl *); 08452 static inline bool_t xdr_fattr4_aclsupport(XDR *, fattr4_aclsupport *); 08453 static inline bool_t xdr_fattr4_archive(XDR *, fattr4_archive *); 08454 static inline bool_t xdr_fattr4_cansettime(XDR *, fattr4_cansettime *); 08455 static inline bool_t xdr_fattr4_case_insensitive(XDR *, fattr4_case_insensitive *); 08456 static inline bool_t xdr_fattr4_case_preserving(XDR *, fattr4_case_preserving *); 08457 static inline bool_t xdr_fattr4_chown_restricted(XDR *, fattr4_chown_restricted *); 08458 static inline bool_t xdr_fattr4_fileid(XDR *, fattr4_fileid *); 08459 static inline bool_t xdr_fattr4_files_avail(XDR *, fattr4_files_avail *); 08460 static inline bool_t xdr_fattr4_filehandle(XDR *, fattr4_filehandle *); 08461 static inline bool_t xdr_fattr4_files_free(XDR *, fattr4_files_free *); 08462 static inline bool_t xdr_fattr4_files_total(XDR *, fattr4_files_total *); 08463 static inline bool_t xdr_fattr4_fs_locations(XDR *, fattr4_fs_locations *); 08464 static inline bool_t xdr_fattr4_hidden(XDR *, fattr4_hidden *); 08465 static inline bool_t xdr_fattr4_homogeneous(XDR *, fattr4_homogeneous *); 08466 static inline bool_t xdr_fattr4_maxfilesize(XDR *, fattr4_maxfilesize *); 08467 static inline bool_t xdr_fattr4_maxlink(XDR *, fattr4_maxlink *); 08468 static inline bool_t xdr_fattr4_maxname(XDR *, fattr4_maxname *); 08469 static inline bool_t xdr_fattr4_maxread(XDR *, fattr4_maxread *); 08470 static inline bool_t xdr_fattr4_maxwrite(XDR *, fattr4_maxwrite *); 08471 static inline bool_t xdr_fattr4_mimetype(XDR *, fattr4_mimetype *); 08472 static inline bool_t xdr_fattr4_mode(XDR *, fattr4_mode *); 08473 static inline bool_t xdr_fattr4_mode_set_masked(XDR *, fattr4_mode_set_masked *); 08474 static inline bool_t xdr_fattr4_mounted_on_fileid(XDR *, fattr4_mounted_on_fileid *); 08475 static inline bool_t xdr_fattr4_no_trunc(XDR *, fattr4_no_trunc *); 08476 static inline bool_t xdr_fattr4_numlinks(XDR *, fattr4_numlinks *); 08477 static inline bool_t xdr_fattr4_owner(XDR *, fattr4_owner *); 08478 static inline bool_t xdr_fattr4_owner_group(XDR *, fattr4_owner_group *); 08479 static inline bool_t xdr_fattr4_quota_avail_hard(XDR *, fattr4_quota_avail_hard *); 08480 static inline bool_t xdr_fattr4_quota_avail_soft(XDR *, fattr4_quota_avail_soft *); 08481 static inline bool_t xdr_fattr4_quota_used(XDR *, fattr4_quota_used *); 08482 static inline bool_t xdr_fattr4_rawdev(XDR *, fattr4_rawdev *); 08483 static inline bool_t xdr_fattr4_space_avail(XDR *, fattr4_space_avail *); 08484 static inline bool_t xdr_fattr4_space_free(XDR *, fattr4_space_free *); 08485 static inline bool_t xdr_fattr4_space_total(XDR *, fattr4_space_total *); 08486 static inline bool_t xdr_fattr4_space_used(XDR *, fattr4_space_used *); 08487 static inline bool_t xdr_fattr4_system(XDR *, fattr4_system *); 08488 static inline bool_t xdr_fattr4_time_access(XDR *, fattr4_time_access *); 08489 static inline bool_t xdr_fattr4_time_access_set(XDR *, fattr4_time_access_set *); 08490 static inline bool_t xdr_fattr4_time_backup(XDR *, fattr4_time_backup *); 08491 static inline bool_t xdr_fattr4_time_create(XDR *, fattr4_time_create *); 08492 static inline bool_t xdr_fattr4_time_delta(XDR *, fattr4_time_delta *); 08493 static inline bool_t xdr_fattr4_time_metadata(XDR *, fattr4_time_metadata *); 08494 static inline bool_t xdr_fattr4_time_modify(XDR *, fattr4_time_modify *); 08495 static inline bool_t xdr_fattr4_time_modify_set(XDR *, fattr4_time_modify_set *); 08496 static inline bool_t xdr_fattr4_suppattr_exclcreat(XDR *, fattr4_suppattr_exclcreat *); 08497 static inline bool_t xdr_fattr4_dir_notif_delay(XDR *, fattr4_dir_notif_delay *); 08498 static inline bool_t xdr_fattr4_dirent_notif_delay(XDR *, fattr4_dirent_notif_delay *); 08499 static inline bool_t xdr_fattr4_fs_layout_types(XDR *, fattr4_fs_layout_types *); 08500 static inline bool_t xdr_fattr4_fs_status(XDR *, fattr4_fs_status *); 08501 static inline bool_t xdr_fattr4_fs_charset_cap(XDR *, fattr4_fs_charset_cap *); 08502 static inline bool_t xdr_fattr4_layout_alignment(XDR *, fattr4_layout_alignment *); 08503 static inline bool_t xdr_fattr4_layout_blksize(XDR *, fattr4_layout_blksize *); 08504 static inline bool_t xdr_fattr4_layout_hint(XDR *, fattr4_layout_hint *); 08505 static inline bool_t xdr_fattr4_layout_types(XDR *, fattr4_layout_types *); 08506 static inline bool_t xdr_fattr4_mdsthreshold(XDR *, fattr4_mdsthreshold *); 08507 static inline bool_t xdr_fattr4_retention_get(XDR *, fattr4_retention_get *); 08508 static inline bool_t xdr_fattr4_retention_set(XDR *, fattr4_retention_set *); 08509 static inline bool_t xdr_fattr4_retentevt_get(XDR *, fattr4_retentevt_get *); 08510 static inline bool_t xdr_fattr4_retentevt_set(XDR *, fattr4_retentevt_set *); 08511 static inline bool_t xdr_fattr4_retention_hold(XDR *, fattr4_retention_hold *); 08512 static inline bool_t xdr_fattr4_dacl(XDR *, fattr4_dacl *); 08513 static inline bool_t xdr_fattr4_sacl(XDR *, fattr4_sacl *); 08514 static inline bool_t xdr_fattr4_change_policy(XDR *, fattr4_change_policy *); 08515 static inline bool_t xdr_fattr4(XDR *, fattr4 *); 08516 static inline bool_t xdr_change_info4(XDR *, change_info4 *); 08517 static inline bool_t xdr_clientaddr4(XDR *, clientaddr4 *); 08518 static inline bool_t xdr_cb_client4(XDR *, cb_client4 *); 08519 static inline bool_t xdr_nfs_client_id4(XDR *, nfs_client_id4 *); 08520 static inline bool_t xdr_client_owner4(XDR *, client_owner4 *); 08521 static inline bool_t xdr_server_owner4(XDR *, server_owner4 *); 08522 static inline bool_t xdr_state_owner4(XDR *, state_owner4 *); 08523 static inline bool_t xdr_open_owner4(XDR *, open_owner4 *); 08524 static inline bool_t xdr_lock_owner4(XDR *, lock_owner4 *); 08525 static inline bool_t xdr_nfs_lock_type4(XDR *, nfs_lock_type4 *); 08526 static inline bool_t xdr_ssv_subkey4(XDR *, ssv_subkey4 *); 08527 static inline bool_t xdr_ssv_mic_plain_tkn4(XDR *, ssv_mic_plain_tkn4 *); 08528 static inline bool_t xdr_ssv_mic_tkn4(XDR *, ssv_mic_tkn4 *); 08529 static inline bool_t xdr_ssv_seal_plain_tkn4(XDR *, ssv_seal_plain_tkn4 *); 08530 static inline bool_t xdr_ssv_seal_cipher_tkn4(XDR *, ssv_seal_cipher_tkn4 *); 08531 static inline bool_t xdr_fs_locations_server4(XDR *, fs_locations_server4 *); 08532 static inline bool_t xdr_fs_locations_item4(XDR *, fs_locations_item4 *); 08533 static inline bool_t xdr_fs_locations_info4(XDR *, fs_locations_info4 *); 08534 static inline bool_t xdr_fattr4_fs_locations_info(XDR *, fattr4_fs_locations_info *); 08535 static inline bool_t xdr_nfl_util4(XDR *, nfl_util4 *); 08536 static inline bool_t xdr_filelayout_hint_care4(XDR *, filelayout_hint_care4 *); 08537 static inline bool_t xdr_nfsv4_1_file_layouthint4(XDR *, nfsv4_1_file_layouthint4 *); 08538 static inline bool_t xdr_multipath_list4(XDR *, multipath_list4 *); 08539 static inline bool_t xdr_nfsv4_1_file_layout_ds_addr4(XDR *, nfsv4_1_file_layout_ds_addr4 *); 08540 static inline bool_t xdr_nfsv4_1_file_layout4(XDR *, nfsv4_1_file_layout4 *); 08541 static inline bool_t xdr_ACCESS4args(XDR *, ACCESS4args *); 08542 static inline bool_t xdr_ACCESS4resok(XDR *, ACCESS4resok *); 08543 static inline bool_t xdr_ACCESS4res(XDR *, ACCESS4res *); 08544 static inline bool_t xdr_CLOSE4args(XDR *, CLOSE4args *); 08545 static inline bool_t xdr_CLOSE4res(XDR *, CLOSE4res *); 08546 static inline bool_t xdr_COMMIT4args(XDR *, COMMIT4args *); 08547 static inline bool_t xdr_COMMIT4resok(XDR *, COMMIT4resok *); 08548 static inline bool_t xdr_COMMIT4res(XDR *, COMMIT4res *); 08549 static inline bool_t xdr_createtype4(XDR *, createtype4 *); 08550 static inline bool_t xdr_CREATE4args(XDR *, CREATE4args *); 08551 static inline bool_t xdr_CREATE4resok(XDR *, CREATE4resok *); 08552 static inline bool_t xdr_CREATE4res(XDR *, CREATE4res *); 08553 static inline bool_t xdr_DELEGPURGE4args(XDR *, DELEGPURGE4args *); 08554 static inline bool_t xdr_DELEGPURGE4res(XDR *, DELEGPURGE4res *); 08555 static inline bool_t xdr_DELEGRETURN4args(XDR *, DELEGRETURN4args *); 08556 static inline bool_t xdr_DELEGRETURN4res(XDR *, DELEGRETURN4res *); 08557 static inline bool_t xdr_GETATTR4args(XDR *, GETATTR4args *); 08558 static inline bool_t xdr_GETATTR4resok(XDR *, GETATTR4resok *); 08559 static inline bool_t xdr_GETATTR4res(XDR *, GETATTR4res *); 08560 static inline bool_t xdr_GETFH4resok(XDR *, GETFH4resok *); 08561 static inline bool_t xdr_GETFH4res(XDR *, GETFH4res *); 08562 static inline bool_t xdr_LINK4args(XDR *, LINK4args *); 08563 static inline bool_t xdr_LINK4resok(XDR *, LINK4resok *); 08564 static inline bool_t xdr_LINK4res(XDR *, LINK4res *); 08565 static inline bool_t xdr_open_to_lock_owner4(XDR *, open_to_lock_owner4 *); 08566 static inline bool_t xdr_exist_lock_owner4(XDR *, exist_lock_owner4 *); 08567 static inline bool_t xdr_locker4(XDR *, locker4 *); 08568 static inline bool_t xdr_LOCK4args(XDR *, LOCK4args *); 08569 static inline bool_t xdr_LOCK4denied(XDR *, LOCK4denied *); 08570 static inline bool_t xdr_LOCK4resok(XDR *, LOCK4resok *); 08571 static inline bool_t xdr_LOCK4res(XDR *, LOCK4res *); 08572 static inline bool_t xdr_LOCKT4args(XDR *, LOCKT4args *); 08573 static inline bool_t xdr_LOCKT4res(XDR *, LOCKT4res *); 08574 static inline bool_t xdr_LOCKU4args(XDR *, LOCKU4args *); 08575 static inline bool_t xdr_LOCKU4res(XDR *, LOCKU4res *); 08576 static inline bool_t xdr_LOOKUP4args(XDR *, LOOKUP4args *); 08577 static inline bool_t xdr_LOOKUP4res(XDR *, LOOKUP4res *); 08578 static inline bool_t xdr_LOOKUPP4res(XDR *, LOOKUPP4res *); 08579 static inline bool_t xdr_NVERIFY4args(XDR *, NVERIFY4args *); 08580 static inline bool_t xdr_NVERIFY4res(XDR *, NVERIFY4res *); 08581 static inline bool_t xdr_createmode4(XDR *, createmode4 *); 08582 static inline bool_t xdr_creatverfattr(XDR *, creatverfattr *); 08583 static inline bool_t xdr_createhow4(XDR *, createhow4 *); 08584 static inline bool_t xdr_opentype4(XDR *, opentype4 *); 08585 static inline bool_t xdr_openflag4(XDR *, openflag4 *); 08586 static inline bool_t xdr_limit_by4(XDR *, limit_by4 *); 08587 static inline bool_t xdr_nfs_modified_limit4(XDR *, nfs_modified_limit4 *); 08588 static inline bool_t xdr_nfs_space_limit4(XDR *, nfs_space_limit4 *); 08589 static inline bool_t xdr_open_delegation_type4(XDR *, open_delegation_type4 *); 08590 static inline bool_t xdr_open_claim_type4(XDR *, open_claim_type4 *); 08591 static inline bool_t xdr_open_claim_delegate_cur4(XDR *, open_claim_delegate_cur4 *); 08592 static inline bool_t xdr_open_claim4(XDR *, open_claim4 *); 08593 static inline bool_t xdr_OPEN4args(XDR *, OPEN4args *); 08594 static inline bool_t xdr_open_read_delegation4(XDR *, open_read_delegation4 *); 08595 static inline bool_t xdr_open_write_delegation4(XDR *, open_write_delegation4 *); 08596 static inline bool_t xdr_why_no_delegation4(XDR *, why_no_delegation4 *); 08597 static inline bool_t xdr_open_none_delegation4(XDR *, open_none_delegation4 *); 08598 static inline bool_t xdr_open_delegation4(XDR *, open_delegation4 *); 08599 static inline bool_t xdr_OPEN4resok(XDR *, OPEN4resok *); 08600 static inline bool_t xdr_OPEN4res(XDR *, OPEN4res *); 08601 static inline bool_t xdr_OPENATTR4args(XDR *, OPENATTR4args *); 08602 static inline bool_t xdr_OPENATTR4res(XDR *, OPENATTR4res *); 08603 static inline bool_t xdr_OPEN_CONFIRM4args(XDR *, OPEN_CONFIRM4args *); 08604 static inline bool_t xdr_OPEN_CONFIRM4resok(XDR *, OPEN_CONFIRM4resok *); 08605 static inline bool_t xdr_OPEN_CONFIRM4res(XDR *, OPEN_CONFIRM4res *); 08606 static inline bool_t xdr_OPEN_DOWNGRADE4args(XDR *, OPEN_DOWNGRADE4args *); 08607 static inline bool_t xdr_OPEN_DOWNGRADE4resok(XDR *, OPEN_DOWNGRADE4resok *); 08608 static inline bool_t xdr_OPEN_DOWNGRADE4res(XDR *, OPEN_DOWNGRADE4res *); 08609 static inline bool_t xdr_PUTFH4args(XDR *, PUTFH4args *); 08610 static inline bool_t xdr_PUTFH4res(XDR *, PUTFH4res *); 08611 static inline bool_t xdr_PUTPUBFH4res(XDR *, PUTPUBFH4res *); 08612 static inline bool_t xdr_PUTROOTFH4res(XDR *, PUTROOTFH4res *); 08613 static inline bool_t xdr_READ4args(XDR *, READ4args *); 08614 static inline bool_t xdr_READ4resok(XDR *, READ4resok *); 08615 static inline bool_t xdr_READ4res(XDR *, READ4res *); 08616 static inline bool_t xdr_READDIR4args(XDR *, READDIR4args *); 08617 static inline bool_t xdr_entry4(XDR *, entry4 *); 08618 static inline bool_t xdr_dirlist4(XDR *, dirlist4 *); 08619 static inline bool_t xdr_READDIR4resok(XDR *, READDIR4resok *); 08620 static inline bool_t xdr_READDIR4res(XDR *, READDIR4res *); 08621 static inline bool_t xdr_READLINK4resok(XDR *, READLINK4resok *); 08622 static inline bool_t xdr_READLINK4res(XDR *, READLINK4res *); 08623 static inline bool_t xdr_REMOVE4args(XDR *, REMOVE4args *); 08624 static inline bool_t xdr_REMOVE4resok(XDR *, REMOVE4resok *); 08625 static inline bool_t xdr_REMOVE4res(XDR *, REMOVE4res *); 08626 static inline bool_t xdr_RENAME4args(XDR *, RENAME4args *); 08627 static inline bool_t xdr_RENAME4resok(XDR *, RENAME4resok *); 08628 static inline bool_t xdr_RENAME4res(XDR *, RENAME4res *); 08629 static inline bool_t xdr_RENEW4args(XDR *, RENEW4args *); 08630 static inline bool_t xdr_RENEW4res(XDR *, RENEW4res *); 08631 static inline bool_t xdr_RESTOREFH4res(XDR *, RESTOREFH4res *); 08632 static inline bool_t xdr_SAVEFH4res(XDR *, SAVEFH4res *); 08633 static inline bool_t xdr_SECINFO4args(XDR *, SECINFO4args *); 08634 static inline bool_t xdr_rpc_gss_svc_t(XDR *, rpc_gss_svc_t *); 08635 static inline bool_t xdr_rpcsec_gss_info(XDR *, rpcsec_gss_info *); 08636 static inline bool_t xdr_secinfo4(XDR *, secinfo4 *); 08637 static inline bool_t xdr_SECINFO4resok(XDR *, SECINFO4resok *); 08638 static inline bool_t xdr_SECINFO4res(XDR *, SECINFO4res *); 08639 static inline bool_t xdr_SETATTR4args(XDR *, SETATTR4args *); 08640 static inline bool_t xdr_SETATTR4res(XDR *, SETATTR4res *); 08641 static inline bool_t xdr_SETCLIENTID4args(XDR *, SETCLIENTID4args *); 08642 static inline bool_t xdr_SETCLIENTID4resok(XDR *, SETCLIENTID4resok *); 08643 static inline bool_t xdr_SETCLIENTID4res(XDR *, SETCLIENTID4res *); 08644 static inline bool_t xdr_SETCLIENTID_CONFIRM4args(XDR *, SETCLIENTID_CONFIRM4args *); 08645 static inline bool_t xdr_SETCLIENTID_CONFIRM4res(XDR *, SETCLIENTID_CONFIRM4res *); 08646 static inline bool_t xdr_VERIFY4args(XDR *, VERIFY4args *); 08647 static inline bool_t xdr_VERIFY4res(XDR *, VERIFY4res *); 08648 static inline bool_t xdr_stable_how4(XDR *, stable_how4 *); 08649 static inline bool_t xdr_WRITE4args(XDR *, WRITE4args *); 08650 static inline bool_t xdr_WRITE4resok(XDR *, WRITE4resok *); 08651 static inline bool_t xdr_WRITE4res(XDR *, WRITE4res *); 08652 static inline bool_t xdr_RELEASE_LOCKOWNER4args(XDR *, RELEASE_LOCKOWNER4args *); 08653 static inline bool_t xdr_RELEASE_LOCKOWNER4res(XDR *, RELEASE_LOCKOWNER4res *); 08654 static inline bool_t xdr_ILLEGAL4res(XDR *, ILLEGAL4res *); 08655 static inline bool_t xdr_gsshandle4_t(XDR *, gsshandle4_t *); 08656 static inline bool_t xdr_gss_cb_handles4(XDR *, gss_cb_handles4 *); 08657 static inline bool_t xdr_callback_sec_parms4(XDR *, callback_sec_parms4 *); 08658 static inline bool_t xdr_BACKCHANNEL_CTL4args(XDR *, BACKCHANNEL_CTL4args *); 08659 static inline bool_t xdr_BACKCHANNEL_CTL4res(XDR *, BACKCHANNEL_CTL4res *); 08660 static inline bool_t xdr_channel_dir_from_client4(XDR *, channel_dir_from_client4 *); 08661 static inline bool_t xdr_BIND_CONN_TO_SESSION4args(XDR *, BIND_CONN_TO_SESSION4args *); 08662 static inline bool_t xdr_channel_dir_from_server4(XDR *, channel_dir_from_server4 *); 08663 static inline bool_t xdr_BIND_CONN_TO_SESSION4resok(XDR *, BIND_CONN_TO_SESSION4resok *); 08664 static inline bool_t xdr_BIND_CONN_TO_SESSION4res(XDR *, BIND_CONN_TO_SESSION4res *); 08665 static inline bool_t xdr_state_protect_ops4(XDR *, state_protect_ops4 *); 08666 static inline bool_t xdr_ssv_sp_parms4(XDR *, ssv_sp_parms4 *); 08667 static inline bool_t xdr_state_protect_how4(XDR *, state_protect_how4 *); 08668 static inline bool_t xdr_state_protect4_a(XDR *, state_protect4_a *); 08669 static inline bool_t xdr_EXCHANGE_ID4args(XDR *, EXCHANGE_ID4args *); 08670 static inline bool_t xdr_ssv_prot_info4(XDR *, ssv_prot_info4 *); 08671 static inline bool_t xdr_state_protect4_r(XDR *, state_protect4_r *); 08672 static inline bool_t xdr_EXCHANGE_ID4resok(XDR *, EXCHANGE_ID4resok *); 08673 static inline bool_t xdr_EXCHANGE_ID4res(XDR *, EXCHANGE_ID4res *); 08674 static inline bool_t xdr_channel_attrs4(XDR *, channel_attrs4 *); 08675 static inline bool_t xdr_CREATE_SESSION4args(XDR *, CREATE_SESSION4args *); 08676 static inline bool_t xdr_CREATE_SESSION4resok(XDR *, CREATE_SESSION4resok *); 08677 static inline bool_t xdr_CREATE_SESSION4res(XDR *, CREATE_SESSION4res *); 08678 static inline bool_t xdr_DESTROY_SESSION4args(XDR *, DESTROY_SESSION4args *); 08679 static inline bool_t xdr_DESTROY_SESSION4res(XDR *, DESTROY_SESSION4res *); 08680 static inline bool_t xdr_FREE_STATEID4args(XDR *, FREE_STATEID4args *); 08681 static inline bool_t xdr_FREE_STATEID4res(XDR *, FREE_STATEID4res *); 08682 static inline bool_t xdr_attr_notice4(XDR *, attr_notice4 *); 08683 static inline bool_t xdr_GET_DIR_DELEGATION4args(XDR *, GET_DIR_DELEGATION4args *); 08684 static inline bool_t xdr_GET_DIR_DELEGATION4resok(XDR *, GET_DIR_DELEGATION4resok *); 08685 static inline bool_t xdr_gddrnf4_status(XDR *, gddrnf4_status *); 08686 static inline bool_t xdr_GET_DIR_DELEGATION4res_non_fatal(XDR *, 08687 GET_DIR_DELEGATION4res_non_fatal *); 08688 static inline bool_t xdr_GET_DIR_DELEGATION4res(XDR *, GET_DIR_DELEGATION4res *); 08689 static inline bool_t xdr_GETDEVICEINFO4args(XDR *, GETDEVICEINFO4args *); 08690 static inline bool_t xdr_GETDEVICEINFO4resok(XDR *, GETDEVICEINFO4resok *); 08691 static inline bool_t xdr_GETDEVICEINFO4res(XDR *, GETDEVICEINFO4res *); 08692 static inline bool_t xdr_GETDEVICELIST4args(XDR *, GETDEVICELIST4args *); 08693 static inline bool_t xdr_GETDEVICELIST4resok(XDR *, GETDEVICELIST4resok *); 08694 static inline bool_t xdr_GETDEVICELIST4res(XDR *, GETDEVICELIST4res *); 08695 static inline bool_t xdr_newtime4(XDR *, newtime4 *); 08696 static inline bool_t xdr_newoffset4(XDR *, newoffset4 *); 08697 static inline bool_t xdr_LAYOUTCOMMIT4args(XDR *, LAYOUTCOMMIT4args *); 08698 static inline bool_t xdr_newsize4(XDR *, newsize4 *); 08699 static inline bool_t xdr_LAYOUTCOMMIT4resok(XDR *, LAYOUTCOMMIT4resok *); 08700 static inline bool_t xdr_LAYOUTCOMMIT4res(XDR *, LAYOUTCOMMIT4res *); 08701 static inline bool_t xdr_LAYOUTGET4args(XDR *, LAYOUTGET4args *); 08702 static inline bool_t xdr_LAYOUTGET4resok(XDR *, LAYOUTGET4resok *); 08703 static inline bool_t xdr_LAYOUTGET4res(XDR *, LAYOUTGET4res *); 08704 static inline bool_t xdr_LAYOUTRETURN4args(XDR *, LAYOUTRETURN4args *); 08705 static inline bool_t xdr_layoutreturn_stateid(XDR *, layoutreturn_stateid *); 08706 static inline bool_t xdr_LAYOUTRETURN4res(XDR *, LAYOUTRETURN4res *); 08707 static inline bool_t xdr_secinfo_style4(XDR *, secinfo_style4 *); 08708 static inline bool_t xdr_SECINFO_NO_NAME4args(XDR *, SECINFO_NO_NAME4args *); 08709 static inline bool_t xdr_SECINFO_NO_NAME4res(XDR *, SECINFO_NO_NAME4res *); 08710 static inline bool_t xdr_SEQUENCE4args(XDR *, SEQUENCE4args *); 08711 static inline bool_t xdr_SEQUENCE4resok(XDR *, SEQUENCE4resok *); 08712 static inline bool_t xdr_SEQUENCE4res(XDR *, SEQUENCE4res *); 08713 static inline bool_t xdr_ssa_digest_input4(XDR *, ssa_digest_input4 *); 08714 static inline bool_t xdr_SET_SSV4args(XDR *, SET_SSV4args *); 08715 static inline bool_t xdr_ssr_digest_input4(XDR *, ssr_digest_input4 *); 08716 static inline bool_t xdr_SET_SSV4resok(XDR *, SET_SSV4resok *); 08717 static inline bool_t xdr_SET_SSV4res(XDR *, SET_SSV4res *); 08718 static inline bool_t xdr_TEST_STATEID4args(XDR *, TEST_STATEID4args *); 08719 static inline bool_t xdr_TEST_STATEID4resok(XDR *, TEST_STATEID4resok *); 08720 static inline bool_t xdr_TEST_STATEID4res(XDR *, TEST_STATEID4res *); 08721 static inline bool_t xdr_deleg_claim4(XDR *, deleg_claim4 *); 08722 static inline bool_t xdr_WANT_DELEGATION4args(XDR *, WANT_DELEGATION4args *); 08723 static inline bool_t xdr_WANT_DELEGATION4res(XDR *, WANT_DELEGATION4res *); 08724 static inline bool_t xdr_DESTROY_CLIENTID4args(XDR *, DESTROY_CLIENTID4args *); 08725 static inline bool_t xdr_DESTROY_CLIENTID4res(XDR *, DESTROY_CLIENTID4res *); 08726 static inline bool_t xdr_RECLAIM_COMPLETE4args(XDR *, RECLAIM_COMPLETE4args *); 08727 static inline bool_t xdr_RECLAIM_COMPLETE4res(XDR *, RECLAIM_COMPLETE4res *); 08728 static inline bool_t xdr_nfs_opnum4(XDR *, nfs_opnum4 *); 08729 static inline bool_t xdr_nfs_argop4(XDR *, nfs_argop4 *); 08730 static inline bool_t xdr_nfs_resop4(XDR *, nfs_resop4 *); 08731 static inline bool_t xdr_COMPOUND4args(XDR *, COMPOUND4args *); 08732 static inline bool_t xdr_COMPOUND4res(XDR *, COMPOUND4res *); 08733 static inline bool_t xdr_CB_GETATTR4args(XDR *, CB_GETATTR4args *); 08734 static inline bool_t xdr_CB_GETATTR4resok(XDR *, CB_GETATTR4resok *); 08735 static inline bool_t xdr_CB_GETATTR4res(XDR *, CB_GETATTR4res *); 08736 static inline bool_t xdr_CB_RECALL4args(XDR *, CB_RECALL4args *); 08737 static inline bool_t xdr_CB_RECALL4res(XDR *, CB_RECALL4res *); 08738 static inline bool_t xdr_CB_ILLEGAL4res(XDR *, CB_ILLEGAL4res *); 08739 static inline bool_t xdr_layoutrecall_type4(XDR *, layoutrecall_type4 *); 08740 static inline bool_t xdr_layoutrecall_file4(XDR *, layoutrecall_file4 *); 08741 static inline bool_t xdr_layoutrecall4(XDR *, layoutrecall4 *); 08742 static inline bool_t xdr_CB_LAYOUTRECALL4args(XDR *, CB_LAYOUTRECALL4args *); 08743 static inline bool_t xdr_CB_LAYOUTRECALL4res(XDR *, CB_LAYOUTRECALL4res *); 08744 static inline bool_t xdr_notify_type4(XDR *, notify_type4 *); 08745 static inline bool_t xdr_notify_entry4(XDR *, notify_entry4 *); 08746 static inline bool_t xdr_prev_entry4(XDR *, prev_entry4 *); 08747 static inline bool_t xdr_notify_remove4(XDR *, notify_remove4 *); 08748 static inline bool_t xdr_notify_add4(XDR *, notify_add4 *); 08749 static inline bool_t xdr_notify_attr4(XDR *, notify_attr4 *); 08750 static inline bool_t xdr_notify_rename4(XDR *, notify_rename4 *); 08751 static inline bool_t xdr_notify_verifier4(XDR *, notify_verifier4 *); 08752 static inline bool_t xdr_notifylist4(XDR *, notifylist4 *); 08753 static inline bool_t xdr_notify4(XDR *, notify4 *); 08754 static inline bool_t xdr_CB_NOTIFY4args(XDR *, CB_NOTIFY4args *); 08755 static inline bool_t xdr_CB_NOTIFY4res(XDR *, CB_NOTIFY4res *); 08756 static inline bool_t xdr_CB_PUSH_DELEG4args(XDR *, CB_PUSH_DELEG4args *); 08757 static inline bool_t xdr_CB_PUSH_DELEG4res(XDR *, CB_PUSH_DELEG4res *); 08758 static inline bool_t xdr_CB_RECALL_ANY4args(XDR *, CB_RECALL_ANY4args *); 08759 static inline bool_t xdr_CB_RECALL_ANY4res(XDR *, CB_RECALL_ANY4res *); 08760 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(XDR *, CB_RECALLABLE_OBJ_AVAIL4args *); 08761 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(XDR *, CB_RECALLABLE_OBJ_AVAIL4res *); 08762 static inline bool_t xdr_CB_RECALL_SLOT4args(XDR *, CB_RECALL_SLOT4args *); 08763 static inline bool_t xdr_CB_RECALL_SLOT4res(XDR *, CB_RECALL_SLOT4res *); 08764 static inline bool_t xdr_referring_call4(XDR *, referring_call4 *); 08765 static inline bool_t xdr_referring_call_list4(XDR *, referring_call_list4 *); 08766 static inline bool_t xdr_CB_SEQUENCE4args(XDR *, CB_SEQUENCE4args *); 08767 static inline bool_t xdr_CB_SEQUENCE4resok(XDR *, CB_SEQUENCE4resok *); 08768 static inline bool_t xdr_CB_SEQUENCE4res(XDR *, CB_SEQUENCE4res *); 08769 static inline bool_t xdr_CB_WANTS_CANCELLED4args(XDR *, CB_WANTS_CANCELLED4args *); 08770 static inline bool_t xdr_CB_WANTS_CANCELLED4res(XDR *, CB_WANTS_CANCELLED4res *); 08771 static inline bool_t xdr_CB_NOTIFY_LOCK4args(XDR *, CB_NOTIFY_LOCK4args *); 08772 static inline bool_t xdr_CB_NOTIFY_LOCK4res(XDR *, CB_NOTIFY_LOCK4res *); 08773 static inline bool_t xdr_notify_deviceid_type4(XDR *, notify_deviceid_type4 *); 08774 static inline bool_t xdr_notify_deviceid_delete4(XDR *, notify_deviceid_delete4 *); 08775 static inline bool_t xdr_notify_deviceid_change4(XDR *, notify_deviceid_change4 *); 08776 static inline bool_t xdr_CB_NOTIFY_DEVICEID4args(XDR *, CB_NOTIFY_DEVICEID4args *); 08777 static inline bool_t xdr_CB_NOTIFY_DEVICEID4res(XDR *, CB_NOTIFY_DEVICEID4res *); 08778 static inline bool_t xdr_nfs_cb_opnum4(XDR *, nfs_cb_opnum4 *); 08779 static inline bool_t xdr_nfs_cb_argop4(XDR *, nfs_cb_argop4 *); 08780 static inline bool_t xdr_nfs_cb_resop4(XDR *, nfs_cb_resop4 *); 08781 static inline bool_t xdr_CB_COMPOUND4args(XDR *, CB_COMPOUND4args *); 08782 static inline bool_t xdr_CB_COMPOUND4res(XDR *, CB_COMPOUND4res *); 08783 08784 #else /* K&R C */ 08785 static inline bool_t xdr_nfs_ftype4(); 08786 static inline bool_t xdr_nfsstat4(); 08787 static inline bool_t xdr_attrlist4(); 08788 static inline bool_t xdr_bitmap4(); 08789 static inline bool_t xdr_changeid4(); 08790 static inline bool_t xdr_clientid4(); 08791 static inline bool_t xdr_count4(); 08792 static inline bool_t xdr_length4(); 08793 static inline bool_t xdr_mode4(); 08794 static inline bool_t xdr_nfs_cookie4(); 08795 static inline bool_t xdr_nfs_fh4(); 08796 static inline bool_t xdr_offset4(); 08797 static inline bool_t xdr_qop4(); 08798 static inline bool_t xdr_sec_oid4(); 08799 static inline bool_t xdr_sequenceid4(); 08800 static inline bool_t xdr_seqid4(); 08801 static inline bool_t xdr_sessionid4(); 08802 static inline bool_t xdr_slotid4(); 08803 static inline bool_t xdr_utf8string(); 08804 static inline bool_t xdr_utf8str_cis(); 08805 static inline bool_t xdr_utf8str_cs(); 08806 static inline bool_t xdr_utf8str_mixed(); 08807 static inline bool_t xdr_component4(); 08808 static inline bool_t xdr_linktext4(); 08809 static inline bool_t xdr_pathname4(); 08810 static inline bool_t xdr_verifier4(); 08811 static inline bool_t xdr_nfstime4(); 08812 static inline bool_t xdr_time_how4(); 08813 static inline bool_t xdr_settime4(); 08814 static inline bool_t xdr_nfs_lease4(); 08815 static inline bool_t xdr_fsid4(); 08816 static inline bool_t xdr_change_policy4(); 08817 static inline bool_t xdr_fs_location4(); 08818 static inline bool_t xdr_fs_locations4(); 08819 static inline bool_t xdr_acetype4(); 08820 static inline bool_t xdr_aceflag4(); 08821 static inline bool_t xdr_acemask4(); 08822 static inline bool_t xdr_nfsace4(); 08823 static inline bool_t xdr_aclflag4(); 08824 static inline bool_t xdr_nfsacl41(); 08825 static inline bool_t xdr_mode_masked4(); 08826 static inline bool_t xdr_specdata4(); 08827 static inline bool_t xdr_netaddr4(); 08828 static inline bool_t xdr_nfs_impl_id4(); 08829 static inline bool_t xdr_stateid4(); 08830 static inline bool_t xdr_layouttype4(); 08831 static inline bool_t xdr_layout_content4(); 08832 static inline bool_t xdr_layouthint4(); 08833 static inline bool_t xdr_layoutiomode4(); 08834 static inline bool_t xdr_layout4(); 08835 static inline bool_t xdr_deviceid4(); 08836 static inline bool_t xdr_device_addr4(); 08837 static inline bool_t xdr_layoutupdate4(); 08838 static inline bool_t xdr_layoutreturn_type4(); 08839 static inline bool_t xdr_layoutreturn_file4(); 08840 static inline bool_t xdr_layoutreturn4(); 08841 static inline bool_t xdr_fs4_status_type(); 08842 static inline bool_t xdr_fs4_status(); 08843 static inline bool_t xdr_threshold4_read_size(); 08844 static inline bool_t xdr_threshold4_write_size(); 08845 static inline bool_t xdr_threshold4_read_iosize(); 08846 static inline bool_t xdr_threshold4_write_iosize(); 08847 static inline bool_t xdr_threshold_item4(); 08848 static inline bool_t xdr_mdsthreshold4(); 08849 static inline bool_t xdr_retention_get4(); 08850 static inline bool_t xdr_retention_set4(); 08851 static inline bool_t xdr_fs_charset_cap4(); 08852 static inline bool_t xdr_fattr4_supported_attrs(); 08853 static inline bool_t xdr_fattr4_type(); 08854 static inline bool_t xdr_fattr4_fh_expire_type(); 08855 static inline bool_t xdr_fattr4_change(); 08856 static inline bool_t xdr_fattr4_size(); 08857 static inline bool_t xdr_fattr4_link_support(); 08858 static inline bool_t xdr_fattr4_symlink_support(); 08859 static inline bool_t xdr_fattr4_named_attr(); 08860 static inline bool_t xdr_fattr4_fsid(); 08861 static inline bool_t xdr_fattr4_unique_handles(); 08862 static inline bool_t xdr_fattr4_lease_time(); 08863 static inline bool_t xdr_fattr4_rdattr_error(); 08864 static inline bool_t xdr_fattr4_acl(); 08865 static inline bool_t xdr_fattr4_aclsupport(); 08866 static inline bool_t xdr_fattr4_archive(); 08867 static inline bool_t xdr_fattr4_cansettime(); 08868 static inline bool_t xdr_fattr4_case_insensitive(); 08869 static inline bool_t xdr_fattr4_case_preserving(); 08870 static inline bool_t xdr_fattr4_chown_restricted(); 08871 static inline bool_t xdr_fattr4_fileid(); 08872 static inline bool_t xdr_fattr4_files_avail(); 08873 static inline bool_t xdr_fattr4_filehandle(); 08874 static inline bool_t xdr_fattr4_files_free(); 08875 static inline bool_t xdr_fattr4_files_total(); 08876 static inline bool_t xdr_fattr4_fs_locations(); 08877 static inline bool_t xdr_fattr4_hidden(); 08878 static inline bool_t xdr_fattr4_homogeneous(); 08879 static inline bool_t xdr_fattr4_maxfilesize(); 08880 static inline bool_t xdr_fattr4_maxlink(); 08881 static inline bool_t xdr_fattr4_maxname(); 08882 static inline bool_t xdr_fattr4_maxread(); 08883 static inline bool_t xdr_fattr4_maxwrite(); 08884 static inline bool_t xdr_fattr4_mimetype(); 08885 static inline bool_t xdr_fattr4_mode(); 08886 static inline bool_t xdr_fattr4_mode_set_masked(); 08887 static inline bool_t xdr_fattr4_mounted_on_fileid(); 08888 static inline bool_t xdr_fattr4_no_trunc(); 08889 static inline bool_t xdr_fattr4_numlinks(); 08890 static inline bool_t xdr_fattr4_owner(); 08891 static inline bool_t xdr_fattr4_owner_group(); 08892 static inline bool_t xdr_fattr4_quota_avail_hard(); 08893 static inline bool_t xdr_fattr4_quota_avail_soft(); 08894 static inline bool_t xdr_fattr4_quota_used(); 08895 static inline bool_t xdr_fattr4_rawdev(); 08896 static inline bool_t xdr_fattr4_space_avail(); 08897 static inline bool_t xdr_fattr4_space_free(); 08898 static inline bool_t xdr_fattr4_space_total(); 08899 static inline bool_t xdr_fattr4_space_used(); 08900 static inline bool_t xdr_fattr4_system(); 08901 static inline bool_t xdr_fattr4_time_access(); 08902 static inline bool_t xdr_fattr4_time_access_set(); 08903 static inline bool_t xdr_fattr4_time_backup(); 08904 static inline bool_t xdr_fattr4_time_create(); 08905 static inline bool_t xdr_fattr4_time_delta(); 08906 static inline bool_t xdr_fattr4_time_metadata(); 08907 static inline bool_t xdr_fattr4_time_modify(); 08908 static inline bool_t xdr_fattr4_time_modify_set(); 08909 static inline bool_t xdr_fattr4_suppattr_exclcreat(); 08910 static inline bool_t xdr_fattr4_dir_notif_delay(); 08911 static inline bool_t xdr_fattr4_dirent_notif_delay(); 08912 static inline bool_t xdr_fattr4_fs_layout_types(); 08913 static inline bool_t xdr_fattr4_fs_status(); 08914 static inline bool_t xdr_fattr4_fs_charset_cap(); 08915 static inline bool_t xdr_fattr4_layout_alignment(); 08916 static inline bool_t xdr_fattr4_layout_blksize(); 08917 static inline bool_t xdr_fattr4_layout_hint(); 08918 static inline bool_t xdr_fattr4_layout_types(); 08919 static inline bool_t xdr_fattr4_mdsthreshold(); 08920 static inline bool_t xdr_fattr4_retention_get(); 08921 static inline bool_t xdr_fattr4_retention_set(); 08922 static inline bool_t xdr_fattr4_retentevt_get(); 08923 static inline bool_t xdr_fattr4_retentevt_set(); 08924 static inline bool_t xdr_fattr4_retention_hold(); 08925 static inline bool_t xdr_fattr4_dacl(); 08926 static inline bool_t xdr_fattr4_sacl(); 08927 static inline bool_t xdr_fattr4_change_policy(); 08928 static inline bool_t xdr_fattr4(); 08929 static inline bool_t xdr_change_info4(); 08930 static inline bool_t xdr_clientaddr4(); 08931 static inline bool_t xdr_cb_client4(); 08932 static inline bool_t xdr_nfs_client_id4(); 08933 static inline bool_t xdr_client_owner4(); 08934 static inline bool_t xdr_server_owner4(); 08935 static inline bool_t xdr_state_owner4(); 08936 static inline bool_t xdr_open_owner4(); 08937 static inline bool_t xdr_lock_owner4(); 08938 static inline bool_t xdr_nfs_lock_type4(); 08939 static inline bool_t xdr_ssv_subkey4(); 08940 static inline bool_t xdr_ssv_mic_plain_tkn4(); 08941 static inline bool_t xdr_ssv_mic_tkn4(); 08942 static inline bool_t xdr_ssv_seal_plain_tkn4(); 08943 static inline bool_t xdr_ssv_seal_cipher_tkn4(); 08944 static inline bool_t xdr_fs_locations_server4(); 08945 static inline bool_t xdr_fs_locations_item4(); 08946 static inline bool_t xdr_fs_locations_info4(); 08947 static inline bool_t xdr_fattr4_fs_locations_info(); 08948 static inline bool_t xdr_nfl_util4(); 08949 static inline bool_t xdr_filelayout_hint_care4(); 08950 static inline bool_t xdr_nfsv4_1_file_layouthint4(); 08951 static inline bool_t xdr_multipath_list4(); 08952 static inline bool_t xdr_nfsv4_1_file_layout_ds_addr4(); 08953 static inline bool_t xdr_nfsv4_1_file_layout4(); 08954 static inline bool_t xdr_ACCESS4args(); 08955 static inline bool_t xdr_ACCESS4resok(); 08956 static inline bool_t xdr_ACCESS4res(); 08957 static inline bool_t xdr_CLOSE4args(); 08958 static inline bool_t xdr_CLOSE4res(); 08959 static inline bool_t xdr_COMMIT4args(); 08960 static inline bool_t xdr_COMMIT4resok(); 08961 static inline bool_t xdr_COMMIT4res(); 08962 static inline bool_t xdr_createtype4(); 08963 static inline bool_t xdr_CREATE4args(); 08964 static inline bool_t xdr_CREATE4resok(); 08965 static inline bool_t xdr_CREATE4res(); 08966 static inline bool_t xdr_DELEGPURGE4args(); 08967 static inline bool_t xdr_DELEGPURGE4res(); 08968 static inline bool_t xdr_DELEGRETURN4args(); 08969 static inline bool_t xdr_DELEGRETURN4res(); 08970 static inline bool_t xdr_GETATTR4args(); 08971 static inline bool_t xdr_GETATTR4resok(); 08972 static inline bool_t xdr_GETATTR4res(); 08973 static inline bool_t xdr_GETFH4resok(); 08974 static inline bool_t xdr_GETFH4res(); 08975 static inline bool_t xdr_LINK4args(); 08976 static inline bool_t xdr_LINK4resok(); 08977 static inline bool_t xdr_LINK4res(); 08978 static inline bool_t xdr_open_to_lock_owner4(); 08979 static inline bool_t xdr_exist_lock_owner4(); 08980 static inline bool_t xdr_locker4(); 08981 static inline bool_t xdr_LOCK4args(); 08982 static inline bool_t xdr_LOCK4denied(); 08983 static inline bool_t xdr_LOCK4resok(); 08984 static inline bool_t xdr_LOCK4res(); 08985 static inline bool_t xdr_LOCKT4args(); 08986 static inline bool_t xdr_LOCKT4res(); 08987 static inline bool_t xdr_LOCKU4args(); 08988 static inline bool_t xdr_LOCKU4res(); 08989 static inline bool_t xdr_LOOKUP4args(); 08990 static inline bool_t xdr_LOOKUP4res(); 08991 static inline bool_t xdr_LOOKUPP4res(); 08992 static inline bool_t xdr_NVERIFY4args(); 08993 static inline bool_t xdr_NVERIFY4res(); 08994 static inline bool_t xdr_createmode4(); 08995 static inline bool_t xdr_creatverfattr(); 08996 static inline bool_t xdr_createhow4(); 08997 static inline bool_t xdr_opentype4(); 08998 static inline bool_t xdr_openflag4(); 08999 static inline bool_t xdr_limit_by4(); 09000 static inline bool_t xdr_nfs_modified_limit4(); 09001 static inline bool_t xdr_nfs_space_limit4(); 09002 static inline bool_t xdr_open_delegation_type4(); 09003 static inline bool_t xdr_open_claim_type4(); 09004 static inline bool_t xdr_open_claim_delegate_cur4(); 09005 static inline bool_t xdr_open_claim4(); 09006 static inline bool_t xdr_OPEN4args(); 09007 static inline bool_t xdr_open_read_delegation4(); 09008 static inline bool_t xdr_open_write_delegation4(); 09009 static inline bool_t xdr_why_no_delegation4(); 09010 static inline bool_t xdr_open_none_delegation4(); 09011 static inline bool_t xdr_open_delegation4(); 09012 static inline bool_t xdr_OPEN4resok(); 09013 static inline bool_t xdr_OPEN4res(); 09014 static inline bool_t xdr_OPENATTR4args(); 09015 static inline bool_t xdr_OPENATTR4res(); 09016 static inline bool_t xdr_OPEN_CONFIRM4args(); 09017 static inline bool_t xdr_OPEN_CONFIRM4resok(); 09018 static inline bool_t xdr_OPEN_CONFIRM4res(); 09019 static inline bool_t xdr_OPEN_DOWNGRADE4args(); 09020 static inline bool_t xdr_OPEN_DOWNGRADE4resok(); 09021 static inline bool_t xdr_OPEN_DOWNGRADE4res(); 09022 static inline bool_t xdr_PUTFH4args(); 09023 static inline bool_t xdr_PUTFH4res(); 09024 static inline bool_t xdr_PUTPUBFH4res(); 09025 static inline bool_t xdr_PUTROOTFH4res(); 09026 static inline bool_t xdr_READ4args(); 09027 static inline bool_t xdr_READ4resok(); 09028 static inline bool_t xdr_READ4res(); 09029 static inline bool_t xdr_READDIR4args(); 09030 static inline bool_t xdr_entry4(); 09031 static inline bool_t xdr_dirlist4(); 09032 static inline bool_t xdr_READDIR4resok(); 09033 static inline bool_t xdr_READDIR4res(); 09034 static inline bool_t xdr_READLINK4resok(); 09035 static inline bool_t xdr_READLINK4res(); 09036 static inline bool_t xdr_REMOVE4args(); 09037 static inline bool_t xdr_REMOVE4resok(); 09038 static inline bool_t xdr_REMOVE4res(); 09039 static inline bool_t xdr_RENAME4args(); 09040 static inline bool_t xdr_RENAME4resok(); 09041 static inline bool_t xdr_RENAME4res(); 09042 static inline bool_t xdr_RENEW4args(); 09043 static inline bool_t xdr_RENEW4res(); 09044 static inline bool_t xdr_RESTOREFH4res(); 09045 static inline bool_t xdr_SAVEFH4res(); 09046 static inline bool_t xdr_SECINFO4args(); 09047 static inline bool_t xdr_rpc_gss_svc_t(); 09048 static inline bool_t xdr_rpcsec_gss_info(); 09049 static inline bool_t xdr_secinfo4(); 09050 static inline bool_t xdr_SECINFO4resok(); 09051 static inline bool_t xdr_SECINFO4res(); 09052 static inline bool_t xdr_SETATTR4args(); 09053 static inline bool_t xdr_SETATTR4res(); 09054 static inline bool_t xdr_SETCLIENTID4args(); 09055 static inline bool_t xdr_SETCLIENTID4resok(); 09056 static inline bool_t xdr_SETCLIENTID4res(); 09057 static inline bool_t xdr_SETCLIENTID_CONFIRM4args(); 09058 static inline bool_t xdr_SETCLIENTID_CONFIRM4res(); 09059 static inline bool_t xdr_VERIFY4args(); 09060 static inline bool_t xdr_VERIFY4res(); 09061 static inline bool_t xdr_stable_how4(); 09062 static inline bool_t xdr_WRITE4args(); 09063 static inline bool_t xdr_WRITE4resok(); 09064 static inline bool_t xdr_WRITE4res(); 09065 static inline bool_t xdr_RELEASE_LOCKOWNER4args(); 09066 static inline bool_t xdr_RELEASE_LOCKOWNER4res(); 09067 static inline bool_t xdr_ILLEGAL4res(); 09068 static inline bool_t xdr_gsshandle4_t(); 09069 static inline bool_t xdr_gss_cb_handles4(); 09070 static inline bool_t xdr_callback_sec_parms4(); 09071 static inline bool_t xdr_BACKCHANNEL_CTL4args(); 09072 static inline bool_t xdr_BACKCHANNEL_CTL4res(); 09073 static inline bool_t xdr_channel_dir_from_client4(); 09074 static inline bool_t xdr_BIND_CONN_TO_SESSION4args(); 09075 static inline bool_t xdr_channel_dir_from_server4(); 09076 static inline bool_t xdr_BIND_CONN_TO_SESSION4resok(); 09077 static inline bool_t xdr_BIND_CONN_TO_SESSION4res(); 09078 static inline bool_t xdr_state_protect_ops4(); 09079 static inline bool_t xdr_ssv_sp_parms4(); 09080 static inline bool_t xdr_state_protect_how4(); 09081 static inline bool_t xdr_state_protect4_a(); 09082 static inline bool_t xdr_EXCHANGE_ID4args(); 09083 static inline bool_t xdr_ssv_prot_info4(); 09084 static inline bool_t xdr_state_protect4_r(); 09085 static inline bool_t xdr_EXCHANGE_ID4resok(); 09086 static inline bool_t xdr_EXCHANGE_ID4res(); 09087 static inline bool_t xdr_channel_attrs4(); 09088 static inline bool_t xdr_CREATE_SESSION4args(); 09089 static inline bool_t xdr_CREATE_SESSION4resok(); 09090 static inline bool_t xdr_CREATE_SESSION4res(); 09091 static inline bool_t xdr_DESTROY_SESSION4args(); 09092 static inline bool_t xdr_DESTROY_SESSION4res(); 09093 static inline bool_t xdr_FREE_STATEID4args(); 09094 static inline bool_t xdr_FREE_STATEID4res(); 09095 static inline bool_t xdr_attr_notice4(); 09096 static inline bool_t xdr_GET_DIR_DELEGATION4args(); 09097 static inline bool_t xdr_GET_DIR_DELEGATION4resok(); 09098 static inline bool_t xdr_gddrnf4_status(); 09099 static inline bool_t xdr_GET_DIR_DELEGATION4res_non_fatal(); 09100 static inline bool_t xdr_GET_DIR_DELEGATION4res(); 09101 static inline bool_t xdr_GETDEVICEINFO4args(); 09102 static inline bool_t xdr_GETDEVICEINFO4resok(); 09103 static inline bool_t xdr_GETDEVICEINFO4res(); 09104 static inline bool_t xdr_GETDEVICELIST4args(); 09105 static inline bool_t xdr_GETDEVICELIST4resok(); 09106 static inline bool_t xdr_GETDEVICELIST4res(); 09107 static inline bool_t xdr_newtime4(); 09108 static inline bool_t xdr_newoffset4(); 09109 static inline bool_t xdr_LAYOUTCOMMIT4args(); 09110 static inline bool_t xdr_newsize4(); 09111 static inline bool_t xdr_LAYOUTCOMMIT4resok(); 09112 static inline bool_t xdr_LAYOUTCOMMIT4res(); 09113 static inline bool_t xdr_LAYOUTGET4args(); 09114 static inline bool_t xdr_LAYOUTGET4resok(); 09115 static inline bool_t xdr_LAYOUTGET4res(); 09116 static inline bool_t xdr_LAYOUTRETURN4args(); 09117 static inline bool_t xdr_layoutreturn_stateid(); 09118 static inline bool_t xdr_LAYOUTRETURN4res(); 09119 static inline bool_t xdr_secinfo_style4(); 09120 static inline bool_t xdr_SECINFO_NO_NAME4args(); 09121 static inline bool_t xdr_SECINFO_NO_NAME4res(); 09122 static inline bool_t xdr_SEQUENCE4args(); 09123 static inline bool_t xdr_SEQUENCE4resok(); 09124 static inline bool_t xdr_SEQUENCE4res(); 09125 static inline bool_t xdr_ssa_digest_input4(); 09126 static inline bool_t xdr_SET_SSV4args(); 09127 static inline bool_t xdr_ssr_digest_input4(); 09128 static inline bool_t xdr_SET_SSV4resok(); 09129 static inline bool_t xdr_SET_SSV4res(); 09130 static inline bool_t xdr_TEST_STATEID4args(); 09131 static inline bool_t xdr_TEST_STATEID4resok(); 09132 static inline bool_t xdr_TEST_STATEID4res(); 09133 static inline bool_t xdr_deleg_claim4(); 09134 static inline bool_t xdr_WANT_DELEGATION4args(); 09135 static inline bool_t xdr_WANT_DELEGATION4res(); 09136 static inline bool_t xdr_DESTROY_CLIENTID4args(); 09137 static inline bool_t xdr_DESTROY_CLIENTID4res(); 09138 static inline bool_t xdr_RECLAIM_COMPLETE4args(); 09139 static inline bool_t xdr_RECLAIM_COMPLETE4res(); 09140 static inline bool_t xdr_nfs_opnum4(); 09141 static inline bool_t xdr_nfs_argop4(); 09142 static inline bool_t xdr_nfs_resop4(); 09143 static inline bool_t xdr_COMPOUND4args(); 09144 static inline bool_t xdr_COMPOUND4res(); 09145 static inline bool_t xdr_CB_GETATTR4args(); 09146 static inline bool_t xdr_CB_GETATTR4resok(); 09147 static inline bool_t xdr_CB_GETATTR4res(); 09148 static inline bool_t xdr_CB_RECALL4args(); 09149 static inline bool_t xdr_CB_RECALL4res(); 09150 static inline bool_t xdr_CB_ILLEGAL4res(); 09151 static inline bool_t xdr_layoutrecall_type4(); 09152 static inline bool_t xdr_layoutrecall_file4(); 09153 static inline bool_t xdr_layoutrecall4(); 09154 static inline bool_t xdr_CB_LAYOUTRECALL4args(); 09155 static inline bool_t xdr_CB_LAYOUTRECALL4res(); 09156 static inline bool_t xdr_notify_type4(); 09157 static inline bool_t xdr_notify_entry4(); 09158 static inline bool_t xdr_prev_entry4(); 09159 static inline bool_t xdr_notify_remove4(); 09160 static inline bool_t xdr_notify_add4(); 09161 static inline bool_t xdr_notify_attr4(); 09162 static inline bool_t xdr_notify_rename4(); 09163 static inline bool_t xdr_notify_verifier4(); 09164 static inline bool_t xdr_notifylist4(); 09165 static inline bool_t xdr_notify4(); 09166 static inline bool_t xdr_CB_NOTIFY4args(); 09167 static inline bool_t xdr_CB_NOTIFY4res(); 09168 static inline bool_t xdr_CB_PUSH_DELEG4args(); 09169 static inline bool_t xdr_CB_PUSH_DELEG4res(); 09170 static inline bool_t xdr_CB_RECALL_ANY4args(); 09171 static inline bool_t xdr_CB_RECALL_ANY4res(); 09172 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(); 09173 static inline bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(); 09174 static inline bool_t xdr_CB_RECALL_SLOT4args(); 09175 static inline bool_t xdr_CB_RECALL_SLOT4res(); 09176 static inline bool_t xdr_referring_call4(); 09177 static inline bool_t xdr_referring_call_list4(); 09178 static inline bool_t xdr_CB_SEQUENCE4args(); 09179 static inline bool_t xdr_CB_SEQUENCE4resok(); 09180 static inline bool_t xdr_CB_SEQUENCE4res(); 09181 static inline bool_t xdr_CB_WANTS_CANCELLED4args(); 09182 static inline bool_t xdr_CB_WANTS_CANCELLED4res(); 09183 static inline bool_t xdr_CB_NOTIFY_LOCK4args(); 09184 static inline bool_t xdr_CB_NOTIFY_LOCK4res(); 09185 static inline bool_t xdr_notify_deviceid_type4(); 09186 static inline bool_t xdr_notify_deviceid_delete4(); 09187 static inline bool_t xdr_notify_deviceid_change4(); 09188 static inline bool_t xdr_CB_NOTIFY_DEVICEID4args(); 09189 static inline bool_t xdr_CB_NOTIFY_DEVICEID4res(); 09190 static inline bool_t xdr_nfs_cb_opnum4(); 09191 static inline bool_t xdr_nfs_cb_argop4(); 09192 static inline bool_t xdr_nfs_cb_resop4(); 09193 static inline bool_t xdr_CB_COMPOUND4args(); 09194 static inline bool_t xdr_CB_COMPOUND4res(); 09195 09196 #endif /* 0 */ 09197 #endif /* K&R C */ 09198 09199 #ifdef __cplusplus 09200 } 09201 #endif 09202 09203 #endif /* !_NFSV41_H_RPCGEN */