nfs-ganesha 1.4

nfsv41.h

Go to the documentation of this file.
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 */