nfs-ganesha 1.4

xdr_nfsv41.c

Go to the documentation of this file.
00001 /*
00002  * Please do not edit this file.
00003  * It was generated using rpcgen.
00004  */
00005 
00006 #ifdef HAVE_CONFIG_H
00007 #include "config.h"
00008 #endif
00009 
00010 #ifdef _SOLARIS
00011 #include "solaris_port.h"
00012 #endif
00013 
00014 #include "rpc.h"
00015 
00016 #include "nfsv41.h"
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 typedef struct authsys_parms authsys_parms;
00025 #endif                          /*  _AUTH_SYS_DEFINE_FOR_NFSv41 */
00026 
00027 bool_t xdr_nfs_ftype4(XDR * xdrs, nfs_ftype4 * objp)
00028 {
00029   if(!xdr_enum(xdrs, (enum_t *) objp))
00030     return FALSE;
00031   return TRUE;
00032 }
00033 
00034 bool_t xdr_nfsstat4(XDR * xdrs, nfsstat4 * objp)
00035 {
00036   if(!xdr_enum(xdrs, (enum_t *) objp))
00037     return FALSE;
00038   return TRUE;
00039 }
00040 
00041 bool_t xdr_attrlist4(XDR * xdrs, attrlist4 * objp)
00042 {
00043   if(!xdr_bytes(xdrs, (char **)&objp->attrlist4_val, (u_int *) & objp->attrlist4_len, ~0))
00044     return FALSE;
00045   return TRUE;
00046 }
00047 
00048 bool_t xdr_bitmap4(XDR * xdrs, bitmap4 * objp)
00049 {
00050   if(!xdr_array(xdrs, (char **)&objp->bitmap4_val, (u_int *) & objp->bitmap4_len, ~0,
00051                 sizeof(uint32_t), (xdrproc_t) xdr_uint32_t))
00052     return FALSE;
00053   return TRUE;
00054 }
00055 
00056 bool_t xdr_changeid4(XDR * xdrs, changeid4 * objp)
00057 {
00058   if(!xdr_uint64_t(xdrs, objp))
00059     return FALSE;
00060   return TRUE;
00061 }
00062 
00063 bool_t xdr_clientid4(XDR * xdrs, clientid4 * objp)
00064 {
00065   if(!xdr_uint64_t(xdrs, objp))
00066     return FALSE;
00067   return TRUE;
00068 }
00069 
00070 bool_t xdr_count4(XDR * xdrs, count4 * objp)
00071 {
00072   if(!xdr_uint32_t(xdrs, objp))
00073     return FALSE;
00074   return TRUE;
00075 }
00076 
00077 bool_t xdr_length4(XDR * xdrs, length4 * objp)
00078 {
00079   if(!xdr_uint64_t(xdrs, objp))
00080     return FALSE;
00081   return TRUE;
00082 }
00083 
00084 bool_t xdr_mode4(XDR * xdrs, mode4 * objp)
00085 {
00086   if(!xdr_uint32_t(xdrs, objp))
00087     return FALSE;
00088   return TRUE;
00089 }
00090 
00091 bool_t xdr_nfs_cookie4(XDR * xdrs, nfs_cookie4 * objp)
00092 {
00093   if(!xdr_uint64_t(xdrs, objp))
00094     return FALSE;
00095   return TRUE;
00096 }
00097 
00098 bool_t xdr_nfs_fh4(XDR * xdrs, nfs_fh4 * objp)
00099 {
00100   if(!xdr_bytes
00101      (xdrs, (char **)&objp->nfs_fh4_val, (u_int *) & objp->nfs_fh4_len, NFS4_FHSIZE))
00102     return FALSE;
00103   return TRUE;
00104 }
00105 
00106 bool_t xdr_offset4(XDR * xdrs, offset4 * objp)
00107 {
00108   if(!xdr_uint64_t(xdrs, objp))
00109     return FALSE;
00110   return TRUE;
00111 }
00112 
00113 bool_t xdr_qop4(XDR * xdrs, qop4 * objp)
00114 {
00115   if(!xdr_uint32_t(xdrs, objp))
00116     return FALSE;
00117   return TRUE;
00118 }
00119 
00120 bool_t xdr_sec_oid4(XDR * xdrs, sec_oid4 * objp)
00121 {
00122   if(!xdr_bytes(xdrs, (char **)&objp->sec_oid4_val, (u_int *) & objp->sec_oid4_len, ~0))
00123     return FALSE;
00124   return TRUE;
00125 }
00126 
00127 bool_t xdr_sequenceid4(XDR * xdrs, sequenceid4 * objp)
00128 {
00129   if(!xdr_uint32_t(xdrs, objp))
00130     return FALSE;
00131   return TRUE;
00132 }
00133 
00134 bool_t xdr_seqid4(XDR * xdrs, seqid4 * objp)
00135 {
00136   if(!xdr_uint32_t(xdrs, objp))
00137     return FALSE;
00138   return TRUE;
00139 }
00140 
00141 bool_t xdr_sessionid4(XDR * xdrs, sessionid4 objp)
00142 {
00143   if(!xdr_opaque(xdrs, objp, NFS4_SESSIONID_SIZE))
00144     return FALSE;
00145   return TRUE;
00146 }
00147 
00148 bool_t xdr_slotid4(XDR * xdrs, slotid4 * objp)
00149 {
00150   if(!xdr_uint32_t(xdrs, objp))
00151     return FALSE;
00152   return TRUE;
00153 }
00154 
00155 bool_t xdr_utf8string(XDR * xdrs, utf8string * objp)
00156 {
00157   if(!xdr_bytes
00158      (xdrs, (char **)&objp->utf8string_val, (u_int *) & objp->utf8string_len, ~0))
00159     return FALSE;
00160   return TRUE;
00161 }
00162 
00163 bool_t xdr_utf8str_cis(XDR * xdrs, utf8str_cis * objp)
00164 {
00165   if(!xdr_utf8string(xdrs, objp))
00166     return FALSE;
00167   return TRUE;
00168 }
00169 
00170 bool_t xdr_utf8str_cs(XDR * xdrs, utf8str_cs * objp)
00171 {
00172   if(!xdr_utf8string(xdrs, objp))
00173     return FALSE;
00174   return TRUE;
00175 }
00176 
00177 bool_t xdr_utf8str_mixed(XDR * xdrs, utf8str_mixed * objp)
00178 {
00179   if(!xdr_utf8string(xdrs, objp))
00180     return FALSE;
00181   return TRUE;
00182 }
00183 
00184 bool_t xdr_component4(XDR * xdrs, component4 * objp)
00185 {
00186   if(!xdr_utf8str_cs(xdrs, objp))
00187     return FALSE;
00188   return TRUE;
00189 }
00190 
00191 bool_t xdr_linktext4(XDR * xdrs, linktext4 * objp)
00192 {
00193   if(!xdr_utf8str_cs(xdrs, objp))
00194     return FALSE;
00195   return TRUE;
00196 }
00197 
00198 bool_t xdr_pathname4(XDR * xdrs, pathname4 * objp)
00199 {
00200   if(!xdr_array(xdrs, (char **)&objp->pathname4_val, (u_int *) & objp->pathname4_len, ~0,
00201                 sizeof(component4), (xdrproc_t) xdr_component4))
00202     return FALSE;
00203   return TRUE;
00204 }
00205 
00206 bool_t xdr_verifier4(XDR * xdrs, verifier4 objp)
00207 {
00208   if(!xdr_opaque(xdrs, objp, NFS4_VERIFIER_SIZE))
00209     return FALSE;
00210   return TRUE;
00211 }
00212 
00213 bool_t xdr_nfstime4(XDR * xdrs, nfstime4 * objp)
00214 {
00215   if(!xdr_int64_t(xdrs, &objp->seconds))
00216     return FALSE;
00217   if(!xdr_uint32_t(xdrs, &objp->nseconds))
00218     return FALSE;
00219   return TRUE;
00220 }
00221 
00222 bool_t xdr_time_how4(XDR * xdrs, time_how4 * objp)
00223 {
00224   if(!xdr_enum(xdrs, (enum_t *) objp))
00225     return FALSE;
00226   return TRUE;
00227 }
00228 
00229 bool_t xdr_settime4(XDR * xdrs, settime4 * objp)
00230 {
00231   if(!xdr_time_how4(xdrs, &objp->set_it))
00232     return FALSE;
00233   switch (objp->set_it)
00234     {
00235     case SET_TO_CLIENT_TIME4:
00236       if(!xdr_nfstime4(xdrs, &objp->settime4_u.time))
00237         return FALSE;
00238       break;
00239     default:
00240       break;
00241     }
00242   return TRUE;
00243 }
00244 
00245 bool_t xdr_nfs_lease4(XDR * xdrs, nfs_lease4 * objp)
00246 {
00247   if(!xdr_uint32_t(xdrs, objp))
00248     return FALSE;
00249   return TRUE;
00250 }
00251 
00252 bool_t xdr_fsid4(XDR * xdrs, fsid4 * objp)
00253 {
00254   if(!xdr_uint64_t(xdrs, &objp->major))
00255     return FALSE;
00256   if(!xdr_uint64_t(xdrs, &objp->minor))
00257     return FALSE;
00258   return TRUE;
00259 }
00260 
00261 bool_t xdr_change_policy4(XDR * xdrs, change_policy4 * objp)
00262 {
00263   if(!xdr_uint64_t(xdrs, &objp->cp_major))
00264     return FALSE;
00265   if(!xdr_uint64_t(xdrs, &objp->cp_minor))
00266     return FALSE;
00267   return TRUE;
00268 }
00269 
00270 bool_t xdr_fs_location4(XDR * xdrs, fs_location4 * objp)
00271 {
00272   if(!xdr_array
00273      (xdrs, (char **)&objp->server.server_val, (u_int *) & objp->server.server_len, ~0,
00274       sizeof(utf8str_cis), (xdrproc_t) xdr_utf8str_cis))
00275     return FALSE;
00276   if(!xdr_pathname4(xdrs, &objp->rootpath))
00277     return FALSE;
00278   return TRUE;
00279 }
00280 
00281 bool_t xdr_fs_locations4(XDR * xdrs, fs_locations4 * objp)
00282 {
00283   if(!xdr_pathname4(xdrs, &objp->fs_root))
00284     return FALSE;
00285   if(!xdr_array
00286      (xdrs, (char **)&objp->locations.locations_val,
00287       (u_int *) & objp->locations.locations_len, ~0, sizeof(fs_location4),
00288       (xdrproc_t) xdr_fs_location4))
00289     return FALSE;
00290   return TRUE;
00291 }
00292 
00293 bool_t xdr_acetype4(XDR * xdrs, acetype4 * objp)
00294 {
00295   if(!xdr_uint32_t(xdrs, objp))
00296     return FALSE;
00297   return TRUE;
00298 }
00299 
00300 bool_t xdr_aceflag4(XDR * xdrs, aceflag4 * objp)
00301 {
00302   if(!xdr_uint32_t(xdrs, objp))
00303     return FALSE;
00304   return TRUE;
00305 }
00306 
00307 bool_t xdr_acemask4(XDR * xdrs, acemask4 * objp)
00308 {
00309   if(!xdr_uint32_t(xdrs, objp))
00310     return FALSE;
00311   return TRUE;
00312 }
00313 
00314 bool_t xdr_nfsace4(XDR * xdrs, nfsace4 * objp)
00315 {
00316   if(!xdr_acetype4(xdrs, &objp->type))
00317     return FALSE;
00318   if(!xdr_aceflag4(xdrs, &objp->flag))
00319     return FALSE;
00320   if(!xdr_acemask4(xdrs, &objp->access_mask))
00321     return FALSE;
00322   if(!xdr_utf8str_mixed(xdrs, &objp->who))
00323     return FALSE;
00324   return TRUE;
00325 }
00326 
00327 bool_t xdr_aclflag4(XDR * xdrs, aclflag4 * objp)
00328 {
00329   if(!xdr_uint32_t(xdrs, objp))
00330     return FALSE;
00331   return TRUE;
00332 }
00333 
00334 bool_t xdr_nfsacl41(XDR * xdrs, nfsacl41 * objp)
00335 {
00336   if(!xdr_aclflag4(xdrs, &objp->na41_flag))
00337     return FALSE;
00338   if(!xdr_array
00339      (xdrs, (char **)&objp->na41_aces.na41_aces_val,
00340       (u_int *) & objp->na41_aces.na41_aces_len, ~0, sizeof(nfsace4),
00341       (xdrproc_t) xdr_nfsace4))
00342     return FALSE;
00343   return TRUE;
00344 }
00345 
00346 bool_t xdr_mode_masked4(XDR * xdrs, mode_masked4 * objp)
00347 {
00348   if(!xdr_mode4(xdrs, &objp->mm_value_to_set))
00349     return FALSE;
00350   if(!xdr_mode4(xdrs, &objp->mm_mask_bits))
00351     return FALSE;
00352   return TRUE;
00353 }
00354 
00355 bool_t xdr_specdata4(XDR * xdrs, specdata4 * objp)
00356 {
00357   if(!xdr_uint32_t(xdrs, &objp->specdata1))
00358     return FALSE;
00359   if(!xdr_uint32_t(xdrs, &objp->specdata2))
00360     return FALSE;
00361   return TRUE;
00362 }
00363 
00364 bool_t xdr_netaddr4(XDR * xdrs, netaddr4 * objp)
00365 {
00366   if(!xdr_string(xdrs, &objp->r_netid, ~0))
00367     return FALSE;
00368   if(!xdr_string(xdrs, &objp->r_addr, ~0))
00369     return FALSE;
00370   return TRUE;
00371 }
00372 
00373 bool_t xdr_nfs_impl_id4(XDR * xdrs, nfs_impl_id4 * objp)
00374 {
00375   if(!xdr_utf8str_cis(xdrs, &objp->nii_domain))
00376     return FALSE;
00377   if(!xdr_utf8str_cs(xdrs, &objp->nii_name))
00378     return FALSE;
00379   if(!xdr_nfstime4(xdrs, &objp->nii_date))
00380     return FALSE;
00381   return TRUE;
00382 }
00383 
00384 bool_t xdr_stateid4(XDR * xdrs, stateid4 * objp)
00385 {
00386   if(!xdr_uint32_t(xdrs, &objp->seqid))
00387     return FALSE;
00388   if(!xdr_opaque(xdrs, objp->other, 12))
00389     return FALSE;
00390   return TRUE;
00391 }
00392 
00393 bool_t xdr_layouttype4(XDR * xdrs, layouttype4 * objp)
00394 {
00395   if(!xdr_enum(xdrs, (enum_t *) objp))
00396     return FALSE;
00397   return TRUE;
00398 }
00399 
00400 bool_t xdr_layout_content4(XDR * xdrs, layout_content4 * objp)
00401 {
00402   if(!xdr_layouttype4(xdrs, &objp->loc_type))
00403     return FALSE;
00404   if(!xdr_bytes
00405      (xdrs, (char **)&objp->loc_body.loc_body_val,
00406       (u_int *) & objp->loc_body.loc_body_len, ~0))
00407     return FALSE;
00408   return TRUE;
00409 }
00410 
00411 /*
00412  * LAYOUT4_OSD2_OBJECTS loc_body description
00413  * is in a separate .x file
00414  */
00415 
00416 /*
00417  * LAYOUT4_BLOCK_VOLUME loc_body description
00418  * is in a separate .x file
00419  */
00420 
00421 bool_t xdr_layouthint4(XDR * xdrs, layouthint4 * objp)
00422 {
00423   if(!xdr_layouttype4(xdrs, &objp->loh_type))
00424     return FALSE;
00425   if(!xdr_bytes
00426      (xdrs, (char **)&objp->loh_body.loh_body_val,
00427       (u_int *) & objp->loh_body.loh_body_len, ~0))
00428     return FALSE;
00429   return TRUE;
00430 }
00431 
00432 bool_t xdr_layoutiomode4(XDR * xdrs, layoutiomode4 * objp)
00433 {
00434   if(!xdr_enum(xdrs, (enum_t *) objp))
00435     return FALSE;
00436   return TRUE;
00437 }
00438 
00439 bool_t xdr_layout4(XDR * xdrs, layout4 * objp)
00440 {
00441   if(!xdr_offset4(xdrs, &objp->lo_offset))
00442     return FALSE;
00443   if(!xdr_length4(xdrs, &objp->lo_length))
00444     return FALSE;
00445   if(!xdr_layoutiomode4(xdrs, &objp->lo_iomode))
00446     return FALSE;
00447   if(!xdr_layout_content4(xdrs, &objp->lo_content))
00448     return FALSE;
00449   return TRUE;
00450 }
00451 
00452 bool_t xdr_deviceid4(XDR * xdrs, deviceid4 objp)
00453 {
00454   if(!xdr_opaque(xdrs, objp, NFS4_DEVICEID4_SIZE))
00455     return FALSE;
00456   return TRUE;
00457 }
00458 
00459 bool_t xdr_device_addr4(XDR * xdrs, device_addr4 * objp)
00460 {
00461   if(!xdr_layouttype4(xdrs, &objp->da_layout_type))
00462     return FALSE;
00463   if(!xdr_bytes
00464      (xdrs, (char **)&objp->da_addr_body.da_addr_body_val,
00465       (u_int *) & objp->da_addr_body.da_addr_body_len, ~0))
00466     return FALSE;
00467   return TRUE;
00468 }
00469 
00470 bool_t xdr_layoutupdate4(XDR * xdrs, layoutupdate4 * objp)
00471 {
00472   if(!xdr_layouttype4(xdrs, &objp->lou_type))
00473     return FALSE;
00474   if(!xdr_bytes
00475      (xdrs, (char **)&objp->lou_body.lou_body_val,
00476       (u_int *) & objp->lou_body.lou_body_len, ~0))
00477     return FALSE;
00478   return TRUE;
00479 }
00480 
00481 bool_t xdr_layoutreturn_type4(XDR * xdrs, layoutreturn_type4 * objp)
00482 {
00483   if(!xdr_enum(xdrs, (enum_t *) objp))
00484     return FALSE;
00485   return TRUE;
00486 }
00487 
00488  /* layouttype4 specific data */
00489 
00490 bool_t xdr_layoutreturn_file4(XDR * xdrs, layoutreturn_file4 * objp)
00491 {
00492   if(!xdr_offset4(xdrs, &objp->lrf_offset))
00493     return FALSE;
00494   if(!xdr_length4(xdrs, &objp->lrf_length))
00495     return FALSE;
00496   if(!xdr_stateid4(xdrs, &objp->lrf_stateid))
00497     return FALSE;
00498   if(!xdr_bytes
00499      (xdrs, (char **)&objp->lrf_body.lrf_body_val,
00500       (u_int *) & objp->lrf_body.lrf_body_len, ~0))
00501     return FALSE;
00502   return TRUE;
00503 }
00504 
00505 bool_t xdr_layoutreturn4(XDR * xdrs, layoutreturn4 * objp)
00506 {
00507   if(!xdr_layoutreturn_type4(xdrs, &objp->lr_returntype))
00508     return FALSE;
00509   switch (objp->lr_returntype)
00510     {
00511     case LAYOUTRETURN4_FILE:
00512       if(!xdr_layoutreturn_file4(xdrs, &objp->layoutreturn4_u.lr_layout))
00513         return FALSE;
00514       break;
00515     default:
00516       break;
00517     }
00518   return TRUE;
00519 }
00520 
00521 bool_t xdr_fs4_status_type(XDR * xdrs, fs4_status_type * objp)
00522 {
00523   if(!xdr_enum(xdrs, (enum_t *) objp))
00524     return FALSE;
00525   return TRUE;
00526 }
00527 
00528 bool_t xdr_fs4_status(XDR * xdrs, fs4_status * objp)
00529 {
00530   if(!xdr_bool(xdrs, &objp->fss_absent))
00531     return FALSE;
00532   if(!xdr_fs4_status_type(xdrs, &objp->fss_type))
00533     return FALSE;
00534   if(!xdr_utf8str_cs(xdrs, &objp->fss_source))
00535     return FALSE;
00536   if(!xdr_utf8str_cs(xdrs, &objp->fss_current))
00537     return FALSE;
00538   if(!xdr_int32_t(xdrs, &objp->fss_age))
00539     return FALSE;
00540   if(!xdr_nfstime4(xdrs, &objp->fss_version))
00541     return FALSE;
00542   return TRUE;
00543 }
00544 
00545 bool_t xdr_threshold4_read_size(XDR * xdrs, threshold4_read_size * objp)
00546 {
00547   if(!xdr_length4(xdrs, objp))
00548     return FALSE;
00549   return TRUE;
00550 }
00551 
00552 bool_t xdr_threshold4_write_size(XDR * xdrs, threshold4_write_size * objp)
00553 {
00554   if(!xdr_length4(xdrs, objp))
00555     return FALSE;
00556   return TRUE;
00557 }
00558 
00559 bool_t xdr_threshold4_read_iosize(XDR * xdrs, threshold4_read_iosize * objp)
00560 {
00561   if(!xdr_length4(xdrs, objp))
00562     return FALSE;
00563   return TRUE;
00564 }
00565 
00566 bool_t xdr_threshold4_write_iosize(XDR * xdrs, threshold4_write_iosize * objp)
00567 {
00568   if(!xdr_length4(xdrs, objp))
00569     return FALSE;
00570   return TRUE;
00571 }
00572 
00573 bool_t xdr_threshold_item4(XDR * xdrs, threshold_item4 * objp)
00574 {
00575   if(!xdr_layouttype4(xdrs, &objp->thi_layout_type))
00576     return FALSE;
00577   if(!xdr_bitmap4(xdrs, &objp->thi_hintset))
00578     return FALSE;
00579   if(!xdr_bytes
00580      (xdrs, (char **)&objp->thi_hintlist.thi_hintlist_val,
00581       (u_int *) & objp->thi_hintlist.thi_hintlist_len, ~0))
00582     return FALSE;
00583   return TRUE;
00584 }
00585 
00586 bool_t xdr_mdsthreshold4(XDR * xdrs, mdsthreshold4 * objp)
00587 {
00588   if(!xdr_array
00589      (xdrs, (char **)&objp->mth_hints.mth_hints_val,
00590       (u_int *) & objp->mth_hints.mth_hints_len, ~0, sizeof(threshold_item4),
00591       (xdrproc_t) xdr_threshold_item4))
00592     return FALSE;
00593   return TRUE;
00594 }
00595 
00596 bool_t xdr_retention_get4(XDR * xdrs, retention_get4 * objp)
00597 {
00598   if(!xdr_uint64_t(xdrs, &objp->rg_duration))
00599     return FALSE;
00600   if(!xdr_array
00601      (xdrs, (char **)&objp->rg_begin_time.rg_begin_time_val,
00602       (u_int *) & objp->rg_begin_time.rg_begin_time_len, 1, sizeof(nfstime4),
00603       (xdrproc_t) xdr_nfstime4))
00604     return FALSE;
00605   return TRUE;
00606 }
00607 
00608 bool_t xdr_retention_set4(XDR * xdrs, retention_set4 * objp)
00609 {
00610   if(!xdr_bool(xdrs, &objp->rs_enable))
00611     return FALSE;
00612   if(!xdr_array
00613      (xdrs, (char **)&objp->rs_duration.rs_duration_val,
00614       (u_int *) & objp->rs_duration.rs_duration_len, 1, sizeof(uint64_t),
00615       (xdrproc_t) xdr_uint64_t))
00616     return FALSE;
00617   return TRUE;
00618 }
00619 
00620 bool_t xdr_fs_charset_cap4(XDR * xdrs, fs_charset_cap4 * objp)
00621 {
00622   if(!xdr_uint32_t(xdrs, objp))
00623     return FALSE;
00624   return TRUE;
00625 }
00626 
00627 bool_t xdr_fattr4_supported_attrs(XDR * xdrs, fattr4_supported_attrs * objp)
00628 {
00629   if(!xdr_bitmap4(xdrs, objp))
00630     return FALSE;
00631   return TRUE;
00632 }
00633 
00634 bool_t xdr_fattr4_type(XDR * xdrs, fattr4_type * objp)
00635 {
00636   if(!xdr_nfs_ftype4(xdrs, objp))
00637     return FALSE;
00638   return TRUE;
00639 }
00640 
00641 bool_t xdr_fattr4_fh_expire_type(XDR * xdrs, fattr4_fh_expire_type * objp)
00642 {
00643   if(!xdr_uint32_t(xdrs, objp))
00644     return FALSE;
00645   return TRUE;
00646 }
00647 
00648 bool_t xdr_fattr4_change(XDR * xdrs, fattr4_change * objp)
00649 {
00650   if(!xdr_changeid4(xdrs, objp))
00651     return FALSE;
00652   return TRUE;
00653 }
00654 
00655 bool_t xdr_fattr4_size(XDR * xdrs, fattr4_size * objp)
00656 {
00657   if(!xdr_uint64_t(xdrs, objp))
00658     return FALSE;
00659   return TRUE;
00660 }
00661 
00662 bool_t xdr_fattr4_link_support(XDR * xdrs, fattr4_link_support * objp)
00663 {
00664   if(!xdr_bool(xdrs, objp))
00665     return FALSE;
00666   return TRUE;
00667 }
00668 
00669 bool_t xdr_fattr4_symlink_support(XDR * xdrs, fattr4_symlink_support * objp)
00670 {
00671   if(!xdr_bool(xdrs, objp))
00672     return FALSE;
00673   return TRUE;
00674 }
00675 
00676 bool_t xdr_fattr4_named_attr(XDR * xdrs, fattr4_named_attr * objp)
00677 {
00678   if(!xdr_bool(xdrs, objp))
00679     return FALSE;
00680   return TRUE;
00681 }
00682 
00683 bool_t xdr_fattr4_fsid(XDR * xdrs, fattr4_fsid * objp)
00684 {
00685   if(!xdr_fsid4(xdrs, objp))
00686     return FALSE;
00687   return TRUE;
00688 }
00689 
00690 bool_t xdr_fattr4_unique_handles(XDR * xdrs, fattr4_unique_handles * objp)
00691 {
00692   if(!xdr_bool(xdrs, objp))
00693     return FALSE;
00694   return TRUE;
00695 }
00696 
00697 bool_t xdr_fattr4_lease_time(XDR * xdrs, fattr4_lease_time * objp)
00698 {
00699   if(!xdr_nfs_lease4(xdrs, objp))
00700     return FALSE;
00701   return TRUE;
00702 }
00703 
00704 bool_t xdr_fattr4_rdattr_error(XDR * xdrs, fattr4_rdattr_error * objp)
00705 {
00706   if(!xdr_nfsstat4(xdrs, objp))
00707     return FALSE;
00708   return TRUE;
00709 }
00710 
00711 bool_t xdr_fattr4_acl(XDR * xdrs, fattr4_acl * objp)
00712 {
00713   if(!xdr_array
00714      (xdrs, (char **)&objp->fattr4_acl_val, (u_int *) & objp->fattr4_acl_len, ~0,
00715       sizeof(nfsace4), (xdrproc_t) xdr_nfsace4))
00716     return FALSE;
00717   return TRUE;
00718 }
00719 
00720 bool_t xdr_fattr4_aclsupport(XDR * xdrs, fattr4_aclsupport * objp)
00721 {
00722   if(!xdr_uint32_t(xdrs, objp))
00723     return FALSE;
00724   return TRUE;
00725 }
00726 
00727 bool_t xdr_fattr4_archive(XDR * xdrs, fattr4_archive * objp)
00728 {
00729   if(!xdr_bool(xdrs, objp))
00730     return FALSE;
00731   return TRUE;
00732 }
00733 
00734 bool_t xdr_fattr4_cansettime(XDR * xdrs, fattr4_cansettime * objp)
00735 {
00736   if(!xdr_bool(xdrs, objp))
00737     return FALSE;
00738   return TRUE;
00739 }
00740 
00741 bool_t xdr_fattr4_case_insensitive(XDR * xdrs, fattr4_case_insensitive * objp)
00742 {
00743   if(!xdr_bool(xdrs, objp))
00744     return FALSE;
00745   return TRUE;
00746 }
00747 
00748 bool_t xdr_fattr4_case_preserving(XDR * xdrs, fattr4_case_preserving * objp)
00749 {
00750   if(!xdr_bool(xdrs, objp))
00751     return FALSE;
00752   return TRUE;
00753 }
00754 
00755 bool_t xdr_fattr4_chown_restricted(XDR * xdrs, fattr4_chown_restricted * objp)
00756 {
00757   if(!xdr_bool(xdrs, objp))
00758     return FALSE;
00759   return TRUE;
00760 }
00761 
00762 bool_t xdr_fattr4_fileid(XDR * xdrs, fattr4_fileid * objp)
00763 {
00764   if(!xdr_uint64_t(xdrs, objp))
00765     return FALSE;
00766   return TRUE;
00767 }
00768 
00769 bool_t xdr_fattr4_files_avail(XDR * xdrs, fattr4_files_avail * objp)
00770 {
00771   if(!xdr_uint64_t(xdrs, objp))
00772     return FALSE;
00773   return TRUE;
00774 }
00775 
00776 bool_t xdr_fattr4_filehandle(XDR * xdrs, fattr4_filehandle * objp)
00777 {
00778   if(!xdr_nfs_fh4(xdrs, objp))
00779     return FALSE;
00780   return TRUE;
00781 }
00782 
00783 bool_t xdr_fattr4_files_free(XDR * xdrs, fattr4_files_free * objp)
00784 {
00785   if(!xdr_uint64_t(xdrs, objp))
00786     return FALSE;
00787   return TRUE;
00788 }
00789 
00790 bool_t xdr_fattr4_files_total(XDR * xdrs, fattr4_files_total * objp)
00791 {
00792   if(!xdr_uint64_t(xdrs, objp))
00793     return FALSE;
00794   return TRUE;
00795 }
00796 
00797 bool_t xdr_fattr4_fs_locations(XDR * xdrs, fattr4_fs_locations * objp)
00798 {
00799   if(!xdr_fs_locations4(xdrs, objp))
00800     return FALSE;
00801   return TRUE;
00802 }
00803 
00804 bool_t xdr_fattr4_hidden(XDR * xdrs, fattr4_hidden * objp)
00805 {
00806   if(!xdr_bool(xdrs, objp))
00807     return FALSE;
00808   return TRUE;
00809 }
00810 
00811 bool_t xdr_fattr4_homogeneous(XDR * xdrs, fattr4_homogeneous * objp)
00812 {
00813   if(!xdr_bool(xdrs, objp))
00814     return FALSE;
00815   return TRUE;
00816 }
00817 
00818 bool_t xdr_fattr4_maxfilesize(XDR * xdrs, fattr4_maxfilesize * objp)
00819 {
00820   if(!xdr_uint64_t(xdrs, objp))
00821     return FALSE;
00822   return TRUE;
00823 }
00824 
00825 bool_t xdr_fattr4_maxlink(XDR * xdrs, fattr4_maxlink * objp)
00826 {
00827   if(!xdr_uint32_t(xdrs, objp))
00828     return FALSE;
00829   return TRUE;
00830 }
00831 
00832 bool_t xdr_fattr4_maxname(XDR * xdrs, fattr4_maxname * objp)
00833 {
00834   if(!xdr_uint32_t(xdrs, objp))
00835     return FALSE;
00836   return TRUE;
00837 }
00838 
00839 bool_t xdr_fattr4_maxread(XDR * xdrs, fattr4_maxread * objp)
00840 {
00841   if(!xdr_uint64_t(xdrs, objp))
00842     return FALSE;
00843   return TRUE;
00844 }
00845 
00846 bool_t xdr_fattr4_maxwrite(XDR * xdrs, fattr4_maxwrite * objp)
00847 {
00848   if(!xdr_uint64_t(xdrs, objp))
00849     return FALSE;
00850   return TRUE;
00851 }
00852 
00853 bool_t xdr_fattr4_mimetype(XDR * xdrs, fattr4_mimetype * objp)
00854 {
00855   if(!xdr_utf8str_cs(xdrs, objp))
00856     return FALSE;
00857   return TRUE;
00858 }
00859 
00860 bool_t xdr_fattr4_mode(XDR * xdrs, fattr4_mode * objp)
00861 {
00862   if(!xdr_mode4(xdrs, objp))
00863     return FALSE;
00864   return TRUE;
00865 }
00866 
00867 bool_t xdr_fattr4_mode_set_masked(XDR * xdrs, fattr4_mode_set_masked * objp)
00868 {
00869   if(!xdr_mode_masked4(xdrs, objp))
00870     return FALSE;
00871   return TRUE;
00872 }
00873 
00874 bool_t xdr_fattr4_mounted_on_fileid(XDR * xdrs, fattr4_mounted_on_fileid * objp)
00875 {
00876   if(!xdr_uint64_t(xdrs, objp))
00877     return FALSE;
00878   return TRUE;
00879 }
00880 
00881 bool_t xdr_fattr4_no_trunc(XDR * xdrs, fattr4_no_trunc * objp)
00882 {
00883   if(!xdr_bool(xdrs, objp))
00884     return FALSE;
00885   return TRUE;
00886 }
00887 
00888 bool_t xdr_fattr4_numlinks(XDR * xdrs, fattr4_numlinks * objp)
00889 {
00890   if(!xdr_uint32_t(xdrs, objp))
00891     return FALSE;
00892   return TRUE;
00893 }
00894 
00895 bool_t xdr_fattr4_owner(XDR * xdrs, fattr4_owner * objp)
00896 {
00897   if(!xdr_utf8str_mixed(xdrs, objp))
00898     return FALSE;
00899   return TRUE;
00900 }
00901 
00902 bool_t xdr_fattr4_owner_group(XDR * xdrs, fattr4_owner_group * objp)
00903 {
00904   if(!xdr_utf8str_mixed(xdrs, objp))
00905     return FALSE;
00906   return TRUE;
00907 }
00908 
00909 bool_t xdr_fattr4_quota_avail_hard(XDR * xdrs, fattr4_quota_avail_hard * objp)
00910 {
00911   if(!xdr_uint64_t(xdrs, objp))
00912     return FALSE;
00913   return TRUE;
00914 }
00915 
00916 bool_t xdr_fattr4_quota_avail_soft(XDR * xdrs, fattr4_quota_avail_soft * objp)
00917 {
00918   if(!xdr_uint64_t(xdrs, objp))
00919     return FALSE;
00920   return TRUE;
00921 }
00922 
00923 bool_t xdr_fattr4_quota_used(XDR * xdrs, fattr4_quota_used * objp)
00924 {
00925   if(!xdr_uint64_t(xdrs, objp))
00926     return FALSE;
00927   return TRUE;
00928 }
00929 
00930 bool_t xdr_fattr4_rawdev(XDR * xdrs, fattr4_rawdev * objp)
00931 {
00932   if(!xdr_specdata4(xdrs, objp))
00933     return FALSE;
00934   return TRUE;
00935 }
00936 
00937 bool_t xdr_fattr4_space_avail(XDR * xdrs, fattr4_space_avail * objp)
00938 {
00939   if(!xdr_uint64_t(xdrs, objp))
00940     return FALSE;
00941   return TRUE;
00942 }
00943 
00944 bool_t xdr_fattr4_space_free(XDR * xdrs, fattr4_space_free * objp)
00945 {
00946   if(!xdr_uint64_t(xdrs, objp))
00947     return FALSE;
00948   return TRUE;
00949 }
00950 
00951 bool_t xdr_fattr4_space_total(XDR * xdrs, fattr4_space_total * objp)
00952 {
00953   if(!xdr_uint64_t(xdrs, objp))
00954     return FALSE;
00955   return TRUE;
00956 }
00957 
00958 bool_t xdr_fattr4_space_used(XDR * xdrs, fattr4_space_used * objp)
00959 {
00960   if(!xdr_uint64_t(xdrs, objp))
00961     return FALSE;
00962   return TRUE;
00963 }
00964 
00965 bool_t xdr_fattr4_system(XDR * xdrs, fattr4_system * objp)
00966 {
00967   if(!xdr_bool(xdrs, objp))
00968     return FALSE;
00969   return TRUE;
00970 }
00971 
00972 bool_t xdr_fattr4_time_access(XDR * xdrs, fattr4_time_access * objp)
00973 {
00974   if(!xdr_nfstime4(xdrs, objp))
00975     return FALSE;
00976   return TRUE;
00977 }
00978 
00979 bool_t xdr_fattr4_time_access_set(XDR * xdrs, fattr4_time_access_set * objp)
00980 {
00981   if(!xdr_settime4(xdrs, objp))
00982     return FALSE;
00983   return TRUE;
00984 }
00985 
00986 bool_t xdr_fattr4_time_backup(XDR * xdrs, fattr4_time_backup * objp)
00987 {
00988   if(!xdr_nfstime4(xdrs, objp))
00989     return FALSE;
00990   return TRUE;
00991 }
00992 
00993 bool_t xdr_fattr4_time_create(XDR * xdrs, fattr4_time_create * objp)
00994 {
00995   if(!xdr_nfstime4(xdrs, objp))
00996     return FALSE;
00997   return TRUE;
00998 }
00999 
01000 bool_t xdr_fattr4_time_delta(XDR * xdrs, fattr4_time_delta * objp)
01001 {
01002   if(!xdr_nfstime4(xdrs, objp))
01003     return FALSE;
01004   return TRUE;
01005 }
01006 
01007 bool_t xdr_fattr4_time_metadata(XDR * xdrs, fattr4_time_metadata * objp)
01008 {
01009   if(!xdr_nfstime4(xdrs, objp))
01010     return FALSE;
01011   return TRUE;
01012 }
01013 
01014 bool_t xdr_fattr4_time_modify(XDR * xdrs, fattr4_time_modify * objp)
01015 {
01016   if(!xdr_nfstime4(xdrs, objp))
01017     return FALSE;
01018   return TRUE;
01019 }
01020 
01021 bool_t xdr_fattr4_time_modify_set(XDR * xdrs, fattr4_time_modify_set * objp)
01022 {
01023   if(!xdr_settime4(xdrs, objp))
01024     return FALSE;
01025   return TRUE;
01026 }
01027 
01028 bool_t xdr_fattr4_suppattr_exclcreat(XDR * xdrs, fattr4_suppattr_exclcreat * objp)
01029 {
01030   if(!xdr_bitmap4(xdrs, objp))
01031     return FALSE;
01032   return TRUE;
01033 }
01034 
01035 bool_t xdr_fattr4_dir_notif_delay(XDR * xdrs, fattr4_dir_notif_delay * objp)
01036 {
01037   if(!xdr_nfstime4(xdrs, objp))
01038     return FALSE;
01039   return TRUE;
01040 }
01041 
01042 bool_t xdr_fattr4_dirent_notif_delay(XDR * xdrs, fattr4_dirent_notif_delay * objp)
01043 {
01044   if(!xdr_nfstime4(xdrs, objp))
01045     return FALSE;
01046   return TRUE;
01047 }
01048 
01049 bool_t xdr_fattr4_fs_layout_types(XDR * xdrs, fattr4_fs_layout_types * objp)
01050 {
01051   if(!xdr_array
01052      (xdrs, (char **)&objp->fattr4_fs_layout_types_val,
01053       (u_int *) & objp->fattr4_fs_layout_types_len, ~0, sizeof(layouttype4),
01054       (xdrproc_t) xdr_layouttype4))
01055     return FALSE;
01056   return TRUE;
01057 }
01058 
01059 bool_t xdr_fattr4_fs_status(XDR * xdrs, fattr4_fs_status * objp)
01060 {
01061   if(!xdr_fs4_status(xdrs, objp))
01062     return FALSE;
01063   return TRUE;
01064 }
01065 
01066 bool_t xdr_fattr4_fs_charset_cap(XDR * xdrs, fattr4_fs_charset_cap * objp)
01067 {
01068   if(!xdr_fs_charset_cap4(xdrs, objp))
01069     return FALSE;
01070   return TRUE;
01071 }
01072 
01073 bool_t xdr_fattr4_layout_alignment(XDR * xdrs, fattr4_layout_alignment * objp)
01074 {
01075   if(!xdr_uint32_t(xdrs, objp))
01076     return FALSE;
01077   return TRUE;
01078 }
01079 
01080 bool_t xdr_fattr4_layout_blksize(XDR * xdrs, fattr4_layout_blksize * objp)
01081 {
01082   if(!xdr_uint32_t(xdrs, objp))
01083     return FALSE;
01084   return TRUE;
01085 }
01086 
01087 bool_t xdr_fattr4_layout_hint(XDR * xdrs, fattr4_layout_hint * objp)
01088 {
01089   if(!xdr_layouthint4(xdrs, objp))
01090     return FALSE;
01091   return TRUE;
01092 }
01093 
01094 bool_t xdr_fattr4_layout_types(XDR * xdrs, fattr4_layout_types * objp)
01095 {
01096   if(!xdr_array
01097      (xdrs, (char **)&objp->fattr4_layout_types_val,
01098       (u_int *) & objp->fattr4_layout_types_len, ~0, sizeof(layouttype4),
01099       (xdrproc_t) xdr_layouttype4))
01100     return FALSE;
01101   return TRUE;
01102 }
01103 
01104 bool_t xdr_fattr4_mdsthreshold(XDR * xdrs, fattr4_mdsthreshold * objp)
01105 {
01106   if(!xdr_mdsthreshold4(xdrs, objp))
01107     return FALSE;
01108   return TRUE;
01109 }
01110 
01111 bool_t xdr_fattr4_retention_get(XDR * xdrs, fattr4_retention_get * objp)
01112 {
01113   if(!xdr_retention_get4(xdrs, objp))
01114     return FALSE;
01115   return TRUE;
01116 }
01117 
01118 bool_t xdr_fattr4_retention_set(XDR * xdrs, fattr4_retention_set * objp)
01119 {
01120   if(!xdr_retention_set4(xdrs, objp))
01121     return FALSE;
01122   return TRUE;
01123 }
01124 
01125 bool_t xdr_fattr4_retentevt_get(XDR * xdrs, fattr4_retentevt_get * objp)
01126 {
01127   if(!xdr_retention_get4(xdrs, objp))
01128     return FALSE;
01129   return TRUE;
01130 }
01131 
01132 bool_t xdr_fattr4_retentevt_set(XDR * xdrs, fattr4_retentevt_set * objp)
01133 {
01134   if(!xdr_retention_set4(xdrs, objp))
01135     return FALSE;
01136   return TRUE;
01137 }
01138 
01139 bool_t xdr_fattr4_retention_hold(XDR * xdrs, fattr4_retention_hold * objp)
01140 {
01141   if(!xdr_uint64_t(xdrs, objp))
01142     return FALSE;
01143   return TRUE;
01144 }
01145 
01146 bool_t xdr_fattr4_dacl(XDR * xdrs, fattr4_dacl * objp)
01147 {
01148   if(!xdr_nfsacl41(xdrs, objp))
01149     return FALSE;
01150   return TRUE;
01151 }
01152 
01153 bool_t xdr_fattr4_sacl(XDR * xdrs, fattr4_sacl * objp)
01154 {
01155   if(!xdr_nfsacl41(xdrs, objp))
01156     return FALSE;
01157   return TRUE;
01158 }
01159 
01160 bool_t xdr_fattr4_change_policy(XDR * xdrs, fattr4_change_policy * objp)
01161 {
01162   if(!xdr_change_policy4(xdrs, objp))
01163     return FALSE;
01164   return TRUE;
01165 }
01166 
01167 /*
01168  * REQUIRED Attributes
01169  */
01170 /* new to NFSV4.1 */
01171 /*
01172  * RECOMMENDED Attributes
01173  */
01174 
01175 /* new to NFSV4.1 */
01176 
01177 bool_t xdr_fattr4(XDR * xdrs, fattr4 * objp)
01178 {
01179   if(!xdr_bitmap4(xdrs, &objp->attrmask))
01180     return FALSE;
01181   if(!xdr_attrlist4(xdrs, &objp->attr_vals))
01182     return FALSE;
01183   return TRUE;
01184 }
01185 
01186 bool_t xdr_change_info4(XDR * xdrs, change_info4 * objp)
01187 {
01188   if(!xdr_bool(xdrs, &objp->atomic))
01189     return FALSE;
01190   if(!xdr_changeid4(xdrs, &objp->before))
01191     return FALSE;
01192   if(!xdr_changeid4(xdrs, &objp->after))
01193     return FALSE;
01194   return TRUE;
01195 }
01196 
01197 bool_t xdr_clientaddr4(XDR * xdrs, clientaddr4 * objp)
01198 {
01199   if(!xdr_netaddr4(xdrs, objp))
01200     return FALSE;
01201   return TRUE;
01202 }
01203 
01204 bool_t xdr_cb_client4(XDR * xdrs, cb_client4 * objp)
01205 {
01206   if(!xdr_uint32_t(xdrs, &objp->cb_program))
01207     return FALSE;
01208   if(!xdr_netaddr4(xdrs, &objp->cb_location))
01209     return FALSE;
01210   return TRUE;
01211 }
01212 
01213 bool_t xdr_nfs_client_id4(XDR * xdrs, nfs_client_id4 * objp)
01214 {
01215   if(!xdr_verifier4(xdrs, objp->verifier))
01216     return FALSE;
01217   if(!xdr_bytes
01218      (xdrs, (char **)&objp->id.id_val, (u_int *) & objp->id.id_len, NFS4_OPAQUE_LIMIT))
01219     return FALSE;
01220   return TRUE;
01221 }
01222 
01223 bool_t xdr_client_owner4(XDR * xdrs, client_owner4 * objp)
01224 {
01225   if(!xdr_verifier4(xdrs, objp->co_verifier))
01226     return FALSE;
01227   if(!xdr_bytes
01228      (xdrs, (char **)&objp->co_ownerid.co_ownerid_val,
01229       (u_int *) & objp->co_ownerid.co_ownerid_len, NFS4_OPAQUE_LIMIT))
01230     return FALSE;
01231   return TRUE;
01232 }
01233 
01234 bool_t xdr_server_owner4(XDR * xdrs, server_owner4 * objp)
01235 {
01236   if(!xdr_uint64_t(xdrs, &objp->so_minor_id))
01237     return FALSE;
01238   if(!xdr_bytes
01239      (xdrs, (char **)&objp->so_major_id.so_major_id_val,
01240       (u_int *) & objp->so_major_id.so_major_id_len, NFS4_OPAQUE_LIMIT))
01241     return FALSE;
01242   return TRUE;
01243 }
01244 
01245 bool_t xdr_state_owner4(XDR * xdrs, state_owner4 * objp)
01246 {
01247   if(!xdr_clientid4(xdrs, &objp->clientid))
01248     return FALSE;
01249   if(!xdr_bytes
01250      (xdrs, (char **)&objp->owner.owner_val, (u_int *) & objp->owner.owner_len,
01251       NFS4_OPAQUE_LIMIT))
01252     return FALSE;
01253   return TRUE;
01254 }
01255 
01256 bool_t xdr_open_owner4(XDR * xdrs, open_owner4 * objp)
01257 {
01258   if(!xdr_state_owner4(xdrs, objp))
01259     return FALSE;
01260   return TRUE;
01261 }
01262 
01263 bool_t xdr_lock_owner4(XDR * xdrs, lock_owner4 * objp)
01264 {
01265   if(!xdr_state_owner4(xdrs, objp))
01266     return FALSE;
01267   return TRUE;
01268 }
01269 
01270 bool_t xdr_nfs_lock_type4(XDR * xdrs, nfs_lock_type4 * objp)
01271 {
01272   if(!xdr_enum(xdrs, (enum_t *) objp))
01273     return FALSE;
01274   return TRUE;
01275 }
01276 
01277 /* Input for computing subkeys */
01278 
01279 bool_t xdr_ssv_subkey4(XDR * xdrs, ssv_subkey4 * objp)
01280 {
01281   if(!xdr_enum(xdrs, (enum_t *) objp))
01282     return FALSE;
01283   return TRUE;
01284 }
01285 
01286 /* Input for computing smt_hmac */
01287 
01288 bool_t xdr_ssv_mic_plain_tkn4(XDR * xdrs, ssv_mic_plain_tkn4 * objp)
01289 {
01290   if(!xdr_uint32_t(xdrs, &objp->smpt_ssv_seq))
01291     return FALSE;
01292   if(!xdr_bytes
01293      (xdrs, (char **)&objp->smpt_orig_plain.smpt_orig_plain_val,
01294       (u_int *) & objp->smpt_orig_plain.smpt_orig_plain_len, ~0))
01295     return FALSE;
01296   return TRUE;
01297 }
01298 
01299 /* SSV GSS PerMsgToken token */
01300 
01301 bool_t xdr_ssv_mic_tkn4(XDR * xdrs, ssv_mic_tkn4 * objp)
01302 {
01303   if(!xdr_uint32_t(xdrs, &objp->smt_ssv_seq))
01304     return FALSE;
01305   if(!xdr_bytes
01306      (xdrs, (char **)&objp->smt_hmac.smt_hmac_val,
01307       (u_int *) & objp->smt_hmac.smt_hmac_len, ~0))
01308     return FALSE;
01309   return TRUE;
01310 }
01311 
01312 /* Input for computing ssct_encr_data and ssct_hmac */
01313 
01314 bool_t xdr_ssv_seal_plain_tkn4(XDR * xdrs, ssv_seal_plain_tkn4 * objp)
01315 {
01316   if(!xdr_bytes
01317      (xdrs, (char **)&objp->sspt_confounder.sspt_confounder_val,
01318       (u_int *) & objp->sspt_confounder.sspt_confounder_len, ~0))
01319     return FALSE;
01320   if(!xdr_uint32_t(xdrs, &objp->sspt_ssv_seq))
01321     return FALSE;
01322   if(!xdr_bytes
01323      (xdrs, (char **)&objp->sspt_orig_plain.sspt_orig_plain_val,
01324       (u_int *) & objp->sspt_orig_plain.sspt_orig_plain_len, ~0))
01325     return FALSE;
01326   if(!xdr_bytes
01327      (xdrs, (char **)&objp->sspt_pad.sspt_pad_val,
01328       (u_int *) & objp->sspt_pad.sspt_pad_len, ~0))
01329     return FALSE;
01330   return TRUE;
01331 }
01332 
01333 /* SSV GSS SealedMessage token */
01334 
01335 bool_t xdr_ssv_seal_cipher_tkn4(XDR * xdrs, ssv_seal_cipher_tkn4 * objp)
01336 {
01337   if(!xdr_uint32_t(xdrs, &objp->ssct_ssv_seq))
01338     return FALSE;
01339   if(!xdr_bytes
01340      (xdrs, (char **)&objp->ssct_iv.ssct_iv_val, (u_int *) & objp->ssct_iv.ssct_iv_len,
01341       ~0))
01342     return FALSE;
01343   if(!xdr_bytes
01344      (xdrs, (char **)&objp->ssct_encr_data.ssct_encr_data_val,
01345       (u_int *) & objp->ssct_encr_data.ssct_encr_data_len, ~0))
01346     return FALSE;
01347   if(!xdr_bytes
01348      (xdrs, (char **)&objp->ssct_hmac.ssct_hmac_val,
01349       (u_int *) & objp->ssct_hmac.ssct_hmac_len, ~0))
01350     return FALSE;
01351   return TRUE;
01352 }
01353 
01354 bool_t xdr_fs_locations_server4(XDR * xdrs, fs_locations_server4 * objp)
01355 {
01356   if(!xdr_int32_t(xdrs, &objp->fls_currency))
01357     return FALSE;
01358   if(!xdr_bytes
01359      (xdrs, (char **)&objp->fls_info.fls_info_val,
01360       (u_int *) & objp->fls_info.fls_info_len, ~0))
01361     return FALSE;
01362   if(!xdr_utf8str_cis(xdrs, &objp->fls_server))
01363     return FALSE;
01364   return TRUE;
01365 }
01366 
01367 bool_t xdr_fs_locations_item4(XDR * xdrs, fs_locations_item4 * objp)
01368 {
01369   if(!xdr_array
01370      (xdrs, (char **)&objp->fli_entries.fli_entries_val,
01371       (u_int *) & objp->fli_entries.fli_entries_len, ~0, sizeof(fs_locations_server4),
01372       (xdrproc_t) xdr_fs_locations_server4))
01373     return FALSE;
01374   if(!xdr_pathname4(xdrs, &objp->fli_rootpath))
01375     return FALSE;
01376   return TRUE;
01377 }
01378 
01379 bool_t xdr_fs_locations_info4(XDR * xdrs, fs_locations_info4 * objp)
01380 {
01381   if(!xdr_uint32_t(xdrs, &objp->fli_flags))
01382     return FALSE;
01383   if(!xdr_int32_t(xdrs, &objp->fli_valid_for))
01384     return FALSE;
01385   if(!xdr_pathname4(xdrs, &objp->fli_fs_root))
01386     return FALSE;
01387   if(!xdr_array
01388      (xdrs, (char **)&objp->fli_items.fli_items_val,
01389       (u_int *) & objp->fli_items.fli_items_len, ~0, sizeof(fs_locations_item4),
01390       (xdrproc_t) xdr_fs_locations_item4))
01391     return FALSE;
01392   return TRUE;
01393 }
01394 
01395 bool_t xdr_fattr4_fs_locations_info(XDR * xdrs, fattr4_fs_locations_info * objp)
01396 {
01397   if(!xdr_fs_locations_info4(xdrs, objp))
01398     return FALSE;
01399   return TRUE;
01400 }
01401 
01402 bool_t xdr_nfl_util4(XDR * xdrs, nfl_util4 * objp)
01403 {
01404   if(!xdr_uint32_t(xdrs, objp))
01405     return FALSE;
01406   return TRUE;
01407 }
01408 
01409 bool_t xdr_filelayout_hint_care4(XDR * xdrs, filelayout_hint_care4 * objp)
01410 {
01411   if(!xdr_enum(xdrs, (enum_t *) objp))
01412     return FALSE;
01413   return TRUE;
01414 }
01415 
01416 /* Encoded in the loh_body field of data type layouthint4: */
01417 
01418 bool_t xdr_nfsv4_1_file_layouthint4(XDR * xdrs, nfsv4_1_file_layouthint4 * objp)
01419 {
01420   if(!xdr_uint32_t(xdrs, &objp->nflh_care))
01421     return FALSE;
01422   if(!xdr_nfl_util4(xdrs, &objp->nflh_util))
01423     return FALSE;
01424   if(!xdr_count4(xdrs, &objp->nflh_stripe_count))
01425     return FALSE;
01426   return TRUE;
01427 }
01428 
01429 bool_t xdr_multipath_list4(XDR * xdrs, multipath_list4 * objp)
01430 {
01431   if(!xdr_array
01432      (xdrs, (char **)&objp->multipath_list4_val, (u_int *) & objp->multipath_list4_len,
01433       ~0, sizeof(netaddr4), (xdrproc_t) xdr_netaddr4))
01434     return FALSE;
01435   return TRUE;
01436 }
01437 
01438 /*
01439  * Encoded in the da_addr_body field of
01440  * data type device_addr4:
01441  */
01442 
01443 bool_t xdr_nfsv4_1_file_layout_ds_addr4(XDR * xdrs, nfsv4_1_file_layout_ds_addr4 * objp)
01444 {
01445   if(!xdr_array
01446      (xdrs, (char **)&objp->nflda_stripe_indices.nflda_stripe_indices_val,
01447       (u_int *) & objp->nflda_stripe_indices.nflda_stripe_indices_len, ~0,
01448       sizeof(uint32_t), (xdrproc_t) xdr_uint32_t))
01449     return FALSE;
01450   if(!xdr_array
01451      (xdrs, (char **)&objp->nflda_multipath_ds_list.nflda_multipath_ds_list_val,
01452       (u_int *) & objp->nflda_multipath_ds_list.nflda_multipath_ds_list_len, ~0,
01453       sizeof(multipath_list4), (xdrproc_t) xdr_multipath_list4))
01454     return FALSE;
01455   return TRUE;
01456 }
01457 
01458 /*
01459  * Encoded in the loc_body field of
01460  * data type layout_content4:
01461  */
01462 
01463 bool_t xdr_nfsv4_1_file_layout4(XDR * xdrs, nfsv4_1_file_layout4 * objp)
01464 {
01465   if(!xdr_deviceid4(xdrs, objp->nfl_deviceid))
01466     return FALSE;
01467   if(!xdr_nfl_util4(xdrs, &objp->nfl_util))
01468     return FALSE;
01469   if(!xdr_uint32_t(xdrs, &objp->nfl_first_stripe_index))
01470     return FALSE;
01471   if(!xdr_offset4(xdrs, &objp->nfl_pattern_offset))
01472     return FALSE;
01473   if(!xdr_array
01474      (xdrs, (char **)&objp->nfl_fh_list.nfl_fh_list_val,
01475       (u_int *) & objp->nfl_fh_list.nfl_fh_list_len, ~0, sizeof(nfs_fh4),
01476       (xdrproc_t) xdr_nfs_fh4))
01477     return FALSE;
01478   return TRUE;
01479 }
01480 
01481 /*
01482  * Encoded in the lou_body field of data type layoutupdate4:
01483  *      Nothing. lou_body is a zero length array of bytes.
01484  */
01485 
01486 /*
01487  * Encoded in the lrf_body field of
01488  * data type layoutreturn_file4:
01489  *      Nothing. lrf_body is a zero length array of bytes.
01490  */
01491 
01492 bool_t xdr_ACCESS4args(XDR * xdrs, ACCESS4args * objp)
01493 {
01494   if(!xdr_uint32_t(xdrs, &objp->access))
01495     return FALSE;
01496   return TRUE;
01497 }
01498 
01499 bool_t xdr_ACCESS4resok(XDR * xdrs, ACCESS4resok * objp)
01500 {
01501   if(!xdr_uint32_t(xdrs, &objp->supported))
01502     return FALSE;
01503   if(!xdr_uint32_t(xdrs, &objp->access))
01504     return FALSE;
01505   return TRUE;
01506 }
01507 
01508 bool_t xdr_ACCESS4res(XDR * xdrs, ACCESS4res * objp)
01509 {
01510   if(!xdr_nfsstat4(xdrs, &objp->status))
01511     return FALSE;
01512   switch (objp->status)
01513     {
01514     case NFS4_OK:
01515       if(!xdr_ACCESS4resok(xdrs, &objp->ACCESS4res_u.resok4))
01516         return FALSE;
01517       break;
01518     default:
01519       break;
01520     }
01521   return TRUE;
01522 }
01523 
01524 bool_t xdr_CLOSE4args(XDR * xdrs, CLOSE4args * objp)
01525 {
01526   if(!xdr_seqid4(xdrs, &objp->seqid))
01527     return FALSE;
01528   if(!xdr_stateid4(xdrs, &objp->open_stateid))
01529     return FALSE;
01530   return TRUE;
01531 }
01532 
01533 bool_t xdr_CLOSE4res(XDR * xdrs, CLOSE4res * objp)
01534 {
01535   if(!xdr_nfsstat4(xdrs, &objp->status))
01536     return FALSE;
01537   switch (objp->status)
01538     {
01539     case NFS4_OK:
01540       if(!xdr_stateid4(xdrs, &objp->CLOSE4res_u.open_stateid))
01541         return FALSE;
01542       break;
01543     default:
01544       break;
01545     }
01546   return TRUE;
01547 }
01548 
01549 bool_t xdr_COMMIT4args(XDR * xdrs, COMMIT4args * objp)
01550 {
01551   if(!xdr_offset4(xdrs, &objp->offset))
01552     return FALSE;
01553   if(!xdr_count4(xdrs, &objp->count))
01554     return FALSE;
01555   return TRUE;
01556 }
01557 
01558 bool_t xdr_COMMIT4resok(XDR * xdrs, COMMIT4resok * objp)
01559 {
01560   if(!xdr_verifier4(xdrs, objp->writeverf))
01561     return FALSE;
01562   return TRUE;
01563 }
01564 
01565 bool_t xdr_COMMIT4res(XDR * xdrs, COMMIT4res * objp)
01566 {
01567   if(!xdr_nfsstat4(xdrs, &objp->status))
01568     return FALSE;
01569   switch (objp->status)
01570     {
01571     case NFS4_OK:
01572       if(!xdr_COMMIT4resok(xdrs, &objp->COMMIT4res_u.resok4))
01573         return FALSE;
01574       break;
01575     default:
01576       break;
01577     }
01578   return TRUE;
01579 }
01580 
01581 bool_t xdr_createtype4(XDR * xdrs, createtype4 * objp)
01582 {
01583   if(!xdr_nfs_ftype4(xdrs, &objp->type))
01584     return FALSE;
01585   switch (objp->type)
01586     {
01587     case NF4LNK:
01588       if(!xdr_linktext4(xdrs, &objp->createtype4_u.linkdata))
01589         return FALSE;
01590       break;
01591     case NF4BLK:
01592     case NF4CHR:
01593       if(!xdr_specdata4(xdrs, &objp->createtype4_u.devdata))
01594         return FALSE;
01595       break;
01596     case NF4SOCK:
01597     case NF4FIFO:
01598     case NF4DIR:
01599       break;
01600     default:
01601       break;
01602     }
01603   return TRUE;
01604 }
01605 
01606 bool_t xdr_CREATE4args(XDR * xdrs, CREATE4args * objp)
01607 {
01608   if(!xdr_createtype4(xdrs, &objp->objtype))
01609     return FALSE;
01610   if(!xdr_component4(xdrs, &objp->objname))
01611     return FALSE;
01612   if(!xdr_fattr4(xdrs, &objp->createattrs))
01613     return FALSE;
01614   return TRUE;
01615 }
01616 
01617 bool_t xdr_CREATE4resok(XDR * xdrs, CREATE4resok * objp)
01618 {
01619   if(!xdr_change_info4(xdrs, &objp->cinfo))
01620     return FALSE;
01621   if(!xdr_bitmap4(xdrs, &objp->attrset))
01622     return FALSE;
01623   return TRUE;
01624 }
01625 
01626 bool_t xdr_CREATE4res(XDR * xdrs, CREATE4res * objp)
01627 {
01628   if(!xdr_nfsstat4(xdrs, &objp->status))
01629     return FALSE;
01630   switch (objp->status)
01631     {
01632     case NFS4_OK:
01633       if(!xdr_CREATE4resok(xdrs, &objp->CREATE4res_u.resok4))
01634         return FALSE;
01635       break;
01636     default:
01637       break;
01638     }
01639   return TRUE;
01640 }
01641 
01642 bool_t xdr_DELEGPURGE4args(XDR * xdrs, DELEGPURGE4args * objp)
01643 {
01644   if(!xdr_clientid4(xdrs, &objp->clientid))
01645     return FALSE;
01646   return TRUE;
01647 }
01648 
01649 bool_t xdr_DELEGPURGE4res(XDR * xdrs, DELEGPURGE4res * objp)
01650 {
01651   if(!xdr_nfsstat4(xdrs, &objp->status))
01652     return FALSE;
01653   return TRUE;
01654 }
01655 
01656 bool_t xdr_DELEGRETURN4args(XDR * xdrs, DELEGRETURN4args * objp)
01657 {
01658   if(!xdr_stateid4(xdrs, &objp->deleg_stateid))
01659     return FALSE;
01660   return TRUE;
01661 }
01662 
01663 bool_t xdr_DELEGRETURN4res(XDR * xdrs, DELEGRETURN4res * objp)
01664 {
01665   if(!xdr_nfsstat4(xdrs, &objp->status))
01666     return FALSE;
01667   return TRUE;
01668 }
01669 
01670 bool_t xdr_GETATTR4args(XDR * xdrs, GETATTR4args * objp)
01671 {
01672   if(!xdr_bitmap4(xdrs, &objp->attr_request))
01673     return FALSE;
01674   return TRUE;
01675 }
01676 
01677 bool_t xdr_GETATTR4resok(XDR * xdrs, GETATTR4resok * objp)
01678 {
01679   if(!xdr_fattr4(xdrs, &objp->obj_attributes))
01680     return FALSE;
01681   return TRUE;
01682 }
01683 
01684 bool_t xdr_GETATTR4res(XDR * xdrs, GETATTR4res * objp)
01685 {
01686   if(!xdr_nfsstat4(xdrs, &objp->status))
01687     return FALSE;
01688   switch (objp->status)
01689     {
01690     case NFS4_OK:
01691       if(!xdr_GETATTR4resok(xdrs, &objp->GETATTR4res_u.resok4))
01692         return FALSE;
01693       break;
01694     default:
01695       break;
01696     }
01697   return TRUE;
01698 }
01699 
01700 bool_t xdr_GETFH4resok(XDR * xdrs, GETFH4resok * objp)
01701 {
01702   if(!xdr_nfs_fh4(xdrs, &objp->object))
01703     return FALSE;
01704   return TRUE;
01705 }
01706 
01707 bool_t xdr_GETFH4res(XDR * xdrs, GETFH4res * objp)
01708 {
01709   if(!xdr_nfsstat4(xdrs, &objp->status))
01710     return FALSE;
01711   switch (objp->status)
01712     {
01713     case NFS4_OK:
01714       if(!xdr_GETFH4resok(xdrs, &objp->GETFH4res_u.resok4))
01715         return FALSE;
01716       break;
01717     default:
01718       break;
01719     }
01720   return TRUE;
01721 }
01722 
01723 bool_t xdr_LINK4args(XDR * xdrs, LINK4args * objp)
01724 {
01725   if(!xdr_component4(xdrs, &objp->newname))
01726     return FALSE;
01727   return TRUE;
01728 }
01729 
01730 bool_t xdr_LINK4resok(XDR * xdrs, LINK4resok * objp)
01731 {
01732   if(!xdr_change_info4(xdrs, &objp->cinfo))
01733     return FALSE;
01734   return TRUE;
01735 }
01736 
01737 bool_t xdr_LINK4res(XDR * xdrs, LINK4res * objp)
01738 {
01739   if(!xdr_nfsstat4(xdrs, &objp->status))
01740     return FALSE;
01741   switch (objp->status)
01742     {
01743     case NFS4_OK:
01744       if(!xdr_LINK4resok(xdrs, &objp->LINK4res_u.resok4))
01745         return FALSE;
01746       break;
01747     default:
01748       break;
01749     }
01750   return TRUE;
01751 }
01752 
01753 bool_t xdr_open_to_lock_owner4(XDR * xdrs, open_to_lock_owner4 * objp)
01754 {
01755   if(!xdr_seqid4(xdrs, &objp->open_seqid))
01756     return FALSE;
01757   if(!xdr_stateid4(xdrs, &objp->open_stateid))
01758     return FALSE;
01759   if(!xdr_seqid4(xdrs, &objp->lock_seqid))
01760     return FALSE;
01761   if(!xdr_lock_owner4(xdrs, &objp->lock_owner))
01762     return FALSE;
01763   return TRUE;
01764 }
01765 
01766 bool_t xdr_exist_lock_owner4(XDR * xdrs, exist_lock_owner4 * objp)
01767 {
01768   if(!xdr_stateid4(xdrs, &objp->lock_stateid))
01769     return FALSE;
01770   if(!xdr_seqid4(xdrs, &objp->lock_seqid))
01771     return FALSE;
01772   return TRUE;
01773 }
01774 
01775 bool_t xdr_locker4(XDR * xdrs, locker4 * objp)
01776 {
01777   if(!xdr_bool(xdrs, &objp->new_lock_owner))
01778     return FALSE;
01779   switch (objp->new_lock_owner)
01780     {
01781     case TRUE:
01782       if(!xdr_open_to_lock_owner4(xdrs, &objp->locker4_u.open_owner))
01783         return FALSE;
01784       break;
01785     case FALSE:
01786       if(!xdr_exist_lock_owner4(xdrs, &objp->locker4_u.lock_owner))
01787         return FALSE;
01788       break;
01789     default:
01790       return FALSE;
01791     }
01792   return TRUE;
01793 }
01794 
01795 bool_t xdr_LOCK4args(XDR * xdrs, LOCK4args * objp)
01796 {
01797   if(!xdr_nfs_lock_type4(xdrs, &objp->locktype))
01798     return FALSE;
01799   if(!xdr_bool(xdrs, &objp->reclaim))
01800     return FALSE;
01801   if(!xdr_offset4(xdrs, &objp->offset))
01802     return FALSE;
01803   if(!xdr_length4(xdrs, &objp->length))
01804     return FALSE;
01805   if(!xdr_locker4(xdrs, &objp->locker))
01806     return FALSE;
01807   return TRUE;
01808 }
01809 
01810 bool_t xdr_LOCK4denied(XDR * xdrs, LOCK4denied * objp)
01811 {
01812   if(!xdr_offset4(xdrs, &objp->offset))
01813     return FALSE;
01814   if(!xdr_length4(xdrs, &objp->length))
01815     return FALSE;
01816   if(!xdr_nfs_lock_type4(xdrs, &objp->locktype))
01817     return FALSE;
01818   if(!xdr_lock_owner4(xdrs, &objp->owner))
01819     return FALSE;
01820   return TRUE;
01821 }
01822 
01823 bool_t xdr_LOCK4resok(XDR * xdrs, LOCK4resok * objp)
01824 {
01825   if(!xdr_stateid4(xdrs, &objp->lock_stateid))
01826     return FALSE;
01827   return TRUE;
01828 }
01829 
01830 bool_t xdr_LOCK4res(XDR * xdrs, LOCK4res * objp)
01831 {
01832   if(!xdr_nfsstat4(xdrs, &objp->status))
01833     return FALSE;
01834   switch (objp->status)
01835     {
01836     case NFS4_OK:
01837       if(!xdr_LOCK4resok(xdrs, &objp->LOCK4res_u.resok4))
01838         return FALSE;
01839       break;
01840     case NFS4ERR_DENIED:
01841       if(!xdr_LOCK4denied(xdrs, &objp->LOCK4res_u.denied))
01842         return FALSE;
01843       break;
01844     default:
01845       break;
01846     }
01847   return TRUE;
01848 }
01849 
01850 bool_t xdr_LOCKT4args(XDR * xdrs, LOCKT4args * objp)
01851 {
01852   if(!xdr_nfs_lock_type4(xdrs, &objp->locktype))
01853     return FALSE;
01854   if(!xdr_offset4(xdrs, &objp->offset))
01855     return FALSE;
01856   if(!xdr_length4(xdrs, &objp->length))
01857     return FALSE;
01858   if(!xdr_lock_owner4(xdrs, &objp->owner))
01859     return FALSE;
01860   return TRUE;
01861 }
01862 
01863 bool_t xdr_LOCKT4res(XDR * xdrs, LOCKT4res * objp)
01864 {
01865   if(!xdr_nfsstat4(xdrs, &objp->status))
01866     return FALSE;
01867   switch (objp->status)
01868     {
01869     case NFS4ERR_DENIED:
01870       if(!xdr_LOCK4denied(xdrs, &objp->LOCKT4res_u.denied))
01871         return FALSE;
01872       break;
01873     case NFS4_OK:
01874       break;
01875     default:
01876       break;
01877     }
01878   return TRUE;
01879 }
01880 
01881 bool_t xdr_LOCKU4args(XDR * xdrs, LOCKU4args * objp)
01882 {
01883   if(!xdr_nfs_lock_type4(xdrs, &objp->locktype))
01884     return FALSE;
01885   if(!xdr_seqid4(xdrs, &objp->seqid))
01886     return FALSE;
01887   if(!xdr_stateid4(xdrs, &objp->lock_stateid))
01888     return FALSE;
01889   if(!xdr_offset4(xdrs, &objp->offset))
01890     return FALSE;
01891   if(!xdr_length4(xdrs, &objp->length))
01892     return FALSE;
01893   return TRUE;
01894 }
01895 
01896 bool_t xdr_LOCKU4res(XDR * xdrs, LOCKU4res * objp)
01897 {
01898   if(!xdr_nfsstat4(xdrs, &objp->status))
01899     return FALSE;
01900   switch (objp->status)
01901     {
01902     case NFS4_OK:
01903       if(!xdr_stateid4(xdrs, &objp->LOCKU4res_u.lock_stateid))
01904         return FALSE;
01905       break;
01906     default:
01907       break;
01908     }
01909   return TRUE;
01910 }
01911 
01912 bool_t xdr_LOOKUP4args(XDR * xdrs, LOOKUP4args * objp)
01913 {
01914   if(!xdr_component4(xdrs, &objp->objname))
01915     return FALSE;
01916   return TRUE;
01917 }
01918 
01919 bool_t xdr_LOOKUP4res(XDR * xdrs, LOOKUP4res * objp)
01920 {
01921   if(!xdr_nfsstat4(xdrs, &objp->status))
01922     return FALSE;
01923   return TRUE;
01924 }
01925 
01926 bool_t xdr_LOOKUPP4res(XDR * xdrs, LOOKUPP4res * objp)
01927 {
01928   if(!xdr_nfsstat4(xdrs, &objp->status))
01929     return FALSE;
01930   return TRUE;
01931 }
01932 
01933 bool_t xdr_NVERIFY4args(XDR * xdrs, NVERIFY4args * objp)
01934 {
01935   if(!xdr_fattr4(xdrs, &objp->obj_attributes))
01936     return FALSE;
01937   return TRUE;
01938 }
01939 
01940 bool_t xdr_NVERIFY4res(XDR * xdrs, NVERIFY4res * objp)
01941 {
01942   if(!xdr_nfsstat4(xdrs, &objp->status))
01943     return FALSE;
01944   return TRUE;
01945 }
01946 
01947 bool_t xdr_createmode4(XDR * xdrs, createmode4 * objp)
01948 {
01949   if(!xdr_enum(xdrs, (enum_t *) objp))
01950     return FALSE;
01951   return TRUE;
01952 }
01953 
01954 bool_t xdr_creatverfattr(XDR * xdrs, creatverfattr * objp)
01955 {
01956   if(!xdr_verifier4(xdrs, objp->cva_verf))
01957     return FALSE;
01958   if(!xdr_fattr4(xdrs, &objp->cva_attrs))
01959     return FALSE;
01960   return TRUE;
01961 }
01962 
01963 bool_t xdr_createhow4(XDR * xdrs, createhow4 * objp)
01964 {
01965   if(!xdr_createmode4(xdrs, &objp->mode))
01966     return FALSE;
01967   switch (objp->mode)
01968     {
01969     case UNCHECKED4:
01970     case GUARDED4:
01971       if(!xdr_fattr4(xdrs, &objp->createhow4_u.createattrs))
01972         return FALSE;
01973       break;
01974     case EXCLUSIVE4:
01975       if(!xdr_verifier4(xdrs, objp->createhow4_u.createverf))
01976         return FALSE;
01977       break;
01978     case EXCLUSIVE4_1:
01979       if(!xdr_creatverfattr(xdrs, &objp->createhow4_u.ch_createboth))
01980         return FALSE;
01981       break;
01982     default:
01983       return FALSE;
01984     }
01985   return TRUE;
01986 }
01987 
01988 bool_t xdr_opentype4(XDR * xdrs, opentype4 * objp)
01989 {
01990   if(!xdr_enum(xdrs, (enum_t *) objp))
01991     return FALSE;
01992   return TRUE;
01993 }
01994 
01995 bool_t xdr_openflag4(XDR * xdrs, openflag4 * objp)
01996 {
01997   if(!xdr_opentype4(xdrs, &objp->opentype))
01998     return FALSE;
01999   switch (objp->opentype)
02000     {
02001     case OPEN4_CREATE:
02002       if(!xdr_createhow4(xdrs, &objp->openflag4_u.how))
02003         return FALSE;
02004       break;
02005     default:
02006       break;
02007     }
02008   return TRUE;
02009 }
02010 
02011 bool_t xdr_limit_by4(XDR * xdrs, limit_by4 * objp)
02012 {
02013   if(!xdr_enum(xdrs, (enum_t *) objp))
02014     return FALSE;
02015   return TRUE;
02016 }
02017 
02018 bool_t xdr_nfs_modified_limit4(XDR * xdrs, nfs_modified_limit4 * objp)
02019 {
02020   if(!xdr_uint32_t(xdrs, &objp->num_blocks))
02021     return FALSE;
02022   if(!xdr_uint32_t(xdrs, &objp->bytes_per_block))
02023     return FALSE;
02024   return TRUE;
02025 }
02026 
02027 bool_t xdr_nfs_space_limit4(XDR * xdrs, nfs_space_limit4 * objp)
02028 {
02029   if(!xdr_limit_by4(xdrs, &objp->limitby))
02030     return FALSE;
02031   switch (objp->limitby)
02032     {
02033     case NFS_LIMIT_SIZE:
02034       if(!xdr_uint64_t(xdrs, &objp->nfs_space_limit4_u.filesize))
02035         return FALSE;
02036       break;
02037     case NFS_LIMIT_BLOCKS:
02038       if(!xdr_nfs_modified_limit4(xdrs, &objp->nfs_space_limit4_u.mod_blocks))
02039         return FALSE;
02040       break;
02041     default:
02042       return FALSE;
02043     }
02044   return TRUE;
02045 }
02046 
02047 bool_t xdr_open_delegation_type4(XDR * xdrs, open_delegation_type4 * objp)
02048 {
02049   if(!xdr_enum(xdrs, (enum_t *) objp))
02050     return FALSE;
02051   return TRUE;
02052 }
02053 
02054 bool_t xdr_open_claim_type4(XDR * xdrs, open_claim_type4 * objp)
02055 {
02056   if(!xdr_enum(xdrs, (enum_t *) objp))
02057     return FALSE;
02058   return TRUE;
02059 }
02060 
02061 bool_t xdr_open_claim_delegate_cur4(XDR * xdrs, open_claim_delegate_cur4 * objp)
02062 {
02063   if(!xdr_stateid4(xdrs, &objp->delegate_stateid))
02064     return FALSE;
02065   if(!xdr_component4(xdrs, &objp->file))
02066     return FALSE;
02067   return TRUE;
02068 }
02069 
02070 bool_t xdr_open_claim4(XDR * xdrs, open_claim4 * objp)
02071 {
02072   if(!xdr_open_claim_type4(xdrs, &objp->claim))
02073     return FALSE;
02074   switch (objp->claim)
02075     {
02076     case CLAIM_NULL:
02077       if(!xdr_component4(xdrs, &objp->open_claim4_u.file))
02078         return FALSE;
02079       break;
02080     case CLAIM_PREVIOUS:
02081       if(!xdr_open_delegation_type4(xdrs, &objp->open_claim4_u.delegate_type))
02082         return FALSE;
02083       break;
02084     case CLAIM_DELEGATE_CUR:
02085       if(!xdr_open_claim_delegate_cur4(xdrs, &objp->open_claim4_u.delegate_cur_info))
02086         return FALSE;
02087       break;
02088     case CLAIM_DELEGATE_PREV:
02089       if(!xdr_component4(xdrs, &objp->open_claim4_u.file_delegate_prev))
02090         return FALSE;
02091       break;
02092     case CLAIM_FH:
02093       break;
02094     case CLAIM_DELEG_PREV_FH:
02095       break;
02096     case CLAIM_DELEG_CUR_FH:
02097       if(!xdr_stateid4(xdrs, &objp->open_claim4_u.oc_delegate_stateid))
02098         return FALSE;
02099       break;
02100     default:
02101       return FALSE;
02102     }
02103   return TRUE;
02104 }
02105 
02106 bool_t xdr_OPEN4args(XDR * xdrs, OPEN4args * objp)
02107 {
02108   if(!xdr_seqid4(xdrs, &objp->seqid))
02109     return FALSE;
02110   if(!xdr_uint32_t(xdrs, &objp->share_access))
02111     return FALSE;
02112   if(!xdr_uint32_t(xdrs, &objp->share_deny))
02113     return FALSE;
02114   if(!xdr_open_owner4(xdrs, &objp->owner))
02115     return FALSE;
02116   if(!xdr_openflag4(xdrs, &objp->openhow))
02117     return FALSE;
02118   if(!xdr_open_claim4(xdrs, &objp->claim))
02119     return FALSE;
02120   return TRUE;
02121 }
02122 
02123 bool_t xdr_open_read_delegation4(XDR * xdrs, open_read_delegation4 * objp)
02124 {
02125   if(!xdr_stateid4(xdrs, &objp->stateid))
02126     return FALSE;
02127   if(!xdr_bool(xdrs, &objp->recall))
02128     return FALSE;
02129   if(!xdr_nfsace4(xdrs, &objp->permissions))
02130     return FALSE;
02131   return TRUE;
02132 }
02133 
02134 bool_t xdr_open_write_delegation4(XDR * xdrs, open_write_delegation4 * objp)
02135 {
02136   if(!xdr_stateid4(xdrs, &objp->stateid))
02137     return FALSE;
02138   if(!xdr_bool(xdrs, &objp->recall))
02139     return FALSE;
02140   if(!xdr_nfs_space_limit4(xdrs, &objp->space_limit))
02141     return FALSE;
02142   if(!xdr_nfsace4(xdrs, &objp->permissions))
02143     return FALSE;
02144   return TRUE;
02145 }
02146 
02147 bool_t xdr_why_no_delegation4(XDR * xdrs, why_no_delegation4 * objp)
02148 {
02149   if(!xdr_enum(xdrs, (enum_t *) objp))
02150     return FALSE;
02151   return TRUE;
02152 }
02153 
02154 bool_t xdr_open_none_delegation4(XDR * xdrs, open_none_delegation4 * objp)
02155 {
02156   if(!xdr_why_no_delegation4(xdrs, &objp->ond_why))
02157     return FALSE;
02158   switch (objp->ond_why)
02159     {
02160     case WND4_CONTENTION:
02161       if(!xdr_bool(xdrs, &objp->open_none_delegation4_u.ond_server_will_push_deleg))
02162         return FALSE;
02163       break;
02164     case WND4_RESOURCE:
02165       if(!xdr_bool(xdrs, &objp->open_none_delegation4_u.ond_server_will_signal_avail))
02166         return FALSE;
02167       break;
02168     default:
02169       break;
02170     }
02171   return TRUE;
02172 }
02173 
02174 bool_t xdr_open_delegation4(XDR * xdrs, open_delegation4 * objp)
02175 {
02176   if(!xdr_open_delegation_type4(xdrs, &objp->delegation_type))
02177     return FALSE;
02178   switch (objp->delegation_type)
02179     {
02180     case OPEN_DELEGATE_NONE:
02181       break;
02182     case OPEN_DELEGATE_READ:
02183       if(!xdr_open_read_delegation4(xdrs, &objp->open_delegation4_u.read))
02184         return FALSE;
02185       break;
02186     case OPEN_DELEGATE_WRITE:
02187       if(!xdr_open_write_delegation4(xdrs, &objp->open_delegation4_u.write))
02188         return FALSE;
02189       break;
02190     case OPEN_DELEGATE_NONE_EXT:
02191       if(!xdr_open_none_delegation4(xdrs, &objp->open_delegation4_u.od_whynone))
02192         return FALSE;
02193       break;
02194     default:
02195       return FALSE;
02196     }
02197   return TRUE;
02198 }
02199 
02200 bool_t xdr_OPEN4resok(XDR * xdrs, OPEN4resok * objp)
02201 {
02202   if(!xdr_stateid4(xdrs, &objp->stateid))
02203     return FALSE;
02204   if(!xdr_change_info4(xdrs, &objp->cinfo))
02205     return FALSE;
02206   if(!xdr_uint32_t(xdrs, &objp->rflags))
02207     return FALSE;
02208   if(!xdr_bitmap4(xdrs, &objp->attrset))
02209     return FALSE;
02210   if(!xdr_open_delegation4(xdrs, &objp->delegation))
02211     return FALSE;
02212   return TRUE;
02213 }
02214 
02215 bool_t xdr_OPEN4res(XDR * xdrs, OPEN4res * objp)
02216 {
02217   if(!xdr_nfsstat4(xdrs, &objp->status))
02218     return FALSE;
02219   switch (objp->status)
02220     {
02221     case NFS4_OK:
02222       if(!xdr_OPEN4resok(xdrs, &objp->OPEN4res_u.resok4))
02223         return FALSE;
02224       break;
02225     default:
02226       break;
02227     }
02228   return TRUE;
02229 }
02230 
02231 bool_t xdr_OPENATTR4args(XDR * xdrs, OPENATTR4args * objp)
02232 {
02233   if(!xdr_bool(xdrs, &objp->createdir))
02234     return FALSE;
02235   return TRUE;
02236 }
02237 
02238 bool_t xdr_OPENATTR4res(XDR * xdrs, OPENATTR4res * objp)
02239 {
02240   if(!xdr_nfsstat4(xdrs, &objp->status))
02241     return FALSE;
02242   return TRUE;
02243 }
02244 
02245 bool_t xdr_OPEN_CONFIRM4args(XDR * xdrs, OPEN_CONFIRM4args * objp)
02246 {
02247   if(!xdr_stateid4(xdrs, &objp->open_stateid))
02248     return FALSE;
02249   if(!xdr_seqid4(xdrs, &objp->seqid))
02250     return FALSE;
02251   return TRUE;
02252 }
02253 
02254 bool_t xdr_OPEN_CONFIRM4resok(XDR * xdrs, OPEN_CONFIRM4resok * objp)
02255 {
02256   if(!xdr_stateid4(xdrs, &objp->open_stateid))
02257     return FALSE;
02258   return TRUE;
02259 }
02260 
02261 bool_t xdr_OPEN_CONFIRM4res(XDR * xdrs, OPEN_CONFIRM4res * objp)
02262 {
02263   if(!xdr_nfsstat4(xdrs, &objp->status))
02264     return FALSE;
02265   switch (objp->status)
02266     {
02267     case NFS4_OK:
02268       if(!xdr_OPEN_CONFIRM4resok(xdrs, &objp->OPEN_CONFIRM4res_u.resok4))
02269         return FALSE;
02270       break;
02271     default:
02272       break;
02273     }
02274   return TRUE;
02275 }
02276 
02277 bool_t xdr_OPEN_DOWNGRADE4args(XDR * xdrs, OPEN_DOWNGRADE4args * objp)
02278 {
02279   if(!xdr_stateid4(xdrs, &objp->open_stateid))
02280     return FALSE;
02281   if(!xdr_seqid4(xdrs, &objp->seqid))
02282     return FALSE;
02283   if(!xdr_uint32_t(xdrs, &objp->share_access))
02284     return FALSE;
02285   if(!xdr_uint32_t(xdrs, &objp->share_deny))
02286     return FALSE;
02287   return TRUE;
02288 }
02289 
02290 bool_t xdr_OPEN_DOWNGRADE4resok(XDR * xdrs, OPEN_DOWNGRADE4resok * objp)
02291 {
02292   if(!xdr_stateid4(xdrs, &objp->open_stateid))
02293     return FALSE;
02294   return TRUE;
02295 }
02296 
02297 bool_t xdr_OPEN_DOWNGRADE4res(XDR * xdrs, OPEN_DOWNGRADE4res * objp)
02298 {
02299   if(!xdr_nfsstat4(xdrs, &objp->status))
02300     return FALSE;
02301   switch (objp->status)
02302     {
02303     case NFS4_OK:
02304       if(!xdr_OPEN_DOWNGRADE4resok(xdrs, &objp->OPEN_DOWNGRADE4res_u.resok4))
02305         return FALSE;
02306       break;
02307     default:
02308       break;
02309     }
02310   return TRUE;
02311 }
02312 
02313 bool_t xdr_PUTFH4args(XDR * xdrs, PUTFH4args * objp)
02314 {
02315   if(!xdr_nfs_fh4(xdrs, &objp->object))
02316     return FALSE;
02317   return TRUE;
02318 }
02319 
02320 bool_t xdr_PUTFH4res(XDR * xdrs, PUTFH4res * objp)
02321 {
02322   if(!xdr_nfsstat4(xdrs, &objp->status))
02323     return FALSE;
02324   return TRUE;
02325 }
02326 
02327 bool_t xdr_PUTPUBFH4res(XDR * xdrs, PUTPUBFH4res * objp)
02328 {
02329   if(!xdr_nfsstat4(xdrs, &objp->status))
02330     return FALSE;
02331   return TRUE;
02332 }
02333 
02334 bool_t xdr_PUTROOTFH4res(XDR * xdrs, PUTROOTFH4res * objp)
02335 {
02336   if(!xdr_nfsstat4(xdrs, &objp->status))
02337     return FALSE;
02338   return TRUE;
02339 }
02340 
02341 bool_t xdr_READ4args(XDR * xdrs, READ4args * objp)
02342 {
02343   if(!xdr_stateid4(xdrs, &objp->stateid))
02344     return FALSE;
02345   if(!xdr_offset4(xdrs, &objp->offset))
02346     return FALSE;
02347   if(!xdr_count4(xdrs, &objp->count))
02348     return FALSE;
02349   return TRUE;
02350 }
02351 
02352 bool_t xdr_READ4resok(XDR * xdrs, READ4resok * objp)
02353 {
02354   if(!xdr_bool(xdrs, &objp->eof))
02355     return FALSE;
02356   if(!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) & objp->data.data_len, ~0))
02357     return FALSE;
02358   return TRUE;
02359 }
02360 
02361 bool_t xdr_READ4res(XDR * xdrs, READ4res * objp)
02362 {
02363   if(!xdr_nfsstat4(xdrs, &objp->status))
02364     return FALSE;
02365   switch (objp->status)
02366     {
02367     case NFS4_OK:
02368       if(!xdr_READ4resok(xdrs, &objp->READ4res_u.resok4))
02369         return FALSE;
02370       break;
02371     default:
02372       break;
02373     }
02374   return TRUE;
02375 }
02376 
02377 bool_t xdr_READDIR4args(XDR * xdrs, READDIR4args * objp)
02378 {
02379   if(!xdr_nfs_cookie4(xdrs, &objp->cookie))
02380     return FALSE;
02381   if(!xdr_verifier4(xdrs, objp->cookieverf))
02382     return FALSE;
02383   if(!xdr_count4(xdrs, &objp->dircount))
02384     return FALSE;
02385   if(!xdr_count4(xdrs, &objp->maxcount))
02386     return FALSE;
02387   if(!xdr_bitmap4(xdrs, &objp->attr_request))
02388     return FALSE;
02389   return TRUE;
02390 }
02391 
02392 bool_t xdr_entry4(XDR * xdrs, entry4 * objp)
02393 {
02394   if(!xdr_nfs_cookie4(xdrs, &objp->cookie))
02395     return FALSE;
02396   if(!xdr_component4(xdrs, &objp->name))
02397     return FALSE;
02398   if(!xdr_fattr4(xdrs, &objp->attrs))
02399     return FALSE;
02400   if(!xdr_pointer
02401      (xdrs, (char **)&objp->nextentry, sizeof(entry4), (xdrproc_t) xdr_entry4))
02402     return FALSE;
02403   return TRUE;
02404 }
02405 
02406 bool_t xdr_dirlist4(XDR * xdrs, dirlist4 * objp)
02407 {
02408   if(!xdr_pointer(xdrs, (char **)&objp->entries, sizeof(entry4), (xdrproc_t) xdr_entry4))
02409     return FALSE;
02410   if(!xdr_bool(xdrs, &objp->eof))
02411     return FALSE;
02412   return TRUE;
02413 }
02414 
02415 bool_t xdr_READDIR4resok(XDR * xdrs, READDIR4resok * objp)
02416 {
02417   if(!xdr_verifier4(xdrs, objp->cookieverf))
02418     return FALSE;
02419   if(!xdr_dirlist4(xdrs, &objp->reply))
02420     return FALSE;
02421   return TRUE;
02422 }
02423 
02424 bool_t xdr_READDIR4res(XDR * xdrs, READDIR4res * objp)
02425 {
02426   if(!xdr_nfsstat4(xdrs, &objp->status))
02427     return FALSE;
02428   switch (objp->status)
02429     {
02430     case NFS4_OK:
02431       if(!xdr_READDIR4resok(xdrs, &objp->READDIR4res_u.resok4))
02432         return FALSE;
02433       break;
02434     default:
02435       break;
02436     }
02437   return TRUE;
02438 }
02439 
02440 bool_t xdr_READLINK4resok(XDR * xdrs, READLINK4resok * objp)
02441 {
02442   if(!xdr_linktext4(xdrs, &objp->link))
02443     return FALSE;
02444   return TRUE;
02445 }
02446 
02447 bool_t xdr_READLINK4res(XDR * xdrs, READLINK4res * objp)
02448 {
02449   if(!xdr_nfsstat4(xdrs, &objp->status))
02450     return FALSE;
02451   switch (objp->status)
02452     {
02453     case NFS4_OK:
02454       if(!xdr_READLINK4resok(xdrs, &objp->READLINK4res_u.resok4))
02455         return FALSE;
02456       break;
02457     default:
02458       break;
02459     }
02460   return TRUE;
02461 }
02462 
02463 bool_t xdr_REMOVE4args(XDR * xdrs, REMOVE4args * objp)
02464 {
02465   if(!xdr_component4(xdrs, &objp->target))
02466     return FALSE;
02467   return TRUE;
02468 }
02469 
02470 bool_t xdr_REMOVE4resok(XDR * xdrs, REMOVE4resok * objp)
02471 {
02472   if(!xdr_change_info4(xdrs, &objp->cinfo))
02473     return FALSE;
02474   return TRUE;
02475 }
02476 
02477 bool_t xdr_REMOVE4res(XDR * xdrs, REMOVE4res * objp)
02478 {
02479   if(!xdr_nfsstat4(xdrs, &objp->status))
02480     return FALSE;
02481   switch (objp->status)
02482     {
02483     case NFS4_OK:
02484       if(!xdr_REMOVE4resok(xdrs, &objp->REMOVE4res_u.resok4))
02485         return FALSE;
02486       break;
02487     default:
02488       break;
02489     }
02490   return TRUE;
02491 }
02492 
02493 bool_t xdr_RENAME4args(XDR * xdrs, RENAME4args * objp)
02494 {
02495   if(!xdr_component4(xdrs, &objp->oldname))
02496     return FALSE;
02497   if(!xdr_component4(xdrs, &objp->newname))
02498     return FALSE;
02499   return TRUE;
02500 }
02501 
02502 bool_t xdr_RENAME4resok(XDR * xdrs, RENAME4resok * objp)
02503 {
02504   if(!xdr_change_info4(xdrs, &objp->source_cinfo))
02505     return FALSE;
02506   if(!xdr_change_info4(xdrs, &objp->target_cinfo))
02507     return FALSE;
02508   return TRUE;
02509 }
02510 
02511 bool_t xdr_RENAME4res(XDR * xdrs, RENAME4res * objp)
02512 {
02513   if(!xdr_nfsstat4(xdrs, &objp->status))
02514     return FALSE;
02515   switch (objp->status)
02516     {
02517     case NFS4_OK:
02518       if(!xdr_RENAME4resok(xdrs, &objp->RENAME4res_u.resok4))
02519         return FALSE;
02520       break;
02521     default:
02522       break;
02523     }
02524   return TRUE;
02525 }
02526 
02527 bool_t xdr_RENEW4args(XDR * xdrs, RENEW4args * objp)
02528 {
02529   if(!xdr_clientid4(xdrs, &objp->clientid))
02530     return FALSE;
02531   return TRUE;
02532 }
02533 
02534 bool_t xdr_RENEW4res(XDR * xdrs, RENEW4res * objp)
02535 {
02536   if(!xdr_nfsstat4(xdrs, &objp->status))
02537     return FALSE;
02538   return TRUE;
02539 }
02540 
02541 bool_t xdr_RESTOREFH4res(XDR * xdrs, RESTOREFH4res * objp)
02542 {
02543   if(!xdr_nfsstat4(xdrs, &objp->status))
02544     return FALSE;
02545   return TRUE;
02546 }
02547 
02548 bool_t xdr_SAVEFH4res(XDR * xdrs, SAVEFH4res * objp)
02549 {
02550   if(!xdr_nfsstat4(xdrs, &objp->status))
02551     return FALSE;
02552   return TRUE;
02553 }
02554 
02555 bool_t xdr_SECINFO4args(XDR * xdrs, SECINFO4args * objp)
02556 {
02557   if(!xdr_component4(xdrs, &objp->name))
02558     return FALSE;
02559   return TRUE;
02560 }
02561 
02562 bool_t xdr_rpc_gss_svc_t(XDR * xdrs, rpc_gss_svc_t * objp)
02563 {
02564   if(!xdr_enum(xdrs, (enum_t *) objp))
02565     return FALSE;
02566   return TRUE;
02567 }
02568 
02569 bool_t xdr_rpcsec_gss_info(XDR * xdrs, rpcsec_gss_info * objp)
02570 {
02571   if(!xdr_sec_oid4(xdrs, &objp->oid))
02572     return FALSE;
02573   if(!xdr_qop4(xdrs, &objp->qop))
02574     return FALSE;
02575   if(!xdr_rpc_gss_svc_t(xdrs, &objp->service))
02576     return FALSE;
02577   return TRUE;
02578 }
02579 
02580 bool_t xdr_secinfo4(XDR * xdrs, secinfo4 * objp)
02581 {
02582   if(!xdr_uint32_t(xdrs, &objp->flavor))
02583     return FALSE;
02584   switch (objp->flavor)
02585     {
02586     case RPCSEC_GSS:
02587       if(!xdr_rpcsec_gss_info(xdrs, &objp->secinfo4_u.flavor_info))
02588         return FALSE;
02589       break;
02590     default:
02591       break;
02592     }
02593   return TRUE;
02594 }
02595 
02596 bool_t xdr_SECINFO4resok(XDR * xdrs, SECINFO4resok * objp)
02597 {
02598   if(!xdr_array
02599      (xdrs, (char **)&objp->SECINFO4resok_val, (u_int *) & objp->SECINFO4resok_len, ~0,
02600       sizeof(secinfo4), (xdrproc_t) xdr_secinfo4))
02601     return FALSE;
02602   return TRUE;
02603 }
02604 
02605 bool_t xdr_SECINFO4res(XDR * xdrs, SECINFO4res * objp)
02606 {
02607   if(!xdr_nfsstat4(xdrs, &objp->status))
02608     return FALSE;
02609   switch (objp->status)
02610     {
02611     case NFS4_OK:
02612       if(!xdr_SECINFO4resok(xdrs, &objp->SECINFO4res_u.resok4))
02613         return FALSE;
02614       break;
02615     default:
02616       break;
02617     }
02618   return TRUE;
02619 }
02620 
02621 bool_t xdr_SETATTR4args(XDR * xdrs, SETATTR4args * objp)
02622 {
02623   if(!xdr_stateid4(xdrs, &objp->stateid))
02624     return FALSE;
02625   if(!xdr_fattr4(xdrs, &objp->obj_attributes))
02626     return FALSE;
02627   return TRUE;
02628 }
02629 
02630 bool_t xdr_SETATTR4res(XDR * xdrs, SETATTR4res * objp)
02631 {
02632   if(!xdr_nfsstat4(xdrs, &objp->status))
02633     return FALSE;
02634   if(!xdr_bitmap4(xdrs, &objp->attrsset))
02635     return FALSE;
02636   return TRUE;
02637 }
02638 
02639 bool_t xdr_SETCLIENTID4args(XDR * xdrs, SETCLIENTID4args * objp)
02640 {
02641   if(!xdr_nfs_client_id4(xdrs, &objp->client))
02642     return FALSE;
02643   if(!xdr_cb_client4(xdrs, &objp->callback))
02644     return FALSE;
02645   if(!xdr_uint32_t(xdrs, &objp->callback_ident))
02646     return FALSE;
02647   return TRUE;
02648 }
02649 
02650 bool_t xdr_SETCLIENTID4resok(XDR * xdrs, SETCLIENTID4resok * objp)
02651 {
02652   if(!xdr_clientid4(xdrs, &objp->clientid))
02653     return FALSE;
02654   if(!xdr_verifier4(xdrs, objp->setclientid_confirm))
02655     return FALSE;
02656   return TRUE;
02657 }
02658 
02659 bool_t xdr_SETCLIENTID4res(XDR * xdrs, SETCLIENTID4res * objp)
02660 {
02661   if(!xdr_nfsstat4(xdrs, &objp->status))
02662     return FALSE;
02663   switch (objp->status)
02664     {
02665     case NFS4_OK:
02666       if(!xdr_SETCLIENTID4resok(xdrs, &objp->SETCLIENTID4res_u.resok4))
02667         return FALSE;
02668       break;
02669     case NFS4ERR_CLID_INUSE:
02670       if(!xdr_clientaddr4(xdrs, &objp->SETCLIENTID4res_u.client_using))
02671         return FALSE;
02672       break;
02673     default:
02674       break;
02675     }
02676   return TRUE;
02677 }
02678 
02679 bool_t xdr_SETCLIENTID_CONFIRM4args(XDR * xdrs, SETCLIENTID_CONFIRM4args * objp)
02680 {
02681   if(!xdr_clientid4(xdrs, &objp->clientid))
02682     return FALSE;
02683   if(!xdr_verifier4(xdrs, objp->setclientid_confirm))
02684     return FALSE;
02685   return TRUE;
02686 }
02687 
02688 bool_t xdr_SETCLIENTID_CONFIRM4res(XDR * xdrs, SETCLIENTID_CONFIRM4res * objp)
02689 {
02690   if(!xdr_nfsstat4(xdrs, &objp->status))
02691     return FALSE;
02692   return TRUE;
02693 }
02694 
02695 bool_t xdr_VERIFY4args(XDR * xdrs, VERIFY4args * objp)
02696 {
02697   if(!xdr_fattr4(xdrs, &objp->obj_attributes))
02698     return FALSE;
02699   return TRUE;
02700 }
02701 
02702 bool_t xdr_VERIFY4res(XDR * xdrs, VERIFY4res * objp)
02703 {
02704   if(!xdr_nfsstat4(xdrs, &objp->status))
02705     return FALSE;
02706   return TRUE;
02707 }
02708 
02709 bool_t xdr_stable_how4(XDR * xdrs, stable_how4 * objp)
02710 {
02711   if(!xdr_enum(xdrs, (enum_t *) objp))
02712     return FALSE;
02713   return TRUE;
02714 }
02715 
02716 bool_t xdr_WRITE4args(XDR * xdrs, WRITE4args * objp)
02717 {
02718   if(!xdr_stateid4(xdrs, &objp->stateid))
02719     return FALSE;
02720   if(!xdr_offset4(xdrs, &objp->offset))
02721     return FALSE;
02722   if(!xdr_stable_how4(xdrs, &objp->stable))
02723     return FALSE;
02724   if(!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *) & objp->data.data_len, ~0))
02725     return FALSE;
02726   return TRUE;
02727 }
02728 
02729 bool_t xdr_WRITE4resok(XDR * xdrs, WRITE4resok * objp)
02730 {
02731   if(!xdr_count4(xdrs, &objp->count))
02732     return FALSE;
02733   if(!xdr_stable_how4(xdrs, &objp->committed))
02734     return FALSE;
02735   if(!xdr_verifier4(xdrs, objp->writeverf))
02736     return FALSE;
02737   return TRUE;
02738 }
02739 
02740 bool_t xdr_WRITE4res(XDR * xdrs, WRITE4res * objp)
02741 {
02742   if(!xdr_nfsstat4(xdrs, &objp->status))
02743     return FALSE;
02744   switch (objp->status)
02745     {
02746     case NFS4_OK:
02747       if(!xdr_WRITE4resok(xdrs, &objp->WRITE4res_u.resok4))
02748         return FALSE;
02749       break;
02750     default:
02751       break;
02752     }
02753   return TRUE;
02754 }
02755 
02756 bool_t xdr_RELEASE_LOCKOWNER4args(XDR * xdrs, RELEASE_LOCKOWNER4args * objp)
02757 {
02758   if(!xdr_lock_owner4(xdrs, &objp->lock_owner))
02759     return FALSE;
02760   return TRUE;
02761 }
02762 
02763 bool_t xdr_RELEASE_LOCKOWNER4res(XDR * xdrs, RELEASE_LOCKOWNER4res * objp)
02764 {
02765   if(!xdr_nfsstat4(xdrs, &objp->status))
02766     return FALSE;
02767   return TRUE;
02768 }
02769 
02770 bool_t xdr_ILLEGAL4res(XDR * xdrs, ILLEGAL4res * objp)
02771 {
02772   if(!xdr_nfsstat4(xdrs, &objp->status))
02773     return FALSE;
02774   return TRUE;
02775 }
02776 
02777 bool_t xdr_gsshandle4_t(XDR * xdrs, gsshandle4_t * objp)
02778 {
02779   if(!xdr_bytes
02780      (xdrs, (char **)&objp->gsshandle4_t_val, (u_int *) & objp->gsshandle4_t_len, ~0))
02781     return FALSE;
02782   return TRUE;
02783 }
02784 
02785 bool_t xdr_gss_cb_handles4(XDR * xdrs, gss_cb_handles4 * objp)
02786 {
02787   if(!xdr_rpc_gss_svc_t(xdrs, &objp->gcbp_service))
02788     return FALSE;
02789   if(!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_server))
02790     return FALSE;
02791   if(!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_client))
02792     return FALSE;
02793   return TRUE;
02794 }
02795 
02796 bool_t xdr_callback_sec_parms4(XDR * xdrs, callback_sec_parms4 * objp)
02797 {
02798   if(!xdr_uint32_t(xdrs, &objp->cb_secflavor))
02799     return FALSE;
02800   switch (objp->cb_secflavor)
02801     {
02802     case AUTH_NONE:
02803       break;
02804     case AUTH_SYS:
02805       //if (!xdr_authsys_parms (xdrs, &objp->callback_sec_parms4_u.cbsp_sys_cred))
02806       if(!xdr_authunix_parms(xdrs, &objp->callback_sec_parms4_u.cbsp_sys_cred))
02807         return FALSE;
02808       break;
02809     case RPCSEC_GSS:
02810       if(!xdr_gss_cb_handles4(xdrs, &objp->callback_sec_parms4_u.cbsp_gss_handles))
02811         return FALSE;
02812       break;
02813     default:
02814       return FALSE;
02815     }
02816   return TRUE;
02817 }
02818 
02819 bool_t xdr_BACKCHANNEL_CTL4args(XDR * xdrs, BACKCHANNEL_CTL4args * objp)
02820 {
02821   if(!xdr_uint32_t(xdrs, &objp->bca_cb_program))
02822     return FALSE;
02823   if(!xdr_array
02824      (xdrs, (char **)&objp->bca_sec_parms.bca_sec_parms_val,
02825       (u_int *) & objp->bca_sec_parms.bca_sec_parms_len, ~0, sizeof(callback_sec_parms4),
02826       (xdrproc_t) xdr_callback_sec_parms4))
02827     return FALSE;
02828   return TRUE;
02829 }
02830 
02831 bool_t xdr_BACKCHANNEL_CTL4res(XDR * xdrs, BACKCHANNEL_CTL4res * objp)
02832 {
02833   if(!xdr_nfsstat4(xdrs, &objp->bcr_status))
02834     return FALSE;
02835   return TRUE;
02836 }
02837 
02838 bool_t xdr_channel_dir_from_client4(XDR * xdrs, channel_dir_from_client4 * objp)
02839 {
02840   if(!xdr_enum(xdrs, (enum_t *) objp))
02841     return FALSE;
02842   return TRUE;
02843 }
02844 
02845 bool_t xdr_BIND_CONN_TO_SESSION4args(XDR * xdrs, BIND_CONN_TO_SESSION4args * objp)
02846 {
02847   if(!xdr_sessionid4(xdrs, objp->bctsa_sessid))
02848     return FALSE;
02849   if(!xdr_channel_dir_from_client4(xdrs, &objp->bctsa_dir))
02850     return FALSE;
02851   if(!xdr_bool(xdrs, &objp->bctsa_use_conn_in_rdma_mode))
02852     return FALSE;
02853   return TRUE;
02854 }
02855 
02856 bool_t xdr_channel_dir_from_server4(XDR * xdrs, channel_dir_from_server4 * objp)
02857 {
02858   if(!xdr_enum(xdrs, (enum_t *) objp))
02859     return FALSE;
02860   return TRUE;
02861 }
02862 
02863 bool_t xdr_BIND_CONN_TO_SESSION4resok(XDR * xdrs, BIND_CONN_TO_SESSION4resok * objp)
02864 {
02865   if(!xdr_sessionid4(xdrs, objp->bctsr_sessid))
02866     return FALSE;
02867   if(!xdr_channel_dir_from_server4(xdrs, &objp->bctsr_dir))
02868     return FALSE;
02869   if(!xdr_bool(xdrs, &objp->bctsr_use_conn_in_rdma_mode))
02870     return FALSE;
02871   return TRUE;
02872 }
02873 
02874 bool_t xdr_BIND_CONN_TO_SESSION4res(XDR * xdrs, BIND_CONN_TO_SESSION4res * objp)
02875 {
02876   if(!xdr_nfsstat4(xdrs, &objp->bctsr_status))
02877     return FALSE;
02878   switch (objp->bctsr_status)
02879     {
02880     case NFS4_OK:
02881       if(!xdr_BIND_CONN_TO_SESSION4resok
02882          (xdrs, &objp->BIND_CONN_TO_SESSION4res_u.bctsr_resok4))
02883         return FALSE;
02884       break;
02885     default:
02886       break;
02887     }
02888   return TRUE;
02889 }
02890 
02891 bool_t xdr_state_protect_ops4(XDR * xdrs, state_protect_ops4 * objp)
02892 {
02893   if(!xdr_bitmap4(xdrs, &objp->spo_must_enforce))
02894     return FALSE;
02895   if(!xdr_bitmap4(xdrs, &objp->spo_must_allow))
02896     return FALSE;
02897   return TRUE;
02898 }
02899 
02900 bool_t xdr_ssv_sp_parms4(XDR * xdrs, ssv_sp_parms4 * objp)
02901 {
02902   if(!xdr_state_protect_ops4(xdrs, &objp->ssp_ops))
02903     return FALSE;
02904   if(!xdr_array
02905      (xdrs, (char **)&objp->ssp_hash_algs.ssp_hash_algs_val,
02906       (u_int *) & objp->ssp_hash_algs.ssp_hash_algs_len, ~0, sizeof(sec_oid4),
02907       (xdrproc_t) xdr_sec_oid4))
02908     return FALSE;
02909   if(!xdr_array
02910      (xdrs, (char **)&objp->ssp_encr_algs.ssp_encr_algs_val,
02911       (u_int *) & objp->ssp_encr_algs.ssp_encr_algs_len, ~0, sizeof(sec_oid4),
02912       (xdrproc_t) xdr_sec_oid4))
02913     return FALSE;
02914   if(!xdr_uint32_t(xdrs, &objp->ssp_window))
02915     return FALSE;
02916   if(!xdr_uint32_t(xdrs, &objp->ssp_num_gss_handles))
02917     return FALSE;
02918   return TRUE;
02919 }
02920 
02921 bool_t xdr_state_protect_how4(XDR * xdrs, state_protect_how4 * objp)
02922 {
02923   if(!xdr_enum(xdrs, (enum_t *) objp))
02924     return FALSE;
02925   return TRUE;
02926 }
02927 
02928 bool_t xdr_state_protect4_a(XDR * xdrs, state_protect4_a * objp)
02929 {
02930   if(!xdr_state_protect_how4(xdrs, &objp->spa_how))
02931     return FALSE;
02932   switch (objp->spa_how)
02933     {
02934     case SP4_NONE:
02935       break;
02936     case SP4_MACH_CRED:
02937       if(!xdr_state_protect_ops4(xdrs, &objp->state_protect4_a_u.spa_mach_ops))
02938         return FALSE;
02939       break;
02940     case SP4_SSV:
02941       if(!xdr_ssv_sp_parms4(xdrs, &objp->state_protect4_a_u.spa_ssv_parms))
02942         return FALSE;
02943       break;
02944     default:
02945       return FALSE;
02946     }
02947   return TRUE;
02948 }
02949 
02950 bool_t xdr_EXCHANGE_ID4args(XDR * xdrs, EXCHANGE_ID4args * objp)
02951 {
02952   if(!xdr_client_owner4(xdrs, &objp->eia_clientowner))
02953     return FALSE;
02954   if(!xdr_uint32_t(xdrs, &objp->eia_flags))
02955     return FALSE;
02956   if(!xdr_state_protect4_a(xdrs, &objp->eia_state_protect))
02957     return FALSE;
02958   if(!xdr_array
02959      (xdrs, (char **)&objp->eia_client_impl_id.eia_client_impl_id_val,
02960       (u_int *) & objp->eia_client_impl_id.eia_client_impl_id_len, 1,
02961       sizeof(nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4))
02962     return FALSE;
02963   return TRUE;
02964 }
02965 
02966 bool_t xdr_ssv_prot_info4(XDR * xdrs, ssv_prot_info4 * objp)
02967 {
02968   if(!xdr_state_protect_ops4(xdrs, &objp->spi_ops))
02969     return FALSE;
02970   if(!xdr_uint32_t(xdrs, &objp->spi_hash_alg))
02971     return FALSE;
02972   if(!xdr_uint32_t(xdrs, &objp->spi_encr_alg))
02973     return FALSE;
02974   if(!xdr_uint32_t(xdrs, &objp->spi_ssv_len))
02975     return FALSE;
02976   if(!xdr_uint32_t(xdrs, &objp->spi_window))
02977     return FALSE;
02978   if(!xdr_array
02979      (xdrs, (char **)&objp->spi_handles.spi_handles_val,
02980       (u_int *) & objp->spi_handles.spi_handles_len, ~0, sizeof(gsshandle4_t),
02981       (xdrproc_t) xdr_gsshandle4_t))
02982     return FALSE;
02983   return TRUE;
02984 }
02985 
02986 bool_t xdr_state_protect4_r(XDR * xdrs, state_protect4_r * objp)
02987 {
02988   if(!xdr_state_protect_how4(xdrs, &objp->spr_how))
02989     return FALSE;
02990   switch (objp->spr_how)
02991     {
02992     case SP4_NONE:
02993       break;
02994     case SP4_MACH_CRED:
02995       if(!xdr_state_protect_ops4(xdrs, &objp->state_protect4_r_u.spr_mach_ops))
02996         return FALSE;
02997       break;
02998     case SP4_SSV:
02999       if(!xdr_ssv_prot_info4(xdrs, &objp->state_protect4_r_u.spr_ssv_info))
03000         return FALSE;
03001       break;
03002     default:
03003       return FALSE;
03004     }
03005   return TRUE;
03006 }
03007 
03008 bool_t xdr_EXCHANGE_ID4resok(XDR * xdrs, EXCHANGE_ID4resok * objp)
03009 {
03010   if(!xdr_clientid4(xdrs, &objp->eir_clientid))
03011     return FALSE;
03012   if(!xdr_sequenceid4(xdrs, &objp->eir_sequenceid))
03013     return FALSE;
03014   if(!xdr_uint32_t(xdrs, &objp->eir_flags))
03015     return FALSE;
03016   if(!xdr_state_protect4_r(xdrs, &objp->eir_state_protect))
03017     return FALSE;
03018   if(!xdr_server_owner4(xdrs, &objp->eir_server_owner))
03019     return FALSE;
03020   if(!xdr_bytes
03021      (xdrs, (char **)&objp->eir_server_scope.eir_server_scope_val,
03022       (u_int *) & objp->eir_server_scope.eir_server_scope_len, NFS4_OPAQUE_LIMIT))
03023     return FALSE;
03024   if(!xdr_array
03025      (xdrs, (char **)&objp->eir_server_impl_id.eir_server_impl_id_val,
03026       (u_int *) & objp->eir_server_impl_id.eir_server_impl_id_len, 1,
03027       sizeof(nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4))
03028     return FALSE;
03029   return TRUE;
03030 }
03031 
03032 bool_t xdr_EXCHANGE_ID4res(XDR * xdrs, EXCHANGE_ID4res * objp)
03033 {
03034   if(!xdr_nfsstat4(xdrs, &objp->eir_status))
03035     return FALSE;
03036   switch (objp->eir_status)
03037     {
03038     case NFS4_OK:
03039       if(!xdr_EXCHANGE_ID4resok(xdrs, &objp->EXCHANGE_ID4res_u.eir_resok4))
03040         return FALSE;
03041       break;
03042     default:
03043       break;
03044     }
03045   return TRUE;
03046 }
03047 
03048 bool_t xdr_channel_attrs4(XDR * xdrs, channel_attrs4 * objp)
03049 {
03050   if(!xdr_count4(xdrs, &objp->ca_headerpadsize))
03051     return FALSE;
03052   if(!xdr_count4(xdrs, &objp->ca_maxrequestsize))
03053     return FALSE;
03054   if(!xdr_count4(xdrs, &objp->ca_maxresponsesize))
03055     return FALSE;
03056   if(!xdr_count4(xdrs, &objp->ca_maxresponsesize_cached))
03057     return FALSE;
03058   if(!xdr_count4(xdrs, &objp->ca_maxoperations))
03059     return FALSE;
03060   if(!xdr_count4(xdrs, &objp->ca_maxrequests))
03061     return FALSE;
03062   if(!xdr_array
03063      (xdrs, (char **)&objp->ca_rdma_ird.ca_rdma_ird_val,
03064       (u_int *) & objp->ca_rdma_ird.ca_rdma_ird_len, 1, sizeof(uint32_t),
03065       (xdrproc_t) xdr_uint32_t))
03066     return FALSE;
03067   return TRUE;
03068 }
03069 
03070 bool_t xdr_CREATE_SESSION4args(XDR * xdrs, CREATE_SESSION4args * objp)
03071 {
03072   if(!xdr_clientid4(xdrs, &objp->csa_clientid))
03073     return FALSE;
03074   if(!xdr_sequenceid4(xdrs, &objp->csa_sequence))
03075     return FALSE;
03076   if(!xdr_uint32_t(xdrs, &objp->csa_flags))
03077     return FALSE;
03078   if(!xdr_channel_attrs4(xdrs, &objp->csa_fore_chan_attrs))
03079     return FALSE;
03080   if(!xdr_channel_attrs4(xdrs, &objp->csa_back_chan_attrs))
03081     return FALSE;
03082   if(!xdr_uint32_t(xdrs, &objp->csa_cb_program))
03083     return FALSE;
03084   if(!xdr_array
03085      (xdrs, (char **)&objp->csa_sec_parms.csa_sec_parms_val,
03086       (u_int *) & objp->csa_sec_parms.csa_sec_parms_len, ~0, sizeof(callback_sec_parms4),
03087       (xdrproc_t) xdr_callback_sec_parms4))
03088     return FALSE;
03089   return TRUE;
03090 }
03091 
03092 bool_t xdr_CREATE_SESSION4resok(XDR * xdrs, CREATE_SESSION4resok * objp)
03093 {
03094   if(!xdr_sessionid4(xdrs, objp->csr_sessionid))
03095     return FALSE;
03096   if(!xdr_sequenceid4(xdrs, &objp->csr_sequence))
03097     return FALSE;
03098   if(!xdr_uint32_t(xdrs, &objp->csr_flags))
03099     return FALSE;
03100   if(!xdr_channel_attrs4(xdrs, &objp->csr_fore_chan_attrs))
03101     return FALSE;
03102   if(!xdr_channel_attrs4(xdrs, &objp->csr_back_chan_attrs))
03103     return FALSE;
03104   return TRUE;
03105 }
03106 
03107 bool_t xdr_CREATE_SESSION4res(XDR * xdrs, CREATE_SESSION4res * objp)
03108 {
03109   if(!xdr_nfsstat4(xdrs, &objp->csr_status))
03110     return FALSE;
03111   switch (objp->csr_status)
03112     {
03113     case NFS4_OK:
03114       if(!xdr_CREATE_SESSION4resok(xdrs, &objp->CREATE_SESSION4res_u.csr_resok4))
03115         return FALSE;
03116       break;
03117     default:
03118       break;
03119     }
03120   return TRUE;
03121 }
03122 
03123 bool_t xdr_DESTROY_SESSION4args(XDR * xdrs, DESTROY_SESSION4args * objp)
03124 {
03125   if(!xdr_sessionid4(xdrs, objp->dsa_sessionid))
03126     return FALSE;
03127   return TRUE;
03128 }
03129 
03130 bool_t xdr_DESTROY_SESSION4res(XDR * xdrs, DESTROY_SESSION4res * objp)
03131 {
03132   if(!xdr_nfsstat4(xdrs, &objp->dsr_status))
03133     return FALSE;
03134   return TRUE;
03135 }
03136 
03137 bool_t xdr_FREE_STATEID4args(XDR * xdrs, FREE_STATEID4args * objp)
03138 {
03139   if(!xdr_stateid4(xdrs, &objp->fsa_stateid))
03140     return FALSE;
03141   return TRUE;
03142 }
03143 
03144 bool_t xdr_FREE_STATEID4res(XDR * xdrs, FREE_STATEID4res * objp)
03145 {
03146   if(!xdr_nfsstat4(xdrs, &objp->fsr_status))
03147     return FALSE;
03148   return TRUE;
03149 }
03150 
03151 bool_t xdr_attr_notice4(XDR * xdrs, attr_notice4 * objp)
03152 {
03153   if(!xdr_nfstime4(xdrs, objp))
03154     return FALSE;
03155   return TRUE;
03156 }
03157 
03158 bool_t xdr_GET_DIR_DELEGATION4args(XDR * xdrs, GET_DIR_DELEGATION4args * objp)
03159 {
03160   if(!xdr_bool(xdrs, &objp->gdda_signal_deleg_avail))
03161     return FALSE;
03162   if(!xdr_bitmap4(xdrs, &objp->gdda_notification_types))
03163     return FALSE;
03164   if(!xdr_attr_notice4(xdrs, &objp->gdda_child_attr_delay))
03165     return FALSE;
03166   if(!xdr_attr_notice4(xdrs, &objp->gdda_dir_attr_delay))
03167     return FALSE;
03168   if(!xdr_bitmap4(xdrs, &objp->gdda_child_attributes))
03169     return FALSE;
03170   if(!xdr_bitmap4(xdrs, &objp->gdda_dir_attributes))
03171     return FALSE;
03172   return TRUE;
03173 }
03174 
03175 bool_t xdr_GET_DIR_DELEGATION4resok(XDR * xdrs, GET_DIR_DELEGATION4resok * objp)
03176 {
03177   if(!xdr_verifier4(xdrs, objp->gddr_cookieverf))
03178     return FALSE;
03179   if(!xdr_stateid4(xdrs, &objp->gddr_stateid))
03180     return FALSE;
03181   if(!xdr_bitmap4(xdrs, &objp->gddr_notification))
03182     return FALSE;
03183   if(!xdr_bitmap4(xdrs, &objp->gddr_child_attributes))
03184     return FALSE;
03185   if(!xdr_bitmap4(xdrs, &objp->gddr_dir_attributes))
03186     return FALSE;
03187   return TRUE;
03188 }
03189 
03190 bool_t xdr_gddrnf4_status(XDR * xdrs, gddrnf4_status * objp)
03191 {
03192   if(!xdr_enum(xdrs, (enum_t *) objp))
03193     return FALSE;
03194   return TRUE;
03195 }
03196 
03197 bool_t
03198 xdr_GET_DIR_DELEGATION4res_non_fatal(XDR * xdrs, GET_DIR_DELEGATION4res_non_fatal * objp)
03199 {
03200   if(!xdr_gddrnf4_status(xdrs, &objp->gddrnf_status))
03201     return FALSE;
03202   switch (objp->gddrnf_status)
03203     {
03204     case GDD4_OK:
03205       if(!xdr_GET_DIR_DELEGATION4resok
03206          (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4))
03207         return FALSE;
03208       break;
03209     case GDD4_UNAVAIL:
03210       if(!xdr_bool
03211          (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_will_signal_deleg_avail))
03212         return FALSE;
03213       break;
03214     default:
03215       return FALSE;
03216     }
03217   return TRUE;
03218 }
03219 
03220 bool_t xdr_GET_DIR_DELEGATION4res(XDR * xdrs, GET_DIR_DELEGATION4res * objp)
03221 {
03222   if(!xdr_nfsstat4(xdrs, &objp->gddr_status))
03223     return FALSE;
03224   switch (objp->gddr_status)
03225     {
03226     case NFS4_OK:
03227       if(!xdr_GET_DIR_DELEGATION4res_non_fatal
03228          (xdrs, &objp->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4))
03229         return FALSE;
03230       break;
03231     default:
03232       break;
03233     }
03234   return TRUE;
03235 }
03236 
03237 bool_t xdr_GETDEVICEINFO4args(XDR * xdrs, GETDEVICEINFO4args * objp)
03238 {
03239   if(!xdr_deviceid4(xdrs, objp->gdia_device_id))
03240     return FALSE;
03241   if(!xdr_layouttype4(xdrs, &objp->gdia_layout_type))
03242     return FALSE;
03243   if(!xdr_count4(xdrs, &objp->gdia_maxcount))
03244     return FALSE;
03245   if(!xdr_bitmap4(xdrs, &objp->gdia_notify_types))
03246     return FALSE;
03247   return TRUE;
03248 }
03249 
03250 bool_t xdr_GETDEVICEINFO4resok(XDR * xdrs, GETDEVICEINFO4resok * objp)
03251 {
03252   if(!xdr_device_addr4(xdrs, &objp->gdir_device_addr))
03253     return FALSE;
03254   if(!xdr_bitmap4(xdrs, &objp->gdir_notification))
03255     return FALSE;
03256   return TRUE;
03257 }
03258 
03259 bool_t xdr_GETDEVICEINFO4res(XDR * xdrs, GETDEVICEINFO4res * objp)
03260 {
03261   if(!xdr_nfsstat4(xdrs, &objp->gdir_status))
03262     return FALSE;
03263   switch (objp->gdir_status)
03264     {
03265     case NFS4_OK:
03266       if(!xdr_GETDEVICEINFO4resok(xdrs, &objp->GETDEVICEINFO4res_u.gdir_resok4))
03267         return FALSE;
03268       break;
03269     case NFS4ERR_TOOSMALL:
03270       if(!xdr_count4(xdrs, &objp->GETDEVICEINFO4res_u.gdir_mincount))
03271         return FALSE;
03272       break;
03273     default:
03274       break;
03275     }
03276   return TRUE;
03277 }
03278 
03279 bool_t xdr_GETDEVICELIST4args(XDR * xdrs, GETDEVICELIST4args * objp)
03280 {
03281   if(!xdr_layouttype4(xdrs, &objp->gdla_layout_type))
03282     return FALSE;
03283   if(!xdr_count4(xdrs, &objp->gdla_maxdevices))
03284     return FALSE;
03285   if(!xdr_nfs_cookie4(xdrs, &objp->gdla_cookie))
03286     return FALSE;
03287   if(!xdr_verifier4(xdrs, objp->gdla_cookieverf))
03288     return FALSE;
03289   return TRUE;
03290 }
03291 
03292 bool_t xdr_GETDEVICELIST4resok(XDR * xdrs, GETDEVICELIST4resok * objp)
03293 {
03294   if(!xdr_nfs_cookie4(xdrs, &objp->gdlr_cookie))
03295     return FALSE;
03296   if(!xdr_verifier4(xdrs, objp->gdlr_cookieverf))
03297     return FALSE;
03298   if(!xdr_array
03299      (xdrs, (char **)&objp->gdlr_deviceid_list.gdlr_deviceid_list_val,
03300       (u_int *) & objp->gdlr_deviceid_list.gdlr_deviceid_list_len, ~0, sizeof(deviceid4),
03301       (xdrproc_t) xdr_deviceid4))
03302     return FALSE;
03303   if(!xdr_bool(xdrs, &objp->gdlr_eof))
03304     return FALSE;
03305   return TRUE;
03306 }
03307 
03308 bool_t xdr_GETDEVICELIST4res(XDR * xdrs, GETDEVICELIST4res * objp)
03309 {
03310   if(!xdr_nfsstat4(xdrs, &objp->gdlr_status))
03311     return FALSE;
03312   switch (objp->gdlr_status)
03313     {
03314     case NFS4_OK:
03315       if(!xdr_GETDEVICELIST4resok(xdrs, &objp->GETDEVICELIST4res_u.gdlr_resok4))
03316         return FALSE;
03317       break;
03318     default:
03319       break;
03320     }
03321   return TRUE;
03322 }
03323 
03324 bool_t xdr_newtime4(XDR * xdrs, newtime4 * objp)
03325 {
03326   if(!xdr_bool(xdrs, &objp->nt_timechanged))
03327     return FALSE;
03328   switch (objp->nt_timechanged)
03329     {
03330     case TRUE:
03331       if(!xdr_nfstime4(xdrs, &objp->newtime4_u.nt_time))
03332         return FALSE;
03333       break;
03334     case FALSE:
03335       break;
03336     default:
03337       return FALSE;
03338     }
03339   return TRUE;
03340 }
03341 
03342 bool_t xdr_newoffset4(XDR * xdrs, newoffset4 * objp)
03343 {
03344   if(!xdr_bool(xdrs, &objp->no_newoffset))
03345     return FALSE;
03346   switch (objp->no_newoffset)
03347     {
03348     case TRUE:
03349       if(!xdr_offset4(xdrs, &objp->newoffset4_u.no_offset))
03350         return FALSE;
03351       break;
03352     case FALSE:
03353       break;
03354     default:
03355       return FALSE;
03356     }
03357   return TRUE;
03358 }
03359 
03360 bool_t xdr_LAYOUTCOMMIT4args(XDR * xdrs, LAYOUTCOMMIT4args * objp)
03361 {
03362   if(!xdr_offset4(xdrs, &objp->loca_offset))
03363     return FALSE;
03364   if(!xdr_length4(xdrs, &objp->loca_length))
03365     return FALSE;
03366   if(!xdr_bool(xdrs, &objp->loca_reclaim))
03367     return FALSE;
03368   if(!xdr_stateid4(xdrs, &objp->loca_stateid))
03369     return FALSE;
03370   if(!xdr_newoffset4(xdrs, &objp->loca_last_write_offset))
03371     return FALSE;
03372   if(!xdr_newtime4(xdrs, &objp->loca_time_modify))
03373     return FALSE;
03374   if(!xdr_layoutupdate4(xdrs, &objp->loca_layoutupdate))
03375     return FALSE;
03376   return TRUE;
03377 }
03378 
03379 bool_t xdr_newsize4(XDR * xdrs, newsize4 * objp)
03380 {
03381   if(!xdr_bool(xdrs, &objp->ns_sizechanged))
03382     return FALSE;
03383   switch (objp->ns_sizechanged)
03384     {
03385     case TRUE:
03386       if(!xdr_length4(xdrs, &objp->newsize4_u.ns_size))
03387         return FALSE;
03388       break;
03389     case FALSE:
03390       break;
03391     default:
03392       return FALSE;
03393     }
03394   return TRUE;
03395 }
03396 
03397 bool_t xdr_LAYOUTCOMMIT4resok(XDR * xdrs, LAYOUTCOMMIT4resok * objp)
03398 {
03399   if(!xdr_newsize4(xdrs, &objp->locr_newsize))
03400     return FALSE;
03401   return TRUE;
03402 }
03403 
03404 bool_t xdr_LAYOUTCOMMIT4res(XDR * xdrs, LAYOUTCOMMIT4res * objp)
03405 {
03406   if(!xdr_nfsstat4(xdrs, &objp->locr_status))
03407     return FALSE;
03408   switch (objp->locr_status)
03409     {
03410     case NFS4_OK:
03411       if(!xdr_LAYOUTCOMMIT4resok(xdrs, &objp->LAYOUTCOMMIT4res_u.locr_resok4))
03412         return FALSE;
03413       break;
03414     default:
03415       break;
03416     }
03417   return TRUE;
03418 }
03419 
03420 bool_t xdr_LAYOUTGET4args(XDR * xdrs, LAYOUTGET4args * objp)
03421 {
03422   if(!xdr_bool(xdrs, &objp->loga_signal_layout_avail))
03423     return FALSE;
03424   if(!xdr_layouttype4(xdrs, &objp->loga_layout_type))
03425     return FALSE;
03426   if(!xdr_layoutiomode4(xdrs, &objp->loga_iomode))
03427     return FALSE;
03428   if(!xdr_offset4(xdrs, &objp->loga_offset))
03429     return FALSE;
03430   if(!xdr_length4(xdrs, &objp->loga_length))
03431     return FALSE;
03432   if(!xdr_length4(xdrs, &objp->loga_minlength))
03433     return FALSE;
03434   if(!xdr_stateid4(xdrs, &objp->loga_stateid))
03435     return FALSE;
03436   if(!xdr_count4(xdrs, &objp->loga_maxcount))
03437     return FALSE;
03438   return TRUE;
03439 }
03440 
03441 bool_t xdr_LAYOUTGET4resok(XDR * xdrs, LAYOUTGET4resok * objp)
03442 {
03443   if(!xdr_bool(xdrs, &objp->logr_return_on_close))
03444     return FALSE;
03445   if(!xdr_stateid4(xdrs, &objp->logr_stateid))
03446     return FALSE;
03447   if(!xdr_array
03448      (xdrs, (char **)&objp->logr_layout.logr_layout_val,
03449       (u_int *) & objp->logr_layout.logr_layout_len, ~0, sizeof(layout4),
03450       (xdrproc_t) xdr_layout4))
03451     return FALSE;
03452   return TRUE;
03453 }
03454 
03455 bool_t xdr_LAYOUTGET4res(XDR * xdrs, LAYOUTGET4res * objp)
03456 {
03457   if(!xdr_nfsstat4(xdrs, &objp->logr_status))
03458     return FALSE;
03459   switch (objp->logr_status)
03460     {
03461     case NFS4_OK:
03462       if(!xdr_LAYOUTGET4resok(xdrs, &objp->LAYOUTGET4res_u.logr_resok4))
03463         return FALSE;
03464       break;
03465     case NFS4ERR_LAYOUTTRYLATER:
03466       if(!xdr_bool(xdrs, &objp->LAYOUTGET4res_u.logr_will_signal_layout_avail))
03467         return FALSE;
03468       break;
03469     default:
03470       break;
03471     }
03472   return TRUE;
03473 }
03474 
03475 bool_t xdr_LAYOUTRETURN4args(XDR * xdrs, LAYOUTRETURN4args * objp)
03476 {
03477   if(!xdr_bool(xdrs, &objp->lora_reclaim))
03478     return FALSE;
03479   if(!xdr_layouttype4(xdrs, &objp->lora_layout_type))
03480     return FALSE;
03481   if(!xdr_layoutiomode4(xdrs, &objp->lora_iomode))
03482     return FALSE;
03483   if(!xdr_layoutreturn4(xdrs, &objp->lora_layoutreturn))
03484     return FALSE;
03485   return TRUE;
03486 }
03487 
03488 bool_t xdr_layoutreturn_stateid(XDR * xdrs, layoutreturn_stateid * objp)
03489 {
03490   if(!xdr_bool(xdrs, &objp->lrs_present))
03491     return FALSE;
03492   switch (objp->lrs_present)
03493     {
03494     case TRUE:
03495       if(!xdr_stateid4(xdrs, &objp->layoutreturn_stateid_u.lrs_stateid))
03496         return FALSE;
03497       break;
03498     case FALSE:
03499       break;
03500     default:
03501       return FALSE;
03502     }
03503   return TRUE;
03504 }
03505 
03506 bool_t xdr_LAYOUTRETURN4res(XDR * xdrs, LAYOUTRETURN4res * objp)
03507 {
03508   if(!xdr_nfsstat4(xdrs, &objp->lorr_status))
03509     return FALSE;
03510   switch (objp->lorr_status)
03511     {
03512     case NFS4_OK:
03513       if(!xdr_layoutreturn_stateid(xdrs, &objp->LAYOUTRETURN4res_u.lorr_stateid))
03514         return FALSE;
03515       break;
03516     default:
03517       break;
03518     }
03519   return TRUE;
03520 }
03521 
03522 bool_t xdr_secinfo_style4(XDR * xdrs, secinfo_style4 * objp)
03523 {
03524   if(!xdr_enum(xdrs, (enum_t *) objp))
03525     return FALSE;
03526   return TRUE;
03527 }
03528 
03529 bool_t xdr_SECINFO_NO_NAME4args(XDR * xdrs, SECINFO_NO_NAME4args * objp)
03530 {
03531   if(!xdr_secinfo_style4(xdrs, objp))
03532     return FALSE;
03533   return TRUE;
03534 }
03535 
03536 bool_t xdr_SECINFO_NO_NAME4res(XDR * xdrs, SECINFO_NO_NAME4res * objp)
03537 {
03538   if(!xdr_SECINFO4res(xdrs, objp))
03539     return FALSE;
03540   return TRUE;
03541 }
03542 
03543 bool_t xdr_SEQUENCE4args(XDR * xdrs, SEQUENCE4args * objp)
03544 {
03545   if(!xdr_sessionid4(xdrs, objp->sa_sessionid))
03546     return FALSE;
03547   if(!xdr_sequenceid4(xdrs, &objp->sa_sequenceid))
03548     return FALSE;
03549   if(!xdr_slotid4(xdrs, &objp->sa_slotid))
03550     return FALSE;
03551   if(!xdr_slotid4(xdrs, &objp->sa_highest_slotid))
03552     return FALSE;
03553   if(!xdr_bool(xdrs, &objp->sa_cachethis))
03554     return FALSE;
03555   return TRUE;
03556 }
03557 
03558 bool_t xdr_SEQUENCE4resok(XDR * xdrs, SEQUENCE4resok * objp)
03559 {
03560   if(!xdr_sessionid4(xdrs, objp->sr_sessionid))
03561     return FALSE;
03562   if(!xdr_sequenceid4(xdrs, &objp->sr_sequenceid))
03563     return FALSE;
03564   if(!xdr_slotid4(xdrs, &objp->sr_slotid))
03565     return FALSE;
03566   if(!xdr_slotid4(xdrs, &objp->sr_highest_slotid))
03567     return FALSE;
03568   if(!xdr_slotid4(xdrs, &objp->sr_target_highest_slotid))
03569     return FALSE;
03570   if(!xdr_uint32_t(xdrs, &objp->sr_status_flags))
03571     return FALSE;
03572   return TRUE;
03573 }
03574 
03575 bool_t xdr_SEQUENCE4res(XDR * xdrs, SEQUENCE4res * objp)
03576 {
03577   if(!xdr_nfsstat4(xdrs, &objp->sr_status))
03578     return FALSE;
03579   switch (objp->sr_status)
03580     {
03581     case NFS4_OK:
03582       if(!xdr_SEQUENCE4resok(xdrs, &objp->SEQUENCE4res_u.sr_resok4))
03583         return FALSE;
03584       break;
03585     default:
03586       break;
03587     }
03588   return TRUE;
03589 }
03590 
03591 bool_t xdr_ssa_digest_input4(XDR * xdrs, ssa_digest_input4 * objp)
03592 {
03593   if(!xdr_SEQUENCE4args(xdrs, &objp->sdi_seqargs))
03594     return FALSE;
03595   return TRUE;
03596 }
03597 
03598 bool_t xdr_SET_SSV4args(XDR * xdrs, SET_SSV4args * objp)
03599 {
03600   if(!xdr_bytes
03601      (xdrs, (char **)&objp->ssa_ssv.ssa_ssv_val, (u_int *) & objp->ssa_ssv.ssa_ssv_len,
03602       ~0))
03603     return FALSE;
03604   if(!xdr_bytes
03605      (xdrs, (char **)&objp->ssa_digest.ssa_digest_val,
03606       (u_int *) & objp->ssa_digest.ssa_digest_len, ~0))
03607     return FALSE;
03608   return TRUE;
03609 }
03610 
03611 bool_t xdr_ssr_digest_input4(XDR * xdrs, ssr_digest_input4 * objp)
03612 {
03613   if(!xdr_SEQUENCE4res(xdrs, &objp->sdi_seqres))
03614     return FALSE;
03615   return TRUE;
03616 }
03617 
03618 bool_t xdr_SET_SSV4resok(XDR * xdrs, SET_SSV4resok * objp)
03619 {
03620   if(!xdr_bytes
03621      (xdrs, (char **)&objp->ssr_digest.ssr_digest_val,
03622       (u_int *) & objp->ssr_digest.ssr_digest_len, ~0))
03623     return FALSE;
03624   return TRUE;
03625 }
03626 
03627 bool_t xdr_SET_SSV4res(XDR * xdrs, SET_SSV4res * objp)
03628 {
03629   if(!xdr_nfsstat4(xdrs, &objp->ssr_status))
03630     return FALSE;
03631   switch (objp->ssr_status)
03632     {
03633     case NFS4_OK:
03634       if(!xdr_SET_SSV4resok(xdrs, &objp->SET_SSV4res_u.ssr_resok4))
03635         return FALSE;
03636       break;
03637     default:
03638       break;
03639     }
03640   return TRUE;
03641 }
03642 
03643 bool_t xdr_TEST_STATEID4args(XDR * xdrs, TEST_STATEID4args * objp)
03644 {
03645   if(!xdr_array
03646      (xdrs, (char **)&objp->ts_stateids.ts_stateids_val,
03647       (u_int *) & objp->ts_stateids.ts_stateids_len, ~0, sizeof(stateid4),
03648       (xdrproc_t) xdr_stateid4))
03649     return FALSE;
03650   return TRUE;
03651 }
03652 
03653 bool_t xdr_TEST_STATEID4resok(XDR * xdrs, TEST_STATEID4resok * objp)
03654 {
03655   if(!xdr_array
03656      (xdrs, (char **)&objp->tsr_status_codes.tsr_status_codes_val,
03657       (u_int *) & objp->tsr_status_codes.tsr_status_codes_len, ~0, sizeof(nfsstat4),
03658       (xdrproc_t) xdr_nfsstat4))
03659     return FALSE;
03660   return TRUE;
03661 }
03662 
03663 bool_t xdr_TEST_STATEID4res(XDR * xdrs, TEST_STATEID4res * objp)
03664 {
03665   if(!xdr_nfsstat4(xdrs, &objp->tsr_status))
03666     return FALSE;
03667   switch (objp->tsr_status)
03668     {
03669     case NFS4_OK:
03670       if(!xdr_TEST_STATEID4resok(xdrs, &objp->TEST_STATEID4res_u.tsr_resok4))
03671         return FALSE;
03672       break;
03673     default:
03674       break;
03675     }
03676   return TRUE;
03677 }
03678 
03679 bool_t xdr_deleg_claim4(XDR * xdrs, deleg_claim4 * objp)
03680 {
03681   if(!xdr_open_claim_type4(xdrs, &objp->dc_claim))
03682     return FALSE;
03683   switch (objp->dc_claim)
03684     {
03685     case CLAIM_FH:
03686       break;
03687     case CLAIM_DELEG_PREV_FH:
03688       break;
03689     case CLAIM_PREVIOUS:
03690       if(!xdr_open_delegation_type4(xdrs, &objp->deleg_claim4_u.dc_delegate_type))
03691         return FALSE;
03692       break;
03693     default:
03694       return FALSE;
03695     }
03696   return TRUE;
03697 }
03698 
03699 bool_t xdr_WANT_DELEGATION4args(XDR * xdrs, WANT_DELEGATION4args * objp)
03700 {
03701   if(!xdr_uint32_t(xdrs, &objp->wda_want))
03702     return FALSE;
03703   if(!xdr_deleg_claim4(xdrs, &objp->wda_claim))
03704     return FALSE;
03705   return TRUE;
03706 }
03707 
03708 bool_t xdr_WANT_DELEGATION4res(XDR * xdrs, WANT_DELEGATION4res * objp)
03709 {
03710   if(!xdr_nfsstat4(xdrs, &objp->wdr_status))
03711     return FALSE;
03712   switch (objp->wdr_status)
03713     {
03714     case NFS4_OK:
03715       if(!xdr_open_delegation4(xdrs, &objp->WANT_DELEGATION4res_u.wdr_resok4))
03716         return FALSE;
03717       break;
03718     default:
03719       break;
03720     }
03721   return TRUE;
03722 }
03723 
03724 bool_t xdr_DESTROY_CLIENTID4args(XDR * xdrs, DESTROY_CLIENTID4args * objp)
03725 {
03726   if(!xdr_clientid4(xdrs, &objp->dca_clientid))
03727     return FALSE;
03728   return TRUE;
03729 }
03730 
03731 bool_t xdr_DESTROY_CLIENTID4res(XDR * xdrs, DESTROY_CLIENTID4res * objp)
03732 {
03733   if(!xdr_nfsstat4(xdrs, &objp->dcr_status))
03734     return FALSE;
03735   return TRUE;
03736 }
03737 
03738 bool_t xdr_RECLAIM_COMPLETE4args(XDR * xdrs, RECLAIM_COMPLETE4args * objp)
03739 {
03740   if(!xdr_bool(xdrs, &objp->rca_one_fs))
03741     return FALSE;
03742   return TRUE;
03743 }
03744 
03745 bool_t xdr_RECLAIM_COMPLETE4res(XDR * xdrs, RECLAIM_COMPLETE4res * objp)
03746 {
03747   if(!xdr_nfsstat4(xdrs, &objp->rcr_status))
03748     return FALSE;
03749   return TRUE;
03750 }
03751 
03752 /* new operations for NFSv4.1 */
03753 
03754 bool_t xdr_nfs_opnum4(XDR * xdrs, nfs_opnum4 * objp)
03755 {
03756   if(!xdr_enum(xdrs, (enum_t *) objp))
03757     return FALSE;
03758   return TRUE;
03759 }
03760 
03761 bool_t xdr_nfs_argop4(XDR * xdrs, nfs_argop4 * objp)
03762 {
03763   if(!xdr_nfs_opnum4(xdrs, &objp->argop))
03764     return FALSE;
03765   switch (objp->argop)
03766     {
03767     case NFS4_OP_ACCESS:
03768       if(!xdr_ACCESS4args(xdrs, &objp->nfs_argop4_u.opaccess))
03769         return FALSE;
03770       break;
03771     case NFS4_OP_CLOSE:
03772       if(!xdr_CLOSE4args(xdrs, &objp->nfs_argop4_u.opclose))
03773         return FALSE;
03774       break;
03775     case NFS4_OP_COMMIT:
03776       if(!xdr_COMMIT4args(xdrs, &objp->nfs_argop4_u.opcommit))
03777         return FALSE;
03778       break;
03779     case NFS4_OP_CREATE:
03780       if(!xdr_CREATE4args(xdrs, &objp->nfs_argop4_u.opcreate))
03781         return FALSE;
03782       break;
03783     case NFS4_OP_DELEGPURGE:
03784       if(!xdr_DELEGPURGE4args(xdrs, &objp->nfs_argop4_u.opdelegpurge))
03785         return FALSE;
03786       break;
03787     case NFS4_OP_DELEGRETURN:
03788       if(!xdr_DELEGRETURN4args(xdrs, &objp->nfs_argop4_u.opdelegreturn))
03789         return FALSE;
03790       break;
03791     case NFS4_OP_GETATTR:
03792       if(!xdr_GETATTR4args(xdrs, &objp->nfs_argop4_u.opgetattr))
03793         return FALSE;
03794       break;
03795     case NFS4_OP_GETFH:
03796       break;
03797     case NFS4_OP_LINK:
03798       if(!xdr_LINK4args(xdrs, &objp->nfs_argop4_u.oplink))
03799         return FALSE;
03800       break;
03801     case NFS4_OP_LOCK:
03802       if(!xdr_LOCK4args(xdrs, &objp->nfs_argop4_u.oplock))
03803         return FALSE;
03804       break;
03805     case NFS4_OP_LOCKT:
03806       if(!xdr_LOCKT4args(xdrs, &objp->nfs_argop4_u.oplockt))
03807         return FALSE;
03808       break;
03809     case NFS4_OP_LOCKU:
03810       if(!xdr_LOCKU4args(xdrs, &objp->nfs_argop4_u.oplocku))
03811         return FALSE;
03812       break;
03813     case NFS4_OP_LOOKUP:
03814       if(!xdr_LOOKUP4args(xdrs, &objp->nfs_argop4_u.oplookup))
03815         return FALSE;
03816       break;
03817     case NFS4_OP_LOOKUPP:
03818       break;
03819     case NFS4_OP_NVERIFY:
03820       if(!xdr_NVERIFY4args(xdrs, &objp->nfs_argop4_u.opnverify))
03821         return FALSE;
03822       break;
03823     case NFS4_OP_OPEN:
03824       if(!xdr_OPEN4args(xdrs, &objp->nfs_argop4_u.opopen))
03825         return FALSE;
03826       break;
03827     case NFS4_OP_OPENATTR:
03828       if(!xdr_OPENATTR4args(xdrs, &objp->nfs_argop4_u.opopenattr))
03829         return FALSE;
03830       break;
03831     case NFS4_OP_OPEN_CONFIRM:
03832       if(!xdr_OPEN_CONFIRM4args(xdrs, &objp->nfs_argop4_u.opopen_confirm))
03833         return FALSE;
03834       break;
03835     case NFS4_OP_OPEN_DOWNGRADE:
03836       if(!xdr_OPEN_DOWNGRADE4args(xdrs, &objp->nfs_argop4_u.opopen_downgrade))
03837         return FALSE;
03838       break;
03839     case NFS4_OP_PUTFH:
03840       if(!xdr_PUTFH4args(xdrs, &objp->nfs_argop4_u.opputfh))
03841         return FALSE;
03842       break;
03843     case NFS4_OP_PUTPUBFH:
03844       break;
03845     case NFS4_OP_PUTROOTFH:
03846       break;
03847     case NFS4_OP_READ:
03848       if(!xdr_READ4args(xdrs, &objp->nfs_argop4_u.opread))
03849         return FALSE;
03850       break;
03851     case NFS4_OP_READDIR:
03852       if(!xdr_READDIR4args(xdrs, &objp->nfs_argop4_u.opreaddir))
03853         return FALSE;
03854       break;
03855     case NFS4_OP_READLINK:
03856       break;
03857     case NFS4_OP_REMOVE:
03858       if(!xdr_REMOVE4args(xdrs, &objp->nfs_argop4_u.opremove))
03859         return FALSE;
03860       break;
03861     case NFS4_OP_RENAME:
03862       if(!xdr_RENAME4args(xdrs, &objp->nfs_argop4_u.oprename))
03863         return FALSE;
03864       break;
03865     case NFS4_OP_RENEW:
03866       if(!xdr_RENEW4args(xdrs, &objp->nfs_argop4_u.oprenew))
03867         return FALSE;
03868       break;
03869     case NFS4_OP_RESTOREFH:
03870       break;
03871     case NFS4_OP_SAVEFH:
03872       break;
03873     case NFS4_OP_SECINFO:
03874       if(!xdr_SECINFO4args(xdrs, &objp->nfs_argop4_u.opsecinfo))
03875         return FALSE;
03876       break;
03877     case NFS4_OP_SETATTR:
03878       if(!xdr_SETATTR4args(xdrs, &objp->nfs_argop4_u.opsetattr))
03879         return FALSE;
03880       break;
03881     case NFS4_OP_SETCLIENTID:
03882       if(!xdr_SETCLIENTID4args(xdrs, &objp->nfs_argop4_u.opsetclientid))
03883         return FALSE;
03884       break;
03885     case NFS4_OP_SETCLIENTID_CONFIRM:
03886       if(!xdr_SETCLIENTID_CONFIRM4args(xdrs, &objp->nfs_argop4_u.opsetclientid_confirm))
03887         return FALSE;
03888       break;
03889     case NFS4_OP_VERIFY:
03890       if(!xdr_VERIFY4args(xdrs, &objp->nfs_argop4_u.opverify))
03891         return FALSE;
03892       break;
03893     case NFS4_OP_WRITE:
03894       if(!xdr_WRITE4args(xdrs, &objp->nfs_argop4_u.opwrite))
03895         return FALSE;
03896       break;
03897     case NFS4_OP_RELEASE_LOCKOWNER:
03898       if(!xdr_RELEASE_LOCKOWNER4args(xdrs, &objp->nfs_argop4_u.oprelease_lockowner))
03899         return FALSE;
03900       break;
03901     case NFS4_OP_BACKCHANNEL_CTL:
03902       if(!xdr_BACKCHANNEL_CTL4args(xdrs, &objp->nfs_argop4_u.opbackchannel_ctl))
03903         return FALSE;
03904       break;
03905     case NFS4_OP_BIND_CONN_TO_SESSION:
03906       if(!xdr_BIND_CONN_TO_SESSION4args(xdrs, &objp->nfs_argop4_u.opbind_conn_to_session))
03907         return FALSE;
03908       break;
03909     case NFS4_OP_EXCHANGE_ID:
03910       if(!xdr_EXCHANGE_ID4args(xdrs, &objp->nfs_argop4_u.opexchange_id))
03911         return FALSE;
03912       break;
03913     case NFS4_OP_CREATE_SESSION:
03914       if(!xdr_CREATE_SESSION4args(xdrs, &objp->nfs_argop4_u.opcreate_session))
03915         return FALSE;
03916       break;
03917     case NFS4_OP_DESTROY_SESSION:
03918       if(!xdr_DESTROY_SESSION4args(xdrs, &objp->nfs_argop4_u.opdestroy_session))
03919         return FALSE;
03920       break;
03921     case NFS4_OP_FREE_STATEID:
03922       if(!xdr_FREE_STATEID4args(xdrs, &objp->nfs_argop4_u.opfree_stateid))
03923         return FALSE;
03924       break;
03925     case NFS4_OP_GET_DIR_DELEGATION:
03926       if(!xdr_GET_DIR_DELEGATION4args(xdrs, &objp->nfs_argop4_u.opget_dir_delegation))
03927         return FALSE;
03928       break;
03929     case NFS4_OP_GETDEVICEINFO:
03930       if(!xdr_GETDEVICEINFO4args(xdrs, &objp->nfs_argop4_u.opgetdeviceinfo))
03931         return FALSE;
03932       break;
03933     case NFS4_OP_GETDEVICELIST:
03934       if(!xdr_GETDEVICELIST4args(xdrs, &objp->nfs_argop4_u.opgetdevicelist))
03935         return FALSE;
03936       break;
03937     case NFS4_OP_LAYOUTCOMMIT:
03938       if(!xdr_LAYOUTCOMMIT4args(xdrs, &objp->nfs_argop4_u.oplayoutcommit))
03939         return FALSE;
03940       break;
03941     case NFS4_OP_LAYOUTGET:
03942       if(!xdr_LAYOUTGET4args(xdrs, &objp->nfs_argop4_u.oplayoutget))
03943         return FALSE;
03944       break;
03945     case NFS4_OP_LAYOUTRETURN:
03946       if(!xdr_LAYOUTRETURN4args(xdrs, &objp->nfs_argop4_u.oplayoutreturn))
03947         return FALSE;
03948       break;
03949     case NFS4_OP_SECINFO_NO_NAME:
03950       if(!xdr_SECINFO_NO_NAME4args(xdrs, &objp->nfs_argop4_u.opsecinfo_no_name))
03951         return FALSE;
03952       break;
03953     case NFS4_OP_SEQUENCE:
03954       if(!xdr_SEQUENCE4args(xdrs, &objp->nfs_argop4_u.opsequence))
03955         return FALSE;
03956       break;
03957     case NFS4_OP_SET_SSV:
03958       if(!xdr_SET_SSV4args(xdrs, &objp->nfs_argop4_u.opset_ssv))
03959         return FALSE;
03960       break;
03961     case NFS4_OP_TEST_STATEID:
03962       if(!xdr_TEST_STATEID4args(xdrs, &objp->nfs_argop4_u.optest_stateid))
03963         return FALSE;
03964       break;
03965     case NFS4_OP_WANT_DELEGATION:
03966       if(!xdr_WANT_DELEGATION4args(xdrs, &objp->nfs_argop4_u.opwant_delegation))
03967         return FALSE;
03968       break;
03969     case NFS4_OP_DESTROY_CLIENTID:
03970       if(!xdr_DESTROY_CLIENTID4args(xdrs, &objp->nfs_argop4_u.opdestroy_clientid))
03971         return FALSE;
03972       break;
03973     case NFS4_OP_RECLAIM_COMPLETE:
03974       if(!xdr_RECLAIM_COMPLETE4args(xdrs, &objp->nfs_argop4_u.opreclaim_complete))
03975         return FALSE;
03976       break;
03977     case NFS4_OP_ILLEGAL:
03978       break;
03979     default:
03980       return FALSE;
03981     }
03982   return TRUE;
03983 }
03984 
03985 bool_t xdr_nfs_resop4(XDR * xdrs, nfs_resop4 * objp)
03986 {
03987   if(!xdr_nfs_opnum4(xdrs, &objp->resop))
03988     return FALSE;
03989   switch (objp->resop)
03990     {
03991     case NFS4_OP_ACCESS:
03992       if(!xdr_ACCESS4res(xdrs, &objp->nfs_resop4_u.opaccess))
03993         return FALSE;
03994       break;
03995     case NFS4_OP_CLOSE:
03996       if(!xdr_CLOSE4res(xdrs, &objp->nfs_resop4_u.opclose))
03997         return FALSE;
03998       break;
03999     case NFS4_OP_COMMIT:
04000       if(!xdr_COMMIT4res(xdrs, &objp->nfs_resop4_u.opcommit))
04001         return FALSE;
04002       break;
04003     case NFS4_OP_CREATE:
04004       if(!xdr_CREATE4res(xdrs, &objp->nfs_resop4_u.opcreate))
04005         return FALSE;
04006       break;
04007     case NFS4_OP_DELEGPURGE:
04008       if(!xdr_DELEGPURGE4res(xdrs, &objp->nfs_resop4_u.opdelegpurge))
04009         return FALSE;
04010       break;
04011     case NFS4_OP_DELEGRETURN:
04012       if(!xdr_DELEGRETURN4res(xdrs, &objp->nfs_resop4_u.opdelegreturn))
04013         return FALSE;
04014       break;
04015     case NFS4_OP_GETATTR:
04016       if(!xdr_GETATTR4res(xdrs, &objp->nfs_resop4_u.opgetattr))
04017         return FALSE;
04018       break;
04019     case NFS4_OP_GETFH:
04020       if(!xdr_GETFH4res(xdrs, &objp->nfs_resop4_u.opgetfh))
04021         return FALSE;
04022       break;
04023     case NFS4_OP_LINK:
04024       if(!xdr_LINK4res(xdrs, &objp->nfs_resop4_u.oplink))
04025         return FALSE;
04026       break;
04027     case NFS4_OP_LOCK:
04028       if(!xdr_LOCK4res(xdrs, &objp->nfs_resop4_u.oplock))
04029         return FALSE;
04030       break;
04031     case NFS4_OP_LOCKT:
04032       if(!xdr_LOCKT4res(xdrs, &objp->nfs_resop4_u.oplockt))
04033         return FALSE;
04034       break;
04035     case NFS4_OP_LOCKU:
04036       if(!xdr_LOCKU4res(xdrs, &objp->nfs_resop4_u.oplocku))
04037         return FALSE;
04038       break;
04039     case NFS4_OP_LOOKUP:
04040       if(!xdr_LOOKUP4res(xdrs, &objp->nfs_resop4_u.oplookup))
04041         return FALSE;
04042       break;
04043     case NFS4_OP_LOOKUPP:
04044       if(!xdr_LOOKUPP4res(xdrs, &objp->nfs_resop4_u.oplookupp))
04045         return FALSE;
04046       break;
04047     case NFS4_OP_NVERIFY:
04048       if(!xdr_NVERIFY4res(xdrs, &objp->nfs_resop4_u.opnverify))
04049         return FALSE;
04050       break;
04051     case NFS4_OP_OPEN:
04052       if(!xdr_OPEN4res(xdrs, &objp->nfs_resop4_u.opopen))
04053         return FALSE;
04054       break;
04055     case NFS4_OP_OPENATTR:
04056       if(!xdr_OPENATTR4res(xdrs, &objp->nfs_resop4_u.opopenattr))
04057         return FALSE;
04058       break;
04059     case NFS4_OP_OPEN_CONFIRM:
04060       if(!xdr_OPEN_CONFIRM4res(xdrs, &objp->nfs_resop4_u.opopen_confirm))
04061         return FALSE;
04062       break;
04063     case NFS4_OP_OPEN_DOWNGRADE:
04064       if(!xdr_OPEN_DOWNGRADE4res(xdrs, &objp->nfs_resop4_u.opopen_downgrade))
04065         return FALSE;
04066       break;
04067     case NFS4_OP_PUTFH:
04068       if(!xdr_PUTFH4res(xdrs, &objp->nfs_resop4_u.opputfh))
04069         return FALSE;
04070       break;
04071     case NFS4_OP_PUTPUBFH:
04072       if(!xdr_PUTPUBFH4res(xdrs, &objp->nfs_resop4_u.opputpubfh))
04073         return FALSE;
04074       break;
04075     case NFS4_OP_PUTROOTFH:
04076       if(!xdr_PUTROOTFH4res(xdrs, &objp->nfs_resop4_u.opputrootfh))
04077         return FALSE;
04078       break;
04079     case NFS4_OP_READ:
04080       if(!xdr_READ4res(xdrs, &objp->nfs_resop4_u.opread))
04081         return FALSE;
04082       break;
04083     case NFS4_OP_READDIR:
04084       if(!xdr_READDIR4res(xdrs, &objp->nfs_resop4_u.opreaddir))
04085         return FALSE;
04086       break;
04087     case NFS4_OP_READLINK:
04088       if(!xdr_READLINK4res(xdrs, &objp->nfs_resop4_u.opreadlink))
04089         return FALSE;
04090       break;
04091     case NFS4_OP_REMOVE:
04092       if(!xdr_REMOVE4res(xdrs, &objp->nfs_resop4_u.opremove))
04093         return FALSE;
04094       break;
04095     case NFS4_OP_RENAME:
04096       if(!xdr_RENAME4res(xdrs, &objp->nfs_resop4_u.oprename))
04097         return FALSE;
04098       break;
04099     case NFS4_OP_RENEW:
04100       if(!xdr_RENEW4res(xdrs, &objp->nfs_resop4_u.oprenew))
04101         return FALSE;
04102       break;
04103     case NFS4_OP_RESTOREFH:
04104       if(!xdr_RESTOREFH4res(xdrs, &objp->nfs_resop4_u.oprestorefh))
04105         return FALSE;
04106       break;
04107     case NFS4_OP_SAVEFH:
04108       if(!xdr_SAVEFH4res(xdrs, &objp->nfs_resop4_u.opsavefh))
04109         return FALSE;
04110       break;
04111     case NFS4_OP_SECINFO:
04112       if(!xdr_SECINFO4res(xdrs, &objp->nfs_resop4_u.opsecinfo))
04113         return FALSE;
04114       break;
04115     case NFS4_OP_SETATTR:
04116       if(!xdr_SETATTR4res(xdrs, &objp->nfs_resop4_u.opsetattr))
04117         return FALSE;
04118       break;
04119     case NFS4_OP_SETCLIENTID:
04120       if(!xdr_SETCLIENTID4res(xdrs, &objp->nfs_resop4_u.opsetclientid))
04121         return FALSE;
04122       break;
04123     case NFS4_OP_SETCLIENTID_CONFIRM:
04124       if(!xdr_SETCLIENTID_CONFIRM4res(xdrs, &objp->nfs_resop4_u.opsetclientid_confirm))
04125         return FALSE;
04126       break;
04127     case NFS4_OP_VERIFY:
04128       if(!xdr_VERIFY4res(xdrs, &objp->nfs_resop4_u.opverify))
04129         return FALSE;
04130       break;
04131     case NFS4_OP_WRITE:
04132       if(!xdr_WRITE4res(xdrs, &objp->nfs_resop4_u.opwrite))
04133         return FALSE;
04134       break;
04135     case NFS4_OP_RELEASE_LOCKOWNER:
04136       if(!xdr_RELEASE_LOCKOWNER4res(xdrs, &objp->nfs_resop4_u.oprelease_lockowner))
04137         return FALSE;
04138       break;
04139     case NFS4_OP_BACKCHANNEL_CTL:
04140       if(!xdr_BACKCHANNEL_CTL4res(xdrs, &objp->nfs_resop4_u.opbackchannel_ctl))
04141         return FALSE;
04142       break;
04143     case NFS4_OP_BIND_CONN_TO_SESSION:
04144       if(!xdr_BIND_CONN_TO_SESSION4res(xdrs, &objp->nfs_resop4_u.opbind_conn_to_session))
04145         return FALSE;
04146       break;
04147     case NFS4_OP_EXCHANGE_ID:
04148       if(!xdr_EXCHANGE_ID4res(xdrs, &objp->nfs_resop4_u.opexchange_id))
04149         return FALSE;
04150       break;
04151     case NFS4_OP_CREATE_SESSION:
04152       if(!xdr_CREATE_SESSION4res(xdrs, &objp->nfs_resop4_u.opcreate_session))
04153         return FALSE;
04154       break;
04155     case NFS4_OP_DESTROY_SESSION:
04156       if(!xdr_DESTROY_SESSION4res(xdrs, &objp->nfs_resop4_u.opdestroy_session))
04157         return FALSE;
04158       break;
04159     case NFS4_OP_FREE_STATEID:
04160       if(!xdr_FREE_STATEID4res(xdrs, &objp->nfs_resop4_u.opfree_stateid))
04161         return FALSE;
04162       break;
04163     case NFS4_OP_GET_DIR_DELEGATION:
04164       if(!xdr_GET_DIR_DELEGATION4res(xdrs, &objp->nfs_resop4_u.opget_dir_delegation))
04165         return FALSE;
04166       break;
04167     case NFS4_OP_GETDEVICEINFO:
04168       if(!xdr_GETDEVICEINFO4res(xdrs, &objp->nfs_resop4_u.opgetdeviceinfo))
04169         return FALSE;
04170       break;
04171     case NFS4_OP_GETDEVICELIST:
04172       if(!xdr_GETDEVICELIST4res(xdrs, &objp->nfs_resop4_u.opgetdevicelist))
04173         return FALSE;
04174       break;
04175     case NFS4_OP_LAYOUTCOMMIT:
04176       if(!xdr_LAYOUTCOMMIT4res(xdrs, &objp->nfs_resop4_u.oplayoutcommit))
04177         return FALSE;
04178       break;
04179     case NFS4_OP_LAYOUTGET:
04180       if(!xdr_LAYOUTGET4res(xdrs, &objp->nfs_resop4_u.oplayoutget))
04181         return FALSE;
04182       break;
04183     case NFS4_OP_LAYOUTRETURN:
04184       if(!xdr_LAYOUTRETURN4res(xdrs, &objp->nfs_resop4_u.oplayoutreturn))
04185         return FALSE;
04186       break;
04187     case NFS4_OP_SECINFO_NO_NAME:
04188       if(!xdr_SECINFO_NO_NAME4res(xdrs, &objp->nfs_resop4_u.opsecinfo_no_name))
04189         return FALSE;
04190       break;
04191     case NFS4_OP_SEQUENCE:
04192       if(!xdr_SEQUENCE4res(xdrs, &objp->nfs_resop4_u.opsequence))
04193         return FALSE;
04194       break;
04195     case NFS4_OP_SET_SSV:
04196       if(!xdr_SET_SSV4res(xdrs, &objp->nfs_resop4_u.opset_ssv))
04197         return FALSE;
04198       break;
04199     case NFS4_OP_TEST_STATEID:
04200       if(!xdr_TEST_STATEID4res(xdrs, &objp->nfs_resop4_u.optest_stateid))
04201         return FALSE;
04202       break;
04203     case NFS4_OP_WANT_DELEGATION:
04204       if(!xdr_WANT_DELEGATION4res(xdrs, &objp->nfs_resop4_u.opwant_delegation))
04205         return FALSE;
04206       break;
04207     case NFS4_OP_DESTROY_CLIENTID:
04208       if(!xdr_DESTROY_CLIENTID4res(xdrs, &objp->nfs_resop4_u.opdestroy_clientid))
04209         return FALSE;
04210       break;
04211     case NFS4_OP_RECLAIM_COMPLETE:
04212       if(!xdr_RECLAIM_COMPLETE4res(xdrs, &objp->nfs_resop4_u.opreclaim_complete))
04213         return FALSE;
04214       break;
04215     case NFS4_OP_ILLEGAL:
04216       if(!xdr_ILLEGAL4res(xdrs, &objp->nfs_resop4_u.opillegal))
04217         return FALSE;
04218       break;
04219     default:
04220       return FALSE;
04221     }
04222   return TRUE;
04223 }
04224 
04225 bool_t xdr_COMPOUND4args(XDR * xdrs, COMPOUND4args * objp)
04226 {
04227   if(!xdr_utf8str_cs(xdrs, &objp->tag))
04228     return FALSE;
04229   if(!xdr_uint32_t(xdrs, &objp->minorversion))
04230     return FALSE;
04231   if(!xdr_array
04232      (xdrs, (char **)&objp->argarray.argarray_val,
04233       (u_int *) & objp->argarray.argarray_len, ~0, sizeof(nfs_argop4),
04234       (xdrproc_t) xdr_nfs_argop4))
04235     return FALSE;
04236   return TRUE;
04237 }
04238 
04239 bool_t xdr_COMPOUND4res(XDR * xdrs, COMPOUND4res * objp)
04240 {
04241   if(!xdr_nfsstat4(xdrs, &objp->status))
04242     return FALSE;
04243   if(!xdr_utf8str_cs(xdrs, &objp->tag))
04244     return FALSE;
04245   if(!xdr_array
04246      (xdrs, (char **)&objp->resarray.resarray_val,
04247       (u_int *) & objp->resarray.resarray_len, ~0, sizeof(nfs_resop4),
04248       (xdrproc_t) xdr_nfs_resop4))
04249     return FALSE;
04250   return TRUE;
04251 }
04252 
04253 bool_t xdr_CB_GETATTR4args(XDR * xdrs, CB_GETATTR4args * objp)
04254 {
04255   if(!xdr_nfs_fh4(xdrs, &objp->fh))
04256     return FALSE;
04257   if(!xdr_bitmap4(xdrs, &objp->attr_request))
04258     return FALSE;
04259   return TRUE;
04260 }
04261 
04262 bool_t xdr_CB_GETATTR4resok(XDR * xdrs, CB_GETATTR4resok * objp)
04263 {
04264   if(!xdr_fattr4(xdrs, &objp->obj_attributes))
04265     return FALSE;
04266   return TRUE;
04267 }
04268 
04269 bool_t xdr_CB_GETATTR4res(XDR * xdrs, CB_GETATTR4res * objp)
04270 {
04271   if(!xdr_nfsstat4(xdrs, &objp->status))
04272     return FALSE;
04273   switch (objp->status)
04274     {
04275     case NFS4_OK:
04276       if(!xdr_CB_GETATTR4resok(xdrs, &objp->CB_GETATTR4res_u.resok4))
04277         return FALSE;
04278       break;
04279     default:
04280       break;
04281     }
04282   return TRUE;
04283 }
04284 
04285 bool_t xdr_CB_RECALL4args(XDR * xdrs, CB_RECALL4args * objp)
04286 {
04287   if(!xdr_stateid4(xdrs, &objp->stateid))
04288     return FALSE;
04289   if(!xdr_bool(xdrs, &objp->truncate))
04290     return FALSE;
04291   if(!xdr_nfs_fh4(xdrs, &objp->fh))
04292     return FALSE;
04293   return TRUE;
04294 }
04295 
04296 bool_t xdr_CB_RECALL4res(XDR * xdrs, CB_RECALL4res * objp)
04297 {
04298   if(!xdr_nfsstat4(xdrs, &objp->status))
04299     return FALSE;
04300   return TRUE;
04301 }
04302 
04303 bool_t xdr_CB_ILLEGAL4res(XDR * xdrs, CB_ILLEGAL4res * objp)
04304 {
04305   if(!xdr_nfsstat4(xdrs, &objp->status))
04306     return FALSE;
04307   return TRUE;
04308 }
04309 
04310 bool_t xdr_layoutrecall_type4(XDR * xdrs, layoutrecall_type4 * objp)
04311 {
04312   if(!xdr_enum(xdrs, (enum_t *) objp))
04313     return FALSE;
04314   return TRUE;
04315 }
04316 
04317 bool_t xdr_layoutrecall_file4(XDR * xdrs, layoutrecall_file4 * objp)
04318 {
04319   if(!xdr_nfs_fh4(xdrs, &objp->lor_fh))
04320     return FALSE;
04321   if(!xdr_offset4(xdrs, &objp->lor_offset))
04322     return FALSE;
04323   if(!xdr_length4(xdrs, &objp->lor_length))
04324     return FALSE;
04325   if(!xdr_stateid4(xdrs, &objp->lor_stateid))
04326     return FALSE;
04327   return TRUE;
04328 }
04329 
04330 bool_t xdr_layoutrecall4(XDR * xdrs, layoutrecall4 * objp)
04331 {
04332   if(!xdr_layoutrecall_type4(xdrs, &objp->lor_recalltype))
04333     return FALSE;
04334   switch (objp->lor_recalltype)
04335     {
04336     case LAYOUTRECALL4_FILE:
04337       if(!xdr_layoutrecall_file4(xdrs, &objp->layoutrecall4_u.lor_layout))
04338         return FALSE;
04339       break;
04340     case LAYOUTRECALL4_FSID:
04341       if(!xdr_fsid4(xdrs, &objp->layoutrecall4_u.lor_fsid))
04342         return FALSE;
04343       break;
04344     case LAYOUTRECALL4_ALL:
04345       break;
04346     default:
04347       return FALSE;
04348     }
04349   return TRUE;
04350 }
04351 
04352 bool_t xdr_CB_LAYOUTRECALL4args(XDR * xdrs, CB_LAYOUTRECALL4args * objp)
04353 {
04354   if(!xdr_layouttype4(xdrs, &objp->clora_type))
04355     return FALSE;
04356   if(!xdr_layoutiomode4(xdrs, &objp->clora_iomode))
04357     return FALSE;
04358   if(!xdr_bool(xdrs, &objp->clora_changed))
04359     return FALSE;
04360   if(!xdr_layoutrecall4(xdrs, &objp->clora_recall))
04361     return FALSE;
04362   return TRUE;
04363 }
04364 
04365 bool_t xdr_CB_LAYOUTRECALL4res(XDR * xdrs, CB_LAYOUTRECALL4res * objp)
04366 {
04367   if(!xdr_nfsstat4(xdrs, &objp->clorr_status))
04368     return FALSE;
04369   return TRUE;
04370 }
04371 
04372 bool_t xdr_notify_type4(XDR * xdrs, notify_type4 * objp)
04373 {
04374   if(!xdr_enum(xdrs, (enum_t *) objp))
04375     return FALSE;
04376   return TRUE;
04377 }
04378 
04379 bool_t xdr_notify_entry4(XDR * xdrs, notify_entry4 * objp)
04380 {
04381   if(!xdr_component4(xdrs, &objp->ne_file))
04382     return FALSE;
04383   if(!xdr_fattr4(xdrs, &objp->ne_attrs))
04384     return FALSE;
04385   return TRUE;
04386 }
04387 
04388 bool_t xdr_prev_entry4(XDR * xdrs, prev_entry4 * objp)
04389 {
04390   if(!xdr_notify_entry4(xdrs, &objp->pe_prev_entry))
04391     return FALSE;
04392   if(!xdr_nfs_cookie4(xdrs, &objp->pe_prev_entry_cookie))
04393     return FALSE;
04394   return TRUE;
04395 }
04396 
04397 bool_t xdr_notify_remove4(XDR * xdrs, notify_remove4 * objp)
04398 {
04399   if(!xdr_notify_entry4(xdrs, &objp->nrm_old_entry))
04400     return FALSE;
04401   if(!xdr_nfs_cookie4(xdrs, &objp->nrm_old_entry_cookie))
04402     return FALSE;
04403   return TRUE;
04404 }
04405 
04406 bool_t xdr_notify_add4(XDR * xdrs, notify_add4 * objp)
04407 {
04408   if(!xdr_array
04409      (xdrs, (char **)&objp->nad_old_entry.nad_old_entry_val,
04410       (u_int *) & objp->nad_old_entry.nad_old_entry_len, 1, sizeof(notify_remove4),
04411       (xdrproc_t) xdr_notify_remove4))
04412     return FALSE;
04413   if(!xdr_notify_entry4(xdrs, &objp->nad_new_entry))
04414     return FALSE;
04415   if(!xdr_array
04416      (xdrs, (char **)&objp->nad_new_entry_cookie.nad_new_entry_cookie_val,
04417       (u_int *) & objp->nad_new_entry_cookie.nad_new_entry_cookie_len, 1,
04418       sizeof(nfs_cookie4), (xdrproc_t) xdr_nfs_cookie4))
04419     return FALSE;
04420   if(!xdr_array
04421      (xdrs, (char **)&objp->nad_prev_entry.nad_prev_entry_val,
04422       (u_int *) & objp->nad_prev_entry.nad_prev_entry_len, 1, sizeof(prev_entry4),
04423       (xdrproc_t) xdr_prev_entry4))
04424     return FALSE;
04425   if(!xdr_bool(xdrs, &objp->nad_last_entry))
04426     return FALSE;
04427   return TRUE;
04428 }
04429 
04430 bool_t xdr_notify_attr4(XDR * xdrs, notify_attr4 * objp)
04431 {
04432   if(!xdr_notify_entry4(xdrs, &objp->na_changed_entry))
04433     return FALSE;
04434   return TRUE;
04435 }
04436 
04437 bool_t xdr_notify_rename4(XDR * xdrs, notify_rename4 * objp)
04438 {
04439   if(!xdr_notify_remove4(xdrs, &objp->nrn_old_entry))
04440     return FALSE;
04441   if(!xdr_notify_add4(xdrs, &objp->nrn_new_entry))
04442     return FALSE;
04443   return TRUE;
04444 }
04445 
04446 bool_t xdr_notify_verifier4(XDR * xdrs, notify_verifier4 * objp)
04447 {
04448   if(!xdr_verifier4(xdrs, objp->nv_old_cookieverf))
04449     return FALSE;
04450   if(!xdr_verifier4(xdrs, objp->nv_new_cookieverf))
04451     return FALSE;
04452   return TRUE;
04453 }
04454 
04455 bool_t xdr_notifylist4(XDR * xdrs, notifylist4 * objp)
04456 {
04457   if(!xdr_bytes
04458      (xdrs, (char **)&objp->notifylist4_val, (u_int *) & objp->notifylist4_len, ~0))
04459     return FALSE;
04460   return TRUE;
04461 }
04462 
04463 bool_t xdr_notify4(XDR * xdrs, notify4 * objp)
04464 {
04465   if(!xdr_bitmap4(xdrs, &objp->notify_mask))
04466     return FALSE;
04467   if(!xdr_notifylist4(xdrs, &objp->notify_vals))
04468     return FALSE;
04469   return TRUE;
04470 }
04471 
04472 bool_t xdr_CB_NOTIFY4args(XDR * xdrs, CB_NOTIFY4args * objp)
04473 {
04474   if(!xdr_stateid4(xdrs, &objp->cna_stateid))
04475     return FALSE;
04476   if(!xdr_nfs_fh4(xdrs, &objp->cna_fh))
04477     return FALSE;
04478   if(!xdr_array
04479      (xdrs, (char **)&objp->cna_changes.cna_changes_val,
04480       (u_int *) & objp->cna_changes.cna_changes_len, ~0, sizeof(notify4),
04481       (xdrproc_t) xdr_notify4))
04482     return FALSE;
04483   return TRUE;
04484 }
04485 
04486 bool_t xdr_CB_NOTIFY4res(XDR * xdrs, CB_NOTIFY4res * objp)
04487 {
04488   if(!xdr_nfsstat4(xdrs, &objp->cnr_status))
04489     return FALSE;
04490   return TRUE;
04491 }
04492 
04493 bool_t xdr_CB_PUSH_DELEG4args(XDR * xdrs, CB_PUSH_DELEG4args * objp)
04494 {
04495   if(!xdr_nfs_fh4(xdrs, &objp->cpda_fh))
04496     return FALSE;
04497   if(!xdr_open_delegation4(xdrs, &objp->cpda_delegation))
04498     return FALSE;
04499   return TRUE;
04500 }
04501 
04502 bool_t xdr_CB_PUSH_DELEG4res(XDR * xdrs, CB_PUSH_DELEG4res * objp)
04503 {
04504   if(!xdr_nfsstat4(xdrs, &objp->cpdr_status))
04505     return FALSE;
04506   return TRUE;
04507 }
04508 
04509 bool_t xdr_CB_RECALL_ANY4args(XDR * xdrs, CB_RECALL_ANY4args * objp)
04510 {
04511   if(!xdr_uint32_t(xdrs, &objp->craa_objects_to_keep))
04512     return FALSE;
04513   if(!xdr_bitmap4(xdrs, &objp->craa_type_mask))
04514     return FALSE;
04515   return TRUE;
04516 }
04517 
04518 bool_t xdr_CB_RECALL_ANY4res(XDR * xdrs, CB_RECALL_ANY4res * objp)
04519 {
04520   if(!xdr_nfsstat4(xdrs, &objp->crar_status))
04521     return FALSE;
04522   return TRUE;
04523 }
04524 
04525 bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args(XDR * xdrs, CB_RECALLABLE_OBJ_AVAIL4args * objp)
04526 {
04527   if(!xdr_CB_RECALL_ANY4args(xdrs, objp))
04528     return FALSE;
04529   return TRUE;
04530 }
04531 
04532 bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res(XDR * xdrs, CB_RECALLABLE_OBJ_AVAIL4res * objp)
04533 {
04534   if(!xdr_nfsstat4(xdrs, &objp->croa_status))
04535     return FALSE;
04536   return TRUE;
04537 }
04538 
04539 bool_t xdr_CB_RECALL_SLOT4args(XDR * xdrs, CB_RECALL_SLOT4args * objp)
04540 {
04541   if(!xdr_slotid4(xdrs, &objp->rsa_target_highest_slotid))
04542     return FALSE;
04543   return TRUE;
04544 }
04545 
04546 bool_t xdr_CB_RECALL_SLOT4res(XDR * xdrs, CB_RECALL_SLOT4res * objp)
04547 {
04548   if(!xdr_nfsstat4(xdrs, &objp->rsr_status))
04549     return FALSE;
04550   return TRUE;
04551 }
04552 
04553 bool_t xdr_referring_call4(XDR * xdrs, referring_call4 * objp)
04554 {
04555   if(!xdr_sequenceid4(xdrs, &objp->rc_sequenceid))
04556     return FALSE;
04557   if(!xdr_slotid4(xdrs, &objp->rc_slotid))
04558     return FALSE;
04559   return TRUE;
04560 }
04561 
04562 bool_t xdr_referring_call_list4(XDR * xdrs, referring_call_list4 * objp)
04563 {
04564   if(!xdr_sessionid4(xdrs, objp->rcl_sessionid))
04565     return FALSE;
04566   if(!xdr_array
04567      (xdrs, (char **)&objp->rcl_referring_calls.rcl_referring_calls_val,
04568       (u_int *) & objp->rcl_referring_calls.rcl_referring_calls_len, ~0,
04569       sizeof(referring_call4), (xdrproc_t) xdr_referring_call4))
04570     return FALSE;
04571   return TRUE;
04572 }
04573 
04574 bool_t xdr_CB_SEQUENCE4args(XDR * xdrs, CB_SEQUENCE4args * objp)
04575 {
04576   if(!xdr_sessionid4(xdrs, objp->csa_sessionid))
04577     return FALSE;
04578   if(!xdr_sequenceid4(xdrs, &objp->csa_sequenceid))
04579     return FALSE;
04580   if(!xdr_slotid4(xdrs, &objp->csa_slotid))
04581     return FALSE;
04582   if(!xdr_slotid4(xdrs, &objp->csa_highest_slotid))
04583     return FALSE;
04584   if(!xdr_bool(xdrs, &objp->csa_cachethis))
04585     return FALSE;
04586   if(!xdr_array
04587      (xdrs, (char **)&objp->csa_referring_call_lists.csa_referring_call_lists_val,
04588       (u_int *) & objp->csa_referring_call_lists.csa_referring_call_lists_len, ~0,
04589       sizeof(referring_call_list4), (xdrproc_t) xdr_referring_call_list4))
04590     return FALSE;
04591   return TRUE;
04592 }
04593 
04594 bool_t xdr_CB_SEQUENCE4resok(XDR * xdrs, CB_SEQUENCE4resok * objp)
04595 {
04596   if(!xdr_sessionid4(xdrs, objp->csr_sessionid))
04597     return FALSE;
04598   if(!xdr_sequenceid4(xdrs, &objp->csr_sequenceid))
04599     return FALSE;
04600   if(!xdr_slotid4(xdrs, &objp->csr_slotid))
04601     return FALSE;
04602   if(!xdr_slotid4(xdrs, &objp->csr_highest_slotid))
04603     return FALSE;
04604   if(!xdr_slotid4(xdrs, &objp->csr_target_highest_slotid))
04605     return FALSE;
04606   return TRUE;
04607 }
04608 
04609 bool_t xdr_CB_SEQUENCE4res(XDR * xdrs, CB_SEQUENCE4res * objp)
04610 {
04611   if(!xdr_nfsstat4(xdrs, &objp->csr_status))
04612     return FALSE;
04613   switch (objp->csr_status)
04614     {
04615     case NFS4_OK:
04616       if(!xdr_CB_SEQUENCE4resok(xdrs, &objp->CB_SEQUENCE4res_u.csr_resok4))
04617         return FALSE;
04618       break;
04619     default:
04620       break;
04621     }
04622   return TRUE;
04623 }
04624 
04625 bool_t xdr_CB_WANTS_CANCELLED4args(XDR * xdrs, CB_WANTS_CANCELLED4args * objp)
04626 {
04627   if(!xdr_bool(xdrs, &objp->cwca_contended_wants_cancelled))
04628     return FALSE;
04629   if(!xdr_bool(xdrs, &objp->cwca_resourced_wants_cancelled))
04630     return FALSE;
04631   return TRUE;
04632 }
04633 
04634 bool_t xdr_CB_WANTS_CANCELLED4res(XDR * xdrs, CB_WANTS_CANCELLED4res * objp)
04635 {
04636   if(!xdr_nfsstat4(xdrs, &objp->cwcr_status))
04637     return FALSE;
04638   return TRUE;
04639 }
04640 
04641 bool_t xdr_CB_NOTIFY_LOCK4args(XDR * xdrs, CB_NOTIFY_LOCK4args * objp)
04642 {
04643   if(!xdr_nfs_fh4(xdrs, &objp->cnla_fh))
04644     return FALSE;
04645   if(!xdr_lock_owner4(xdrs, &objp->cnla_lock_owner))
04646     return FALSE;
04647   return TRUE;
04648 }
04649 
04650 bool_t xdr_CB_NOTIFY_LOCK4res(XDR * xdrs, CB_NOTIFY_LOCK4res * objp)
04651 {
04652   if(!xdr_nfsstat4(xdrs, &objp->cnlr_status))
04653     return FALSE;
04654   return TRUE;
04655 }
04656 
04657 bool_t xdr_notify_deviceid_type4(XDR * xdrs, notify_deviceid_type4 * objp)
04658 {
04659   if(!xdr_enum(xdrs, (enum_t *) objp))
04660     return FALSE;
04661   return TRUE;
04662 }
04663 
04664 bool_t xdr_notify_deviceid_delete4(XDR * xdrs, notify_deviceid_delete4 * objp)
04665 {
04666   if(!xdr_layouttype4(xdrs, &objp->ndd_layouttype))
04667     return FALSE;
04668   if(!xdr_deviceid4(xdrs, objp->ndd_deviceid))
04669     return FALSE;
04670   return TRUE;
04671 }
04672 
04673 bool_t xdr_notify_deviceid_change4(XDR * xdrs, notify_deviceid_change4 * objp)
04674 {
04675   if(!xdr_layouttype4(xdrs, &objp->ndc_layouttype))
04676     return FALSE;
04677   if(!xdr_deviceid4(xdrs, objp->ndc_deviceid))
04678     return FALSE;
04679   if(!xdr_bool(xdrs, &objp->ndc_immediate))
04680     return FALSE;
04681   return TRUE;
04682 }
04683 
04684 bool_t xdr_CB_NOTIFY_DEVICEID4args(XDR * xdrs, CB_NOTIFY_DEVICEID4args * objp)
04685 {
04686   if(!xdr_array
04687      (xdrs, (char **)&objp->cnda_changes.cnda_changes_val,
04688       (u_int *) & objp->cnda_changes.cnda_changes_len, ~0, sizeof(notify4),
04689       (xdrproc_t) xdr_notify4))
04690     return FALSE;
04691   return TRUE;
04692 }
04693 
04694 bool_t xdr_CB_NOTIFY_DEVICEID4res(XDR * xdrs, CB_NOTIFY_DEVICEID4res * objp)
04695 {
04696   if(!xdr_nfsstat4(xdrs, &objp->cndr_status))
04697     return FALSE;
04698   return TRUE;
04699 }
04700 
04701 /* Callback operations new to NFSv4.1 */
04702 
04703 bool_t xdr_nfs_cb_opnum4(XDR * xdrs, nfs_cb_opnum4 * objp)
04704 {
04705   if(!xdr_enum(xdrs, (enum_t *) objp))
04706     return FALSE;
04707   return TRUE;
04708 }
04709 
04710 bool_t xdr_nfs_cb_argop4(XDR * xdrs, nfs_cb_argop4 * objp)
04711 {
04712   if(!xdr_u_int(xdrs, &objp->argop))
04713     return FALSE;
04714   switch (objp->argop)
04715     {
04716     case NFS4_OP_CB_GETATTR:
04717       if(!xdr_CB_GETATTR4args(xdrs, &objp->nfs_cb_argop4_u.opcbgetattr))
04718         return FALSE;
04719       break;
04720     case NFS4_OP_CB_RECALL:
04721       if(!xdr_CB_RECALL4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall))
04722         return FALSE;
04723       break;
04724     case NFS4_OP_CB_LAYOUTRECALL:
04725       if(!xdr_CB_LAYOUTRECALL4args(xdrs, &objp->nfs_cb_argop4_u.opcblayoutrecall))
04726         return FALSE;
04727       break;
04728     case NFS4_OP_CB_NOTIFY:
04729       if(!xdr_CB_NOTIFY4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify))
04730         return FALSE;
04731       break;
04732     case NFS4_OP_CB_PUSH_DELEG:
04733       if(!xdr_CB_PUSH_DELEG4args(xdrs, &objp->nfs_cb_argop4_u.opcbpush_deleg))
04734         return FALSE;
04735       break;
04736     case NFS4_OP_CB_RECALL_ANY:
04737       if(!xdr_CB_RECALL_ANY4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall_any))
04738         return FALSE;
04739       break;
04740     case NFS4_OP_CB_RECALLABLE_OBJ_AVAIL:
04741       if(!xdr_CB_RECALLABLE_OBJ_AVAIL4args
04742          (xdrs, &objp->nfs_cb_argop4_u.opcbrecallable_obj_avail))
04743         return FALSE;
04744       break;
04745     case NFS4_OP_CB_RECALL_SLOT:
04746       if(!xdr_CB_RECALL_SLOT4args(xdrs, &objp->nfs_cb_argop4_u.opcbrecall_slot))
04747         return FALSE;
04748       break;
04749     case NFS4_OP_CB_SEQUENCE:
04750       if(!xdr_CB_SEQUENCE4args(xdrs, &objp->nfs_cb_argop4_u.opcbsequence))
04751         return FALSE;
04752       break;
04753     case NFS4_OP_CB_WANTS_CANCELLED:
04754       if(!xdr_CB_WANTS_CANCELLED4args(xdrs, &objp->nfs_cb_argop4_u.opcbwants_cancelled))
04755         return FALSE;
04756       break;
04757     case NFS4_OP_CB_NOTIFY_LOCK:
04758       if(!xdr_CB_NOTIFY_LOCK4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify_lock))
04759         return FALSE;
04760       break;
04761     case NFS4_OP_CB_NOTIFY_DEVICEID:
04762       if(!xdr_CB_NOTIFY_DEVICEID4args(xdrs, &objp->nfs_cb_argop4_u.opcbnotify_deviceid))
04763         return FALSE;
04764       break;
04765     case NFS4_OP_CB_ILLEGAL:
04766       break;
04767     default:
04768       return FALSE;
04769     }
04770   return TRUE;
04771 }
04772 
04773 bool_t xdr_nfs_cb_resop4(XDR * xdrs, nfs_cb_resop4 * objp)
04774 {
04775   if(!xdr_u_int(xdrs, &objp->resop))
04776     return FALSE;
04777   switch (objp->resop)
04778     {
04779     case NFS4_OP_CB_GETATTR:
04780       if(!xdr_CB_GETATTR4res(xdrs, &objp->nfs_cb_resop4_u.opcbgetattr))
04781         return FALSE;
04782       break;
04783     case NFS4_OP_CB_RECALL:
04784       if(!xdr_CB_RECALL4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall))
04785         return FALSE;
04786       break;
04787     case NFS4_OP_CB_LAYOUTRECALL:
04788       if(!xdr_CB_LAYOUTRECALL4res(xdrs, &objp->nfs_cb_resop4_u.opcblayoutrecall))
04789         return FALSE;
04790       break;
04791     case NFS4_OP_CB_NOTIFY:
04792       if(!xdr_CB_NOTIFY4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify))
04793         return FALSE;
04794       break;
04795     case NFS4_OP_CB_PUSH_DELEG:
04796       if(!xdr_CB_PUSH_DELEG4res(xdrs, &objp->nfs_cb_resop4_u.opcbpush_deleg))
04797         return FALSE;
04798       break;
04799     case NFS4_OP_CB_RECALL_ANY:
04800       if(!xdr_CB_RECALL_ANY4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall_any))
04801         return FALSE;
04802       break;
04803     case NFS4_OP_CB_RECALLABLE_OBJ_AVAIL:
04804       if(!xdr_CB_RECALLABLE_OBJ_AVAIL4res
04805          (xdrs, &objp->nfs_cb_resop4_u.opcbrecallable_obj_avail))
04806         return FALSE;
04807       break;
04808     case NFS4_OP_CB_RECALL_SLOT:
04809       if(!xdr_CB_RECALL_SLOT4res(xdrs, &objp->nfs_cb_resop4_u.opcbrecall_slot))
04810         return FALSE;
04811       break;
04812     case NFS4_OP_CB_SEQUENCE:
04813       if(!xdr_CB_SEQUENCE4res(xdrs, &objp->nfs_cb_resop4_u.opcbsequence))
04814         return FALSE;
04815       break;
04816     case NFS4_OP_CB_WANTS_CANCELLED:
04817       if(!xdr_CB_WANTS_CANCELLED4res(xdrs, &objp->nfs_cb_resop4_u.opcbwants_cancelled))
04818         return FALSE;
04819       break;
04820     case NFS4_OP_CB_NOTIFY_LOCK:
04821       if(!xdr_CB_NOTIFY_LOCK4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify_lock))
04822         return FALSE;
04823       break;
04824     case NFS4_OP_CB_NOTIFY_DEVICEID:
04825       if(!xdr_CB_NOTIFY_DEVICEID4res(xdrs, &objp->nfs_cb_resop4_u.opcbnotify_deviceid))
04826         return FALSE;
04827       break;
04828     case NFS4_OP_CB_ILLEGAL:
04829       if(!xdr_CB_ILLEGAL4res(xdrs, &objp->nfs_cb_resop4_u.opcbillegal))
04830         return FALSE;
04831       break;
04832     default:
04833       return FALSE;
04834     }
04835   return TRUE;
04836 }
04837 
04838 bool_t xdr_CB_COMPOUND4args(XDR * xdrs, CB_COMPOUND4args * objp)
04839 {
04840   if(!xdr_utf8str_cs(xdrs, &objp->tag))
04841     return FALSE;
04842   if(!xdr_uint32_t(xdrs, &objp->minorversion))
04843     return FALSE;
04844   if(!xdr_uint32_t(xdrs, &objp->callback_ident))
04845     return FALSE;
04846   if(!xdr_array
04847      (xdrs, (char **)&objp->argarray.argarray_val,
04848       (u_int *) & objp->argarray.argarray_len, ~0, sizeof(nfs_cb_argop4),
04849       (xdrproc_t) xdr_nfs_cb_argop4))
04850     return FALSE;
04851   return TRUE;
04852 }
04853 
04854 bool_t xdr_CB_COMPOUND4res(XDR * xdrs, CB_COMPOUND4res * objp)
04855 {
04856   if(!xdr_nfsstat4(xdrs, &objp->status))
04857     return FALSE;
04858   if(!xdr_utf8str_cs(xdrs, &objp->tag))
04859     return FALSE;
04860   if(!xdr_array
04861      (xdrs, (char **)&objp->resarray.resarray_val,
04862       (u_int *) & objp->resarray.resarray_len, ~0, sizeof(nfs_cb_resop4),
04863       (xdrproc_t) xdr_nfs_cb_resop4))
04864     return FALSE;
04865   return TRUE;
04866 }