#include <sys/statvfs.h>
#include <sys/sysmacros.h>
#include <sys/sdt.h>
#include <nfs/nfs4.h>
#include <nfs/nfs4_attr.h>
#ifndef _KERNEL
#include <stdlib.h>
#endif
bool_t
xdr_verifier4(XDR *xdrs, verifier4 *objp)
{
if (!xdr_u_longlong_t(xdrs, (u_longlong_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_sequenceid4(XDR *xdrs, sequenceid4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_sessionid4(XDR *xdrs, sessionid4 objp)
{
if (!xdr_opaque(xdrs, objp, NFS4_SESSIONID_SIZE))
return (FALSE);
return (TRUE);
}
bool_t
xdr_slotid4(XDR *xdrs, slotid4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_change_policy4(XDR *xdrs, change_policy4 *objp)
{
if (!xdr_uint64_t(xdrs, &objp->cp_major))
return (FALSE);
if (!xdr_uint64_t(xdrs, &objp->cp_minor))
return (FALSE);
return (TRUE);
}
bool_t
xdr_aclflag4(XDR *xdrs, aclflag4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfsacl41(XDR *xdrs, nfsacl41 *objp)
{
if (!xdr_aclflag4(xdrs, &objp->na41_flag))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->na41_aces.na41_aces_val,
(uint_t *)&objp->na41_aces.na41_aces_len, ~0, sizeof (nfsace4),
(xdrproc_t)xdr_nfsace4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_mode_masked4(XDR *xdrs, mode_masked4 *objp)
{
if (!xdr_mode4(xdrs, &objp->mm_value_to_set))
return (FALSE);
if (!xdr_mode4(xdrs, &objp->mm_mask_bits))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_impl_id4(XDR *xdrs, nfs_impl_id4 *objp)
{
if (!xdr_utf8str_cis(xdrs, &objp->nii_domain))
return (FALSE);
if (!xdr_utf8str_cs(xdrs, &objp->nii_name))
return (FALSE);
if (!xdr_nfstime4(xdrs, &objp->nii_date))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layouttype4(XDR *xdrs, layouttype4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layout_content4(XDR *xdrs, layout_content4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->loc_type))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->loc_body.loc_body_val,
(uint_t *)&objp->loc_body.loc_body_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutiomode4(XDR *xdrs, layoutiomode4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layout4(XDR *xdrs, layout4 *objp)
{
if (!xdr_offset4(xdrs, &objp->lo_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->lo_length))
return (FALSE);
if (!xdr_layoutiomode4(xdrs, &objp->lo_iomode))
return (FALSE);
if (!xdr_layout_content4(xdrs, &objp->lo_content))
return (FALSE);
return (TRUE);
}
bool_t
xdr_deviceid4(XDR *xdrs, deviceid4 objp)
{
if (!xdr_opaque(xdrs, objp, NFS4_DEVICEID4_SIZE))
return (FALSE);
return (TRUE);
}
bool_t
xdr_device_addr4(XDR *xdrs, device_addr4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->da_layout_type))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->da_addr_body.da_addr_body_val,
(uint_t *)&objp->da_addr_body.da_addr_body_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutupdate4(XDR *xdrs, layoutupdate4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->lou_type))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->lou_body.lou_body_val,
(uint_t *)&objp->lou_body.lou_body_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutreturn_type4(XDR *xdrs, layoutreturn_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutreturn_file4(XDR *xdrs, layoutreturn_file4 *objp)
{
if (!xdr_offset4(xdrs, &objp->lrf_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->lrf_length))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->lrf_stateid))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->lrf_body.lrf_body_val,
(uint_t *)&objp->lrf_body.lrf_body_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutreturn4(XDR *xdrs, layoutreturn4 *objp)
{
if (!xdr_layoutreturn_type4(xdrs, &objp->lr_returntype))
return (FALSE);
switch (objp->lr_returntype) {
case LAYOUTRETURN4_FILE:
if (!xdr_layoutreturn_file4(xdrs,
&objp->layoutreturn4_u.lr_layout))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_fs4_status_type(XDR *xdrs, fs4_status_type *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fs4_status(XDR *xdrs, fs4_status *objp)
{
if (!xdr_bool(xdrs, &objp->fss_absent))
return (FALSE);
if (!xdr_fs4_status_type(xdrs, &objp->fss_type))
return (FALSE);
if (!xdr_utf8str_cs(xdrs, &objp->fss_source))
return (FALSE);
if (!xdr_utf8str_cs(xdrs, &objp->fss_current))
return (FALSE);
if (!xdr_int32_t(xdrs, &objp->fss_age))
return (FALSE);
if (!xdr_nfstime4(xdrs, &objp->fss_version))
return (FALSE);
return (TRUE);
}
bool_t
xdr_threshold4_read_size(XDR *xdrs, threshold4_read_size *objp)
{
if (!xdr_length4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_threshold4_write_size(XDR *xdrs, threshold4_write_size *objp)
{
if (!xdr_length4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_threshold4_read_iosize(XDR *xdrs, threshold4_read_iosize *objp)
{
if (!xdr_length4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_threshold4_write_iosize(XDR *xdrs, threshold4_write_iosize *objp)
{
if (!xdr_length4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_threshold_item4(XDR *xdrs, threshold_item4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->thi_layout_type))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->thi_hintset))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->thi_hintlist.thi_hintlist_val,
(uint_t *)&objp->thi_hintlist.thi_hintlist_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_mdsthreshold4(XDR *xdrs, mdsthreshold4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->mth_hints.mth_hints_val,
(uint_t *)&objp->mth_hints.mth_hints_len, ~0,
sizeof (threshold_item4), (xdrproc_t)xdr_threshold_item4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_retention_get4(XDR *xdrs, retention_get4 *objp)
{
if (!xdr_uint64_t(xdrs, &objp->rg_duration))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->rg_begin_time.rg_begin_time_val,
(uint_t *)&objp->rg_begin_time.rg_begin_time_len, 1,
sizeof (nfstime4), (xdrproc_t)xdr_nfstime4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_retention_set4(XDR *xdrs, retention_set4 *objp)
{
if (!xdr_bool(xdrs, &objp->rs_enable))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->rs_duration.rs_duration_val,
(uint_t *)&objp->rs_duration.rs_duration_len, 1, sizeof (uint64_t),
(xdrproc_t)xdr_uint64_t))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fs_charset_cap4(XDR *xdrs, fs_charset_cap4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_netloc_type4(XDR *xdrs, netloc_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_netloc4(XDR *xdrs, netloc4 *objp)
{
if (!xdr_netloc_type4(xdrs, &objp->nl_type))
return (FALSE);
switch (objp->nl_type) {
case NL4_NAME:
if (!xdr_utf8str_cis(xdrs, &objp->netloc4_u.nl_name))
return (FALSE);
break;
case NL4_URL:
if (!xdr_utf8str_cis(xdrs, &objp->netloc4_u.nl_url))
return (FALSE);
break;
case NL4_NETADDR:
if (!xdr_netaddr4(xdrs, &objp->netloc4_u.nl_addr))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_change_attr_type4(XDR *xdrs, change_attr_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_app_data_block4(XDR *xdrs, app_data_block4 *objp)
{
if (!xdr_offset4(xdrs, &objp->adb_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->adb_block_size))
return (FALSE);
if (!xdr_length4(xdrs, &objp->adb_block_count))
return (FALSE);
if (!xdr_length4(xdrs, &objp->adb_reloff_blocknum))
return (FALSE);
if (!xdr_count4(xdrs, &objp->adb_block_num))
return (FALSE);
if (!xdr_length4(xdrs, &objp->adb_reloff_pattern))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->adb_pattern.adb_pattern_val,
(uint_t *) &objp->adb_pattern.adb_pattern_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_data4(XDR *xdrs, data4 *objp)
{
if (!xdr_offset4(xdrs, &objp->d_offset))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->d_data.d_data_val,
(uint_t *) &objp->d_data.d_data_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_data_info4(XDR *xdrs, data_info4 *objp)
{
if (!xdr_offset4(xdrs, &objp->di_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->di_length))
return (FALSE);
return (TRUE);
}
bool_t
xdr_data_content4(XDR *xdrs, data_content4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_stable_how4(XDR *xdrs, stable_how4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_write_response4(XDR *xdrs, write_response4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->wr_callback_id.wr_callback_id_val,
(uint_t *) &objp->wr_callback_id.wr_callback_id_len, 1,
sizeof (stateid4), (xdrproc_t)xdr_stateid4))
return (FALSE);
if (!xdr_length4(xdrs, &objp->wr_count))
return (FALSE);
if (!xdr_stable_how4(xdrs, &objp->wr_committed))
return (FALSE);
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->wr_writeverf))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_mode_set_masked(XDR *xdrs, fattr4_mode_set_masked *objp)
{
if (!xdr_mode_masked4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_dir_notif_delay(XDR *xdrs, fattr4_dir_notif_delay *objp)
{
if (!xdr_nfstime4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_dirent_notif_delay(XDR *xdrs, fattr4_dirent_notif_delay *objp)
{
if (!xdr_nfstime4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_fs_layout_types(XDR *xdrs, fattr4_fs_layout_types *objp)
{
if (!xdr_array(xdrs, (char **)&objp->fattr4_fs_layout_types_val,
(uint_t *)&objp->fattr4_fs_layout_types_len, ~0,
sizeof (layouttype4), (xdrproc_t)xdr_layouttype4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_fs_status(XDR *xdrs, fattr4_fs_status *objp)
{
if (!xdr_fs4_status(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_fs_charset_cap4(XDR *xdrs, fattr4_fs_charset_cap *objp)
{
if (!xdr_fs_charset_cap4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_retention_get(XDR *xdrs, fattr4_retention_get *objp)
{
if (!xdr_retention_get4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_retention_set(XDR *xdrs, fattr4_retention_set *objp)
{
if (!xdr_retention_set4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_retentevt_get(XDR *xdrs, fattr4_retentevt_get *objp)
{
if (!xdr_retention_get4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_retentevt_set(XDR *xdrs, fattr4_retentevt_set *objp)
{
if (!xdr_retention_set4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_retention_hold(XDR *xdrs, fattr4_retention_hold *objp)
{
if (!xdr_uint64_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_dacl(XDR *xdrs, fattr4_dacl *objp)
{
if (!xdr_nfsacl41(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_sacl(XDR *xdrs, fattr4_sacl *objp)
{
if (!xdr_nfsacl41(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_client_owner4(XDR *xdrs, client_owner4 *objp)
{
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->co_verifier))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->co_ownerid.co_ownerid_val,
(uint_t *)&objp->co_ownerid.co_ownerid_len, NFS4_OPAQUE_LIMIT))
return (FALSE);
return (TRUE);
}
bool_t
xdr_server_owner4(XDR *xdrs, server_owner4 *objp)
{
if (!xdr_uint64_t(xdrs, &objp->so_minor_id))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->so_major_id.so_major_id_val,
(uint_t *)&objp->so_major_id.so_major_id_len, NFS4_OPAQUE_LIMIT))
return (FALSE);
return (TRUE);
}
bool_t
xdr_state_owner4(XDR *xdrs, state_owner4 *objp)
{
if (!xdr_clientid4(xdrs, &objp->clientid))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->owner.owner_val,
(uint_t *)&objp->owner.owner_len, NFS4_OPAQUE_LIMIT))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_subkey4(XDR *xdrs, ssv_subkey4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_mic_plain_tkn4(XDR *xdrs, ssv_mic_plain_tkn4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->smpt_ssv_seq))
return (FALSE);
if (!xdr_bytes(xdrs,
(char **)&objp->smpt_orig_plain.smpt_orig_plain_val,
(uint_t *)&objp->smpt_orig_plain.smpt_orig_plain_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_mic_tkn4(XDR *xdrs, ssv_mic_tkn4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->smt_ssv_seq))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->smt_hmac.smt_hmac_val,
(uint_t *)&objp->smt_hmac.smt_hmac_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_seal_plain_tkn4(XDR *xdrs, ssv_seal_plain_tkn4 *objp)
{
if (!xdr_bytes(xdrs,
(char **)&objp->sspt_confounder.sspt_confounder_val,
(uint_t *)&objp->sspt_confounder.sspt_confounder_len, ~0))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->sspt_ssv_seq))
return (FALSE);
if (!xdr_bytes(xdrs,
(char **)&objp->sspt_orig_plain.sspt_orig_plain_val,
(uint_t *)&objp->sspt_orig_plain.sspt_orig_plain_len, ~0))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->sspt_pad.sspt_pad_val,
(uint_t *)&objp->sspt_pad.sspt_pad_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_seal_cipher_tkn4(XDR *xdrs, ssv_seal_cipher_tkn4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->ssct_ssv_seq))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->ssct_iv.ssct_iv_val,
(uint_t *)&objp->ssct_iv.ssct_iv_len, ~0))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->ssct_encr_data.ssct_encr_data_val,
(uint_t *)&objp->ssct_encr_data.ssct_encr_data_len, ~0))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->ssct_hmac.ssct_hmac_val,
(uint_t *)&objp->ssct_hmac.ssct_hmac_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fs_locations_server4(XDR *xdrs, fs_locations_server4 *objp)
{
if (!xdr_int32_t(xdrs, &objp->fls_currency))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->fls_info.fls_info_val,
(uint_t *)&objp->fls_info.fls_info_len, ~0))
return (FALSE);
if (!xdr_utf8str_cis(xdrs, &objp->fls_server))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fs_locations_item4(XDR *xdrs, fs_locations_item4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->fli_entries.fli_entries_val,
(uint_t *)&objp->fli_entries.fli_entries_len, ~0,
sizeof (fs_locations_server4), (xdrproc_t)xdr_fs_locations_server4))
return (FALSE);
if (!xdr_pathname4(xdrs, &objp->fli_rootpath))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fs_locations_info4(XDR *xdrs, fs_locations_info4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->fli_flags))
return (FALSE);
if (!xdr_int32_t(xdrs, &objp->fli_valid_for))
return (FALSE);
if (!xdr_pathname4(xdrs, &objp->fli_fs_root))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->fli_items.fli_items_val,
(uint_t *)&objp->fli_items.fli_items_len, ~0,
sizeof (fs_locations_item4), (xdrproc_t)xdr_fs_locations_item4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fattr4_fs_locations_info(XDR *xdrs, fattr4_fs_locations_info *objp)
{
if (!xdr_fs_locations_info4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfl_util4(XDR *xdrs, nfl_util4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_filelayout_hint_care4(XDR *xdrs, filelayout_hint_care4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_multipath_list4(XDR *xdrs, multipath_list4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->multipath_list4_val,
(uint_t *)&objp->multipath_list4_len, ~0,
sizeof (netaddr4), (xdrproc_t)xdr_netaddr4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfsv4_1_file_layout_ds_addr4(XDR *xdrs, nfsv4_1_file_layout_ds_addr4 *objp)
{
if (!xdr_array(xdrs,
(char **)&objp->nflda_stripe_indices.nflda_stripe_indices_val,
(uint_t *)&objp->nflda_stripe_indices.nflda_stripe_indices_len, ~0,
sizeof (uint32_t), (xdrproc_t)xdr_uint32_t))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->nflda_multipath_ds_list.nflda_multipath_ds_list_val,
(uint_t *)&objp->nflda_multipath_ds_list.
nflda_multipath_ds_list_len, ~0, sizeof (multipath_list4),
(xdrproc_t)xdr_multipath_list4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfsv4_1_file_layout4(XDR *xdrs, nfsv4_1_file_layout4 *objp)
{
if (!xdr_deviceid4(xdrs, objp->nfl_deviceid))
return (FALSE);
if (!xdr_nfl_util4(xdrs, &objp->nfl_util))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->nfl_first_stripe_index))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->nfl_pattern_offset))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->nfl_fh_list.nfl_fh_list_val,
(uint_t *)&objp->nfl_fh_list.nfl_fh_list_len, ~0,
sizeof (nfs_fh4), (xdrproc_t)xdr_nfs_fh4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_creatverfattr(XDR *xdrs, creatverfattr *objp)
{
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->cva_verf))
return (FALSE);
if (!xdr_fattr4(xdrs, &objp->cva_attrs))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_claim_delegate_cur4(XDR *xdrs, open_claim_delegate_cur4 *objp)
{
if (!xdr_stateid4(xdrs, &objp->delegate_stateid))
return (FALSE);
if (!xdr_component4(xdrs, &objp->file))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_claim4(XDR *xdrs, open_claim4 *objp)
{
if (!xdr_open_claim_type4(xdrs, &objp->claim))
return (FALSE);
switch (objp->claim) {
case CLAIM_NULL:
if (!xdr_component4(xdrs, &objp->open_claim4_u.file))
return (FALSE);
break;
case CLAIM_PREVIOUS:
if (!xdr_open_delegation_type4(xdrs,
&objp->open_claim4_u.delegate_type))
return (FALSE);
break;
case CLAIM_DELEGATE_CUR:
if (!xdr_open_claim_delegate_cur4(xdrs,
&objp->open_claim4_u.delegate_cur_info))
return (FALSE);
break;
case CLAIM_DELEGATE_PREV:
if (!xdr_component4(xdrs,
&objp->open_claim4_u.file_delegate_prev))
return (FALSE);
break;
case CLAIM_FH:
break;
case CLAIM_DELEG_PREV_FH:
break;
case CLAIM_DELEG_CUR_FH:
if (!xdr_stateid4(xdrs,
&objp->open_claim4_u.oc_delegate_stateid))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_why_no_delegation4(XDR *xdrs, why_no_delegation4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_none_delegation4(XDR *xdrs, open_none_delegation4 *objp)
{
if (!xdr_why_no_delegation4(xdrs, &objp->ond_why))
return (FALSE);
switch (objp->ond_why) {
case WND4_CONTENTION:
if (!xdr_bool(xdrs,
&objp->open_none_delegation4_u.ond_server_will_push_deleg))
return (FALSE);
break;
case WND4_RESOURCE:
if (!xdr_bool(xdrs, &objp->open_none_delegation4_u.
ond_server_will_signal_avail))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_open_delegation4(XDR *xdrs, open_delegation4 *objp)
{
if (!xdr_open_delegation_type4(xdrs, &objp->delegation_type))
return (FALSE);
switch (objp->delegation_type) {
case OPEN_DELEGATE_NONE:
break;
case OPEN_DELEGATE_READ:
if (!xdr_open_read_delegation4(xdrs,
&objp->open_delegation4_u.read))
return (FALSE);
break;
case OPEN_DELEGATE_WRITE:
if (!xdr_open_write_delegation4(xdrs,
&objp->open_delegation4_u.write))
return (FALSE);
break;
case OPEN_DELEGATE_NONE_EXT:
if (!xdr_open_none_delegation4(xdrs,
&objp->open_delegation4_u.od_whynone))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_gsshandle4_t(XDR *xdrs, gsshandle4_t *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->gsshandle4_t_val,
(uint_t *)&objp->gsshandle4_t_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_gss_cb_handles4(XDR *xdrs, gss_cb_handles4 *objp)
{
if (!xdr_rpc_gss_svc_t(xdrs, &objp->gcbp_service))
return (FALSE);
if (!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_server))
return (FALSE);
if (!xdr_gsshandle4_t(xdrs, &objp->gcbp_handle_from_client))
return (FALSE);
return (TRUE);
}
bool_t
xdr_callback_sec_parms4(XDR *xdrs, callback_sec_parms4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->cb_secflavor))
return (FALSE);
switch (objp->cb_secflavor) {
case AUTH_NONE:
break;
case AUTH_SYS:
if (!xdr_authsys_parms(xdrs,
&objp->callback_sec_parms4_u.cbsp_sys_cred))
return (FALSE);
break;
case RPCSEC_GSS:
if (!xdr_gss_cb_handles4(xdrs,
&objp->callback_sec_parms4_u.cbsp_gss_handles))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_BACKCHANNEL_CTL4args(XDR *xdrs, BACKCHANNEL_CTL4args *objp)
{
if (!xdr_uint32_t(xdrs, &objp->bca_cb_program))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->bca_sec_parms.bca_sec_parms_val,
(uint_t *)&objp->bca_sec_parms.bca_sec_parms_len, ~0,
sizeof (callback_sec_parms4), (xdrproc_t)xdr_callback_sec_parms4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_BACKCHANNEL_CTL4res(XDR *xdrs, BACKCHANNEL_CTL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->bcr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_channel_dir_from_client4(XDR *xdrs, channel_dir_from_client4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_BIND_CONN_TO_SESSION4args(XDR *xdrs, BIND_CONN_TO_SESSION4args *objp)
{
if (!xdr_sessionid4(xdrs, objp->bctsa_sessid))
return (FALSE);
if (!xdr_channel_dir_from_client4(xdrs, &objp->bctsa_dir))
return (FALSE);
if (!xdr_bool(xdrs, &objp->bctsa_use_conn_in_rdma_mode))
return (FALSE);
return (TRUE);
}
bool_t
xdr_channel_dir_from_server4(XDR *xdrs, channel_dir_from_server4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_BIND_CONN_TO_SESSION4resok(XDR *xdrs, BIND_CONN_TO_SESSION4resok *objp)
{
if (!xdr_sessionid4(xdrs, objp->bctsr_sessid))
return (FALSE);
if (!xdr_channel_dir_from_server4(xdrs, &objp->bctsr_dir))
return (FALSE);
if (!xdr_bool(xdrs, &objp->bctsr_use_conn_in_rdma_mode))
return (FALSE);
return (TRUE);
}
bool_t
xdr_BIND_CONN_TO_SESSION4res(XDR *xdrs, BIND_CONN_TO_SESSION4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->bctsr_status))
return (FALSE);
switch (objp->bctsr_status) {
case NFS4_OK:
if (!xdr_BIND_CONN_TO_SESSION4resok(xdrs,
&objp->BIND_CONN_TO_SESSION4res_u.bctsr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_state_protect_ops4(XDR *xdrs, state_protect_ops4 *objp)
{
if (!xdr_bitmap4(xdrs, &objp->spo_must_enforce))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->spo_must_allow))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_sp_parms4(XDR *xdrs, ssv_sp_parms4 *objp)
{
if (!xdr_state_protect_ops4(xdrs, &objp->ssp_ops))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->ssp_hash_algs.ssp_hash_algs_val,
(uint_t *)&objp->ssp_hash_algs.ssp_hash_algs_len, ~0,
sizeof (sec_oid4), (xdrproc_t)xdr_sec_oid4))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->ssp_encr_algs.ssp_encr_algs_val,
(uint_t *)&objp->ssp_encr_algs.ssp_encr_algs_len, ~0,
sizeof (sec_oid4), (xdrproc_t)xdr_sec_oid4))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->ssp_window))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->ssp_num_gss_handles))
return (FALSE);
return (TRUE);
}
bool_t
xdr_state_protect_how4(XDR *xdrs, state_protect_how4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_state_protect4_a(XDR *xdrs, state_protect4_a *objp)
{
if (!xdr_state_protect_how4(xdrs, &objp->spa_how))
return (FALSE);
switch (objp->spa_how) {
case SP4_NONE:
break;
case SP4_MACH_CRED:
if (!xdr_state_protect_ops4(xdrs,
&objp->state_protect4_a_u.spa_mach_ops))
return (FALSE);
break;
case SP4_SSV:
if (!xdr_ssv_sp_parms4(xdrs,
&objp->state_protect4_a_u.spa_ssv_parms))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_EXCHANGE_ID4args(XDR *xdrs, EXCHANGE_ID4args *objp)
{
if (!xdr_client_owner4(xdrs, &objp->eia_clientowner))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->eia_flags))
return (FALSE);
if (!xdr_state_protect4_a(xdrs, &objp->eia_state_protect))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->eia_client_impl_id.eia_client_impl_id_val,
(uint_t *)&objp->eia_client_impl_id.eia_client_impl_id_len, 1,
sizeof (nfs_impl_id4), (xdrproc_t)xdr_nfs_impl_id4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssv_prot_info4(XDR *xdrs, ssv_prot_info4 *objp)
{
if (!xdr_state_protect_ops4(xdrs, &objp->spi_ops))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->spi_hash_alg))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->spi_encr_alg))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->spi_ssv_len))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->spi_window))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->spi_handles.spi_handles_val,
(uint_t *)&objp->spi_handles.spi_handles_len, ~0,
sizeof (gsshandle4_t), (xdrproc_t)xdr_gsshandle4_t))
return (FALSE);
return (TRUE);
}
bool_t
xdr_state_protect4_r(XDR *xdrs, state_protect4_r *objp)
{
if (!xdr_state_protect_how4(xdrs, &objp->spr_how))
return (FALSE);
switch (objp->spr_how) {
case SP4_NONE:
break;
case SP4_MACH_CRED:
if (!xdr_state_protect_ops4(xdrs,
&objp->state_protect4_r_u.spr_mach_ops))
return (FALSE);
break;
case SP4_SSV:
if (!xdr_ssv_prot_info4(xdrs,
&objp->state_protect4_r_u.spr_ssv_info))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_EXCHANGE_ID4resok(XDR *xdrs, EXCHANGE_ID4resok *objp)
{
if (!xdr_clientid4(xdrs, &objp->eir_clientid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->eir_sequenceid))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->eir_flags))
return (FALSE);
if (!xdr_state_protect4_r(xdrs, &objp->eir_state_protect))
return (FALSE);
if (!xdr_server_owner4(xdrs, &objp->eir_server_owner))
return (FALSE);
if (!xdr_bytes(xdrs,
(char **)&objp->eir_server_scope.eir_server_scope_val,
(uint_t *)&objp->eir_server_scope.eir_server_scope_len,
NFS4_OPAQUE_LIMIT))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->eir_server_impl_id.eir_server_impl_id_val,
(uint_t *)&objp->eir_server_impl_id.eir_server_impl_id_len, 1,
sizeof (nfs_impl_id4), (xdrproc_t)xdr_nfs_impl_id4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_EXCHANGE_ID4res(XDR *xdrs, EXCHANGE_ID4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->eir_status))
return (FALSE);
switch (objp->eir_status) {
case NFS4_OK:
if (!xdr_EXCHANGE_ID4resok(xdrs,
&objp->EXCHANGE_ID4res_u.eir_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_channel_attrs4(XDR *xdrs, channel_attrs4 *objp)
{
if (!xdr_count4(xdrs, &objp->ca_headerpadsize))
return (FALSE);
if (!xdr_count4(xdrs, &objp->ca_maxrequestsize))
return (FALSE);
if (!xdr_count4(xdrs, &objp->ca_maxresponsesize))
return (FALSE);
if (!xdr_count4(xdrs, &objp->ca_maxresponsesize_cached))
return (FALSE);
if (!xdr_count4(xdrs, &objp->ca_maxoperations))
return (FALSE);
if (!xdr_count4(xdrs, &objp->ca_maxrequests))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->ca_rdma_ird.ca_rdma_ird_val,
(uint_t *)&objp->ca_rdma_ird.ca_rdma_ird_len, 1,
sizeof (uint32_t), (xdrproc_t)xdr_uint32_t))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CREATE_SESSION4args(XDR *xdrs, CREATE_SESSION4args *objp)
{
if (!xdr_clientid4(xdrs, &objp->csa_clientid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->csa_sequence))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->csa_flags))
return (FALSE);
if (!xdr_channel_attrs4(xdrs, &objp->csa_fore_chan_attrs))
return (FALSE);
if (!xdr_channel_attrs4(xdrs, &objp->csa_back_chan_attrs))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->csa_cb_program))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->csa_sec_parms.csa_sec_parms_val,
(uint_t *)&objp->csa_sec_parms.csa_sec_parms_len, ~0,
sizeof (callback_sec_parms4), (xdrproc_t)xdr_callback_sec_parms4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CREATE_SESSION4resok(XDR *xdrs, CREATE_SESSION4resok *objp)
{
if (!xdr_sessionid4(xdrs, objp->csr_sessionid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->csr_sequence))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->csr_flags))
return (FALSE);
if (!xdr_channel_attrs4(xdrs, &objp->csr_fore_chan_attrs))
return (FALSE);
if (!xdr_channel_attrs4(xdrs, &objp->csr_back_chan_attrs))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CREATE_SESSION4res(XDR *xdrs, CREATE_SESSION4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->csr_status))
return (FALSE);
switch (objp->csr_status) {
case NFS4_OK:
if (!xdr_CREATE_SESSION4resok(xdrs,
&objp->CREATE_SESSION4res_u.csr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_DESTROY_SESSION4args(XDR *xdrs, DESTROY_SESSION4args *objp)
{
if (!xdr_sessionid4(xdrs, objp->dsa_sessionid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_DESTROY_SESSION4res(XDR *xdrs, DESTROY_SESSION4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->dsr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_FREE_STATEID4args(XDR *xdrs, FREE_STATEID4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->fsa_stateid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_FREE_STATEID4res(XDR *xdrs, FREE_STATEID4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->fsr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_attr_notice4(XDR *xdrs, attr_notice4 *objp)
{
if (!xdr_nfstime4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GET_DIR_DELEGATION4args(XDR *xdrs, GET_DIR_DELEGATION4args *objp)
{
if (!xdr_bool(xdrs, &objp->gdda_signal_deleg_avail))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gdda_notification_types))
return (FALSE);
if (!xdr_attr_notice4(xdrs, &objp->gdda_child_attr_delay))
return (FALSE);
if (!xdr_attr_notice4(xdrs, &objp->gdda_dir_attr_delay))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gdda_child_attributes))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gdda_dir_attributes))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GET_DIR_DELEGATION4resok(XDR *xdrs, GET_DIR_DELEGATION4resok *objp)
{
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->gddr_cookieverf))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->gddr_stateid))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gddr_notification))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gddr_child_attributes))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->gddr_dir_attributes))
return (FALSE);
return (TRUE);
}
bool_t
xdr_gddrnf4_status(XDR *xdrs, gddrnf4_status *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GET_DIR_DELEGATION4res_non_fatal(XDR *xdrs,
GET_DIR_DELEGATION4res_non_fatal *objp)
{
if (!xdr_gddrnf4_status(xdrs, &objp->gddrnf_status))
return (FALSE);
switch (objp->gddrnf_status) {
case GDD4_OK:
if (!xdr_GET_DIR_DELEGATION4resok(xdrs,
&objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4))
return (FALSE);
break;
case GDD4_UNAVAIL:
if (!xdr_bool(xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.
gddrnf_will_signal_deleg_avail))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_GET_DIR_DELEGATION4res(XDR *xdrs, GET_DIR_DELEGATION4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->gddr_status))
return (FALSE);
switch (objp->gddr_status) {
case NFS4_OK:
if (!xdr_GET_DIR_DELEGATION4res_non_fatal(xdrs,
&objp->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_bitmap4_notify(XDR *xdrs, bitmap4 *objp)
{
int32_t len = 1;
ASSERT(xdrs->x_op == XDR_ENCODE);
if (!XDR_PUTINT32(xdrs, &len))
return (FALSE);
#if defined(_BIG_ENDIAN)
return (XDR_PUTINT32(xdrs, (int32_t *)objp));
#elif defined(_LITTLE_ENDIAN)
return (XDR_PUTINT32(xdrs, (int32_t *)objp+1));
#endif
}
bool_t
xdr_GETDEVICEINFO4args(XDR *xdrs, GETDEVICEINFO4args *objp)
{
if (!xdr_deviceid4(xdrs, objp->gdia_device_id))
return (FALSE);
if (!xdr_layouttype4(xdrs, &objp->gdia_layout_type))
return (FALSE);
if (!xdr_count4(xdrs, &objp->gdia_maxcount))
return (FALSE);
if (xdrs->x_op == XDR_ENCODE) {
if (!xdr_bitmap4_notify(xdrs, &objp->gdia_notify_types))
return (FALSE);
} else
if (!xdr_bitmap4(xdrs, &objp->gdia_notify_types))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GETDEVICEINFO4resok(XDR *xdrs, GETDEVICEINFO4resok *objp)
{
if (!xdr_device_addr4(xdrs, &objp->gdir_device_addr))
return (FALSE);
if (xdrs->x_op == XDR_ENCODE) {
if (!xdr_bitmap4_notify(xdrs, &objp->gdir_notification))
return (FALSE);
} else
if (!xdr_bitmap4(xdrs, &objp->gdir_notification))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GETDEVICEINFO4res(XDR *xdrs, GETDEVICEINFO4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->gdir_status))
return (FALSE);
switch (objp->gdir_status) {
case NFS4_OK:
if (!xdr_GETDEVICEINFO4resok(xdrs,
&objp->GETDEVICEINFO4res_u.gdir_resok4))
return (FALSE);
break;
case NFS4ERR_TOOSMALL:
if (!xdr_count4(xdrs, &objp->GETDEVICEINFO4res_u.gdir_mincount))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_GETDEVICELIST4args(XDR *xdrs, GETDEVICELIST4args *objp)
{
if (!xdr_layouttype4(xdrs, &objp->gdla_layout_type))
return (FALSE);
if (!xdr_count4(xdrs, &objp->gdla_maxdevices))
return (FALSE);
if (!xdr_nfs_cookie4(xdrs, &objp->gdla_cookie))
return (FALSE);
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->gdla_cookieverf))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GETDEVICELIST4resok(XDR *xdrs, GETDEVICELIST4resok *objp)
{
if (!xdr_nfs_cookie4(xdrs, &objp->gdlr_cookie))
return (FALSE);
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->gdlr_cookieverf))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->gdlr_deviceid_list.gdlr_deviceid_list_val,
(uint_t *)&objp->gdlr_deviceid_list.gdlr_deviceid_list_len,
~0, sizeof (deviceid4), (xdrproc_t)xdr_deviceid4))
return (FALSE);
if (!xdr_bool(xdrs, &objp->gdlr_eof))
return (FALSE);
return (TRUE);
}
bool_t
xdr_GETDEVICELIST4res(XDR *xdrs, GETDEVICELIST4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->gdlr_status))
return (FALSE);
switch (objp->gdlr_status) {
case NFS4_OK:
if (!xdr_GETDEVICELIST4resok(xdrs,
&objp->GETDEVICELIST4res_u.gdlr_resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_newtime4(XDR *xdrs, newtime4 *objp)
{
if (!xdr_bool(xdrs, &objp->nt_timechanged))
return (FALSE);
switch (objp->nt_timechanged) {
case TRUE:
if (!xdr_nfstime4(xdrs, &objp->newtime4_u.nt_time))
return (FALSE);
break;
case FALSE:
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_newoffset4(XDR *xdrs, newoffset4 *objp)
{
if (!xdr_bool(xdrs, &objp->no_newoffset))
return (FALSE);
switch (objp->no_newoffset) {
case TRUE:
if (!xdr_offset4(xdrs, &objp->newoffset4_u.no_offset))
return (FALSE);
break;
case FALSE:
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_LAYOUTCOMMIT4args(XDR *xdrs, LAYOUTCOMMIT4args *objp)
{
if (!xdr_offset4(xdrs, &objp->loca_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->loca_length))
return (FALSE);
if (!xdr_bool(xdrs, &objp->loca_reclaim))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->loca_stateid))
return (FALSE);
if (!xdr_newoffset4(xdrs, &objp->loca_last_write_offset))
return (FALSE);
if (!xdr_newtime4(xdrs, &objp->loca_time_modify))
return (FALSE);
if (!xdr_layoutupdate4(xdrs, &objp->loca_layoutupdate))
return (FALSE);
return (TRUE);
}
bool_t
xdr_newsize4(XDR *xdrs, newsize4 *objp)
{
if (!xdr_bool(xdrs, &objp->ns_sizechanged))
return (FALSE);
switch (objp->ns_sizechanged) {
case TRUE:
if (!xdr_length4(xdrs, &objp->newsize4_u.ns_size))
return (FALSE);
break;
case FALSE:
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_LAYOUTCOMMIT4resok(XDR *xdrs, LAYOUTCOMMIT4resok *objp)
{
if (!xdr_newsize4(xdrs, &objp->locr_newsize))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTCOMMIT4res(XDR *xdrs, LAYOUTCOMMIT4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->locr_status))
return (FALSE);
switch (objp->locr_status) {
case NFS4_OK:
if (!xdr_LAYOUTCOMMIT4resok(xdrs,
&objp->LAYOUTCOMMIT4res_u.locr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_LAYOUTGET4args(XDR *xdrs, LAYOUTGET4args *objp)
{
if (!xdr_bool(xdrs, &objp->loga_signal_layout_avail))
return (FALSE);
if (!xdr_layouttype4(xdrs, &objp->loga_layout_type))
return (FALSE);
if (!xdr_layoutiomode4(xdrs, &objp->loga_iomode))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->loga_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->loga_length))
return (FALSE);
if (!xdr_length4(xdrs, &objp->loga_minlength))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->loga_stateid))
return (FALSE);
if (!xdr_count4(xdrs, &objp->loga_maxcount))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTGET4resok(XDR *xdrs, LAYOUTGET4resok *objp)
{
if (!xdr_bool(xdrs, &objp->logr_return_on_close))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->logr_stateid))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->logr_layout.logr_layout_val,
(uint_t *)&objp->logr_layout.logr_layout_len, ~0,
sizeof (layout4), (xdrproc_t)xdr_layout4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTGET4res(XDR *xdrs, LAYOUTGET4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->logr_status))
return (FALSE);
switch (objp->logr_status) {
case NFS4_OK:
if (!xdr_LAYOUTGET4resok(xdrs,
&objp->LAYOUTGET4res_u.logr_resok4))
return (FALSE);
break;
case NFS4ERR_LAYOUTTRYLATER:
if (!xdr_bool(xdrs,
&objp->LAYOUTGET4res_u.logr_will_signal_layout_avail))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_LAYOUTRETURN4args(XDR *xdrs, LAYOUTRETURN4args *objp)
{
if (!xdr_bool(xdrs, &objp->lora_reclaim))
return (FALSE);
if (!xdr_layouttype4(xdrs, &objp->lora_layout_type))
return (FALSE);
if (!xdr_layoutiomode4(xdrs, &objp->lora_iomode))
return (FALSE);
if (!xdr_layoutreturn4(xdrs, &objp->lora_layoutreturn))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutreturn_stateid(XDR *xdrs, layoutreturn_stateid *objp)
{
if (!xdr_bool(xdrs, &objp->lrs_present))
return (FALSE);
switch (objp->lrs_present) {
case TRUE:
if (!xdr_stateid4(xdrs,
&objp->layoutreturn_stateid_u.lrs_stateid))
return (FALSE);
break;
case FALSE:
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_LAYOUTRETURN4res(XDR *xdrs, LAYOUTRETURN4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->lorr_status))
return (FALSE);
switch (objp->lorr_status) {
case NFS4_OK:
if (!xdr_layoutreturn_stateid(xdrs,
&objp->LAYOUTRETURN4res_u.lorr_stateid))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_secinfo_style4(XDR *xdrs, secinfo_style4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SECINFO_NO_NAME4args(XDR *xdrs, SECINFO_NO_NAME4args *objp)
{
if (!xdr_secinfo_style4(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SECINFO_NO_NAME4res(XDR *xdrs, SECINFO_NO_NAME4res *objp)
{
if (!xdr_SECINFO4res(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SEQUENCE4args(XDR *xdrs, SEQUENCE4args *objp)
{
if (!xdr_sessionid4(xdrs, objp->sa_sessionid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->sa_sequenceid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->sa_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->sa_highest_slotid))
return (FALSE);
if (!xdr_bool(xdrs, &objp->sa_cachethis))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SEQUENCE4resok(XDR *xdrs, SEQUENCE4resok *objp)
{
if (!xdr_sessionid4(xdrs, objp->sr_sessionid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->sr_sequenceid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->sr_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->sr_highest_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->sr_target_highest_slotid))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->sr_status_flags))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SEQUENCE4res(XDR *xdrs, SEQUENCE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->sr_status))
return (FALSE);
switch (objp->sr_status) {
case NFS4_OK:
if (!xdr_SEQUENCE4resok(xdrs, &objp->SEQUENCE4res_u.sr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_ssa_digest_input4(XDR *xdrs, ssa_digest_input4 *objp)
{
if (!xdr_SEQUENCE4args(xdrs, &objp->sdi_seqargs))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SET_SSV4args(XDR *xdrs, SET_SSV4args *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->ssa_ssv.ssa_ssv_val,
(uint_t *)&objp->ssa_ssv.ssa_ssv_len, ~0))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->ssa_digest.ssa_digest_val,
(uint_t *)&objp->ssa_digest.ssa_digest_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ssr_digest_input4(XDR *xdrs, ssr_digest_input4 *objp)
{
if (!xdr_SEQUENCE4res(xdrs, &objp->sdi_seqres))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SET_SSV4resok(XDR *xdrs, SET_SSV4resok *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->ssr_digest.ssr_digest_val,
(uint_t *)&objp->ssr_digest.ssr_digest_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SET_SSV4res(XDR *xdrs, SET_SSV4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->ssr_status))
return (FALSE);
switch (objp->ssr_status) {
case NFS4_OK:
if (!xdr_SET_SSV4resok(xdrs, &objp->SET_SSV4res_u.ssr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_TEST_STATEID4args(XDR *xdrs, TEST_STATEID4args *objp)
{
if (!xdr_array(xdrs, (char **)&objp->ts_stateids.ts_stateids_val,
(uint_t *)&objp->ts_stateids.ts_stateids_len, ~0,
sizeof (stateid4), (xdrproc_t)xdr_stateid4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_TEST_STATEID4resok(XDR *xdrs, TEST_STATEID4resok *objp)
{
if (!xdr_array(xdrs,
(char **)&objp->tsr_status_codes.tsr_status_codes_val,
(uint_t *)&objp->tsr_status_codes.tsr_status_codes_len, ~0,
sizeof (nfsstat4), (xdrproc_t)xdr_nfsstat4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_TEST_STATEID4res(XDR *xdrs, TEST_STATEID4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->tsr_status))
return (FALSE);
switch (objp->tsr_status) {
case NFS4_OK:
if (!xdr_TEST_STATEID4resok(xdrs,
&objp->TEST_STATEID4res_u.tsr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_deleg_claim4(XDR *xdrs, deleg_claim4 *objp)
{
if (!xdr_open_claim_type4(xdrs, &objp->dc_claim))
return (FALSE);
switch (objp->dc_claim) {
case CLAIM_FH:
break;
case CLAIM_DELEG_PREV_FH:
break;
case CLAIM_PREVIOUS:
if (!xdr_open_delegation_type4(xdrs,
&objp->deleg_claim4_u.dc_delegate_type))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_WANT_DELEGATION4args(XDR *xdrs, WANT_DELEGATION4args *objp)
{
if (!xdr_uint32_t(xdrs, &objp->wda_want))
return (FALSE);
if (!xdr_deleg_claim4(xdrs, &objp->wda_claim))
return (FALSE);
return (TRUE);
}
bool_t
xdr_WANT_DELEGATION4res(XDR *xdrs, WANT_DELEGATION4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->wdr_status))
return (FALSE);
switch (objp->wdr_status) {
case NFS4_OK:
if (!xdr_open_delegation4(xdrs,
&objp->WANT_DELEGATION4res_u.wdr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_DESTROY_CLIENTID4args(XDR *xdrs, DESTROY_CLIENTID4args *objp)
{
if (!xdr_clientid4(xdrs, &objp->dca_clientid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_DESTROY_CLIENTID4res(XDR *xdrs, DESTROY_CLIENTID4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->dcr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_RECLAIM_COMPLETE4args(XDR *xdrs, RECLAIM_COMPLETE4args *objp)
{
if (!xdr_bool(xdrs, &objp->rca_one_fs))
return (FALSE);
return (TRUE);
}
bool_t
xdr_RECLAIM_COMPLETE4res(XDR *xdrs, RECLAIM_COMPLETE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->rcr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_opnum4(XDR *xdrs, nfs_opnum4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ALLOCATE4args(XDR *xdrs, ALLOCATE4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->aa_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->aa_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->aa_length))
return (FALSE);
return (TRUE);
}
bool_t
xdr_ALLOCATE4res(XDR *xdrs, ALLOCATE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->ar_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_COPY4args(XDR *xdrs, COPY4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->ca_src_stateid))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->ca_dst_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->ca_src_offset))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->ca_dst_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->ca_count))
return (FALSE);
if (!xdr_bool(xdrs, &objp->ca_consecutive))
return (FALSE);
if (!xdr_bool(xdrs, &objp->ca_synchronous))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->ca_source_server.ca_source_server_val,
(uint_t *) &objp->ca_source_server.ca_source_server_len, ~0,
sizeof (netloc4), (xdrproc_t)xdr_netloc4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_copy_requirements4(XDR *xdrs, copy_requirements4 *objp)
{
if (!xdr_bool(xdrs, &objp->cr_consecutive))
return (FALSE);
if (!xdr_bool(xdrs, &objp->cr_synchronous))
return (FALSE);
return (TRUE);
}
bool_t
xdr_COPY4resok(XDR *xdrs, COPY4resok *objp)
{
if (!xdr_write_response4(xdrs, &objp->cr_response))
return (FALSE);
if (!xdr_copy_requirements4(xdrs, &objp->cr_requirements))
return (FALSE);
return (TRUE);
}
bool_t
xdr_COPY4res(XDR *xdrs, COPY4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cr_status))
return (FALSE);
switch (objp->cr_status) {
case NFS4_OK:
if (!xdr_COPY4resok(xdrs, &objp->COPY4res_u.cr_resok4))
return (FALSE);
break;
case NFS4ERR_OFFLOAD_NO_REQS:
if (!xdr_copy_requirements4(xdrs,
&objp->COPY4res_u.cr_requirements))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_COPY_NOTIFY4args(XDR *xdrs, COPY_NOTIFY4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->cna_src_stateid))
return (FALSE);
if (!xdr_netloc4(xdrs, &objp->cna_destination_server))
return (FALSE);
return (TRUE);
}
bool_t
xdr_COPY_NOTIFY4resok(XDR *xdrs, COPY_NOTIFY4resok *objp)
{
if (!xdr_nfstime4(xdrs, &objp->cnr_lease_time))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->cnr_stateid))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->cnr_source_server.cnr_source_server_val,
(uint_t *) &objp->cnr_source_server.cnr_source_server_len, ~0,
sizeof (netloc4), (xdrproc_t)xdr_netloc4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_COPY_NOTIFY4res(XDR *xdrs, COPY_NOTIFY4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cnr_status))
return (FALSE);
switch (objp->cnr_status) {
case NFS4_OK:
if (!xdr_COPY_NOTIFY4resok(xdrs,
&objp->COPY_NOTIFY4res_u.resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_DEALLOCATE4args(XDR *xdrs, DEALLOCATE4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->da_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->da_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->da_length))
return (FALSE);
return (TRUE);
}
bool_t
xdr_DEALLOCATE4res(XDR *xdrs, DEALLOCATE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->dr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_IO_ADVISE_type4(XDR *xdrs, IO_ADVISE_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_IO_ADVISE4args(XDR *xdrs, IO_ADVISE4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->iaa_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->iaa_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->iaa_count))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->iaa_hints))
return (FALSE);
return (TRUE);
}
bool_t
xdr_IO_ADVISE4resok(XDR *xdrs, IO_ADVISE4resok *objp)
{
if (!xdr_bitmap4(xdrs, &objp->ior_hints))
return (FALSE);
return (TRUE);
}
bool_t
xdr_IO_ADVISE4res(XDR *xdrs, IO_ADVISE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->ior_status))
return (FALSE);
switch (objp->ior_status) {
case NFS4_OK:
if (!xdr_IO_ADVISE4resok(xdrs, &objp->IO_ADVISE4res_u.resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_device_error4(XDR *xdrs, device_error4 *objp)
{
if (!xdr_deviceid4(xdrs, objp->de_deviceid))
return (FALSE);
if (!xdr_nfsstat4(xdrs, &objp->de_status))
return (FALSE);
if (!xdr_nfs_opnum4(xdrs, &objp->de_opnum))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTERROR4args(XDR *xdrs, LAYOUTERROR4args *objp)
{
if (!xdr_offset4(xdrs, &objp->lea_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->lea_length))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->lea_stateid))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->lea_errors.lea_errors_val,
(uint_t *) &objp->lea_errors.lea_errors_len, ~0,
sizeof (device_error4), (xdrproc_t)xdr_device_error4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTERROR4res(XDR *xdrs, LAYOUTERROR4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->ler_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_io_info4(XDR *xdrs, io_info4 *objp)
{
if (!xdr_uint64_t(xdrs, &objp->ii_count))
return (FALSE);
if (!xdr_uint64_t(xdrs, &objp->ii_bytes))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTSTATS4args(XDR *xdrs, LAYOUTSTATS4args *objp)
{
if (!xdr_offset4(xdrs, &objp->lsa_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->lsa_length))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->lsa_stateid))
return (FALSE);
if (!xdr_io_info4(xdrs, &objp->lsa_read))
return (FALSE);
if (!xdr_io_info4(xdrs, &objp->lsa_write))
return (FALSE);
if (!xdr_deviceid4(xdrs, objp->lsa_deviceid))
return (FALSE);
if (!xdr_layoutupdate4(xdrs, &objp->lsa_layoutupdate))
return (FALSE);
return (TRUE);
}
bool_t
xdr_LAYOUTSTATS4res(XDR *xdrs, LAYOUTSTATS4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->lsr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_OFFLOAD_CANCEL4args(XDR *xdrs, OFFLOAD_CANCEL4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->oca_stateid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_OFFLOAD_CANCEL4res(XDR *xdrs, OFFLOAD_CANCEL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->ocr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_OFFLOAD_STATUS4args(XDR *xdrs, OFFLOAD_STATUS4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->osa_stateid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_OFFLOAD_STATUS4resok(XDR *xdrs, OFFLOAD_STATUS4resok *objp)
{
if (!xdr_length4(xdrs, &objp->osr_count))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->osr_complete.osr_complete_val,
(uint_t *) &objp->osr_complete.osr_complete_len, 1,
sizeof (nfsstat4), (xdrproc_t)xdr_nfsstat4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_OFFLOAD_STATUS4res(XDR *xdrs, OFFLOAD_STATUS4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->osr_status))
return (FALSE);
switch (objp->osr_status) {
case NFS4_OK:
if (!xdr_OFFLOAD_STATUS4resok(xdrs,
&objp->OFFLOAD_STATUS4res_u.osr_resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_READ_PLUS4args(XDR *xdrs, READ_PLUS4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->rpa_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->rpa_offset))
return (FALSE);
if (!xdr_count4(xdrs, &objp->rpa_count))
return (FALSE);
return (TRUE);
}
bool_t
xdr_read_plus_content(XDR *xdrs, read_plus_content *objp)
{
if (!xdr_data_content4(xdrs, &objp->rpc_content))
return (FALSE);
switch (objp->rpc_content) {
case NFS4_CONTENT_DATA:
if (!xdr_data4(xdrs, &objp->read_plus_content_u.rpc_data))
return (FALSE);
break;
case NFS4_CONTENT_HOLE:
if (!xdr_data_info4(xdrs, &objp->read_plus_content_u.rpc_hole))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_read_plus_res4(XDR *xdrs, read_plus_res4 *objp)
{
if (!xdr_bool(xdrs, &objp->rpr_eof))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->rpr_contents.rpr_contents_val,
(uint_t *) &objp->rpr_contents.rpr_contents_len, ~0,
sizeof (read_plus_content), (xdrproc_t)xdr_read_plus_content))
return (FALSE);
return (TRUE);
}
bool_t
xdr_READ_PLUS4res(XDR *xdrs, READ_PLUS4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->rp_status))
return (FALSE);
switch (objp->rp_status) {
case NFS4_OK:
if (!xdr_read_plus_res4(xdrs, &objp->READ_PLUS4res_u.rp_resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_SEEK4args(XDR *xdrs, SEEK4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->sa_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->sa_offset))
return (FALSE);
if (!xdr_data_content4(xdrs, &objp->sa_what))
return (FALSE);
return (TRUE);
}
bool_t
xdr_seek_res4(XDR *xdrs, seek_res4 *objp)
{
if (!xdr_bool(xdrs, &objp->sr_eof))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->sr_offset))
return (FALSE);
return (TRUE);
}
bool_t
xdr_SEEK4res(XDR *xdrs, SEEK4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->sa_status))
return (FALSE);
switch (objp->sa_status) {
case NFS4_OK:
if (!xdr_seek_res4(xdrs, &objp->SEEK4res_u.resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_WRITE_SAME4args(XDR *xdrs, WRITE_SAME4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->wsa_stateid))
return (FALSE);
if (!xdr_stable_how4(xdrs, &objp->wsa_stable))
return (FALSE);
if (!xdr_app_data_block4(xdrs, &objp->wsa_adb))
return (FALSE);
return (TRUE);
}
bool_t
xdr_WRITE_SAME4res(XDR *xdrs, WRITE_SAME4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->wsr_status))
return (FALSE);
switch (objp->wsr_status) {
case NFS4_OK:
if (!xdr_write_response4(xdrs, &objp->WRITE_SAME4res_u.resok4))
return (FALSE);
break;
default:
break;
}
return (TRUE);
}
bool_t
xdr_CLONE4args(XDR *xdrs, CLONE4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->cl_src_stateid))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->cl_dst_stateid))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->cl_src_offset))
return (FALSE);
if (!xdr_offset4(xdrs, &objp->cl_dst_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->cl_count))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CLONE4res(XDR *xdrs, CLONE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cl_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs4x_argop4(XDR *xdrs, nfs_argop4 *objp)
{
switch (objp->argop) {
case OP_BACKCHANNEL_CTL:
if (!xdr_BACKCHANNEL_CTL4args(xdrs,
&objp->nfs_argop4_u.opbackchannel_ctl))
return (FALSE);
break;
case OP_BIND_CONN_TO_SESSION:
if (!xdr_BIND_CONN_TO_SESSION4args(xdrs,
&objp->nfs_argop4_u.opbind_conn_to_session))
return (FALSE);
break;
case OP_EXCHANGE_ID:
if (!xdr_EXCHANGE_ID4args(xdrs,
&objp->nfs_argop4_u.opexchange_id))
return (FALSE);
break;
case OP_CREATE_SESSION:
if (!xdr_CREATE_SESSION4args(xdrs,
&objp->nfs_argop4_u.opcreate_session))
return (FALSE);
break;
case OP_DESTROY_SESSION:
if (!xdr_DESTROY_SESSION4args(xdrs,
&objp->nfs_argop4_u.opdestroy_session))
return (FALSE);
break;
case OP_FREE_STATEID:
if (!xdr_FREE_STATEID4args(xdrs,
&objp->nfs_argop4_u.opfree_stateid))
return (FALSE);
break;
case OP_GET_DIR_DELEGATION:
if (!xdr_GET_DIR_DELEGATION4args(xdrs,
&objp->nfs_argop4_u.opget_dir_delegation))
return (FALSE);
break;
case OP_GETDEVICEINFO:
if (!xdr_GETDEVICEINFO4args(xdrs,
&objp->nfs_argop4_u.opgetdeviceinfo))
return (FALSE);
break;
case OP_GETDEVICELIST:
if (!xdr_GETDEVICELIST4args(xdrs,
&objp->nfs_argop4_u.opgetdevicelist))
return (FALSE);
break;
case OP_LAYOUTCOMMIT:
if (!xdr_LAYOUTCOMMIT4args(xdrs,
&objp->nfs_argop4_u.oplayoutcommit))
return (FALSE);
break;
case OP_LAYOUTGET:
if (!xdr_LAYOUTGET4args(xdrs,
&objp->nfs_argop4_u.oplayoutget))
return (FALSE);
break;
case OP_LAYOUTRETURN:
if (!xdr_LAYOUTRETURN4args(xdrs,
&objp->nfs_argop4_u.oplayoutreturn))
return (FALSE);
break;
case OP_SECINFO_NO_NAME:
if (!xdr_SECINFO_NO_NAME4args(xdrs,
&objp->nfs_argop4_u.opsecinfo_no_name))
return (FALSE);
break;
case OP_SEQUENCE:
if (!xdr_SEQUENCE4args(xdrs,
&objp->nfs_argop4_u.opsequence))
return (FALSE);
break;
case OP_SET_SSV:
if (!xdr_SET_SSV4args(xdrs,
&objp->nfs_argop4_u.opset_ssv))
return (FALSE);
break;
case OP_TEST_STATEID:
if (!xdr_TEST_STATEID4args(xdrs,
&objp->nfs_argop4_u.optest_stateid))
return (FALSE);
break;
case OP_WANT_DELEGATION:
if (!xdr_WANT_DELEGATION4args(xdrs,
&objp->nfs_argop4_u.opwant_delegation))
return (FALSE);
break;
case OP_DESTROY_CLIENTID:
if (!xdr_DESTROY_CLIENTID4args(xdrs,
&objp->nfs_argop4_u.opdestroy_clientid))
return (FALSE);
break;
case OP_RECLAIM_COMPLETE:
if (!xdr_RECLAIM_COMPLETE4args(xdrs,
&objp->nfs_argop4_u.opreclaim_complete))
return (FALSE);
break;
case OP_ALLOCATE:
if (!xdr_ALLOCATE4args(xdrs,
&objp->nfs_argop4_u.opallocate))
return (FALSE);
break;
case OP_COPY:
if (!xdr_COPY4args(xdrs, &objp->nfs_argop4_u.opcopy))
return (FALSE);
break;
case OP_COPY_NOTIFY:
if (!xdr_COPY_NOTIFY4args(xdrs,
&objp->nfs_argop4_u.opoffload_notify))
return (FALSE);
break;
case OP_DEALLOCATE:
if (!xdr_DEALLOCATE4args(xdrs,
&objp->nfs_argop4_u.opdeallocate))
return (FALSE);
break;
case OP_IO_ADVISE:
if (!xdr_IO_ADVISE4args(xdrs,
&objp->nfs_argop4_u.opio_advise))
return (FALSE);
break;
case OP_LAYOUTERROR:
if (!xdr_LAYOUTERROR4args(xdrs,
&objp->nfs_argop4_u.oplayouterror))
return (FALSE);
break;
case OP_LAYOUTSTATS:
if (!xdr_LAYOUTSTATS4args(xdrs,
&objp->nfs_argop4_u.oplayoutstats))
return (FALSE);
break;
case OP_OFFLOAD_CANCEL:
if (!xdr_OFFLOAD_CANCEL4args(xdrs,
&objp->nfs_argop4_u.opoffload_cancel))
return (FALSE);
break;
case OP_OFFLOAD_STATUS:
if (!xdr_OFFLOAD_STATUS4args(xdrs,
&objp->nfs_argop4_u.opoffload_status))
return (FALSE);
break;
case OP_READ_PLUS:
if (!xdr_READ_PLUS4args(xdrs,
&objp->nfs_argop4_u.opread_plus))
return (FALSE);
break;
case OP_SEEK:
if (!xdr_SEEK4args(xdrs, &objp->nfs_argop4_u.opseek))
return (FALSE);
break;
case OP_WRITE_SAME:
if (!xdr_WRITE_SAME4args(xdrs,
&objp->nfs_argop4_u.opwrite_same))
return (FALSE);
break;
case OP_CLONE:
if (!xdr_CLONE4args(xdrs, &objp->nfs_argop4_u.opclone))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_nfs4x_resop4(XDR *xdrs, nfs_resop4 *objp)
{
switch (objp->resop) {
case OP_BACKCHANNEL_CTL:
if (!xdr_BACKCHANNEL_CTL4res(xdrs,
&objp->nfs_resop4_u.opbackchannel_ctl))
return (FALSE);
break;
case OP_BIND_CONN_TO_SESSION:
if (!xdr_BIND_CONN_TO_SESSION4res(xdrs,
&objp->nfs_resop4_u.opbind_conn_to_session))
return (FALSE);
break;
case OP_EXCHANGE_ID:
if (!xdr_EXCHANGE_ID4res(xdrs,
&objp->nfs_resop4_u.opexchange_id))
return (FALSE);
break;
case OP_CREATE_SESSION:
if (!xdr_CREATE_SESSION4res(xdrs,
&objp->nfs_resop4_u.opcreate_session))
return (FALSE);
break;
case OP_DESTROY_SESSION:
if (!xdr_DESTROY_SESSION4res(xdrs,
&objp->nfs_resop4_u.opdestroy_session))
return (FALSE);
break;
case OP_FREE_STATEID:
if (!xdr_FREE_STATEID4res(xdrs,
&objp->nfs_resop4_u.opfree_stateid))
return (FALSE);
break;
case OP_GET_DIR_DELEGATION:
if (!xdr_GET_DIR_DELEGATION4res(xdrs,
&objp->nfs_resop4_u.opget_dir_delegation))
return (FALSE);
break;
case OP_GETDEVICEINFO:
if (!xdr_GETDEVICEINFO4res(xdrs,
&objp->nfs_resop4_u.opgetdeviceinfo))
return (FALSE);
break;
case OP_GETDEVICELIST:
if (!xdr_GETDEVICELIST4res(xdrs,
&objp->nfs_resop4_u.opgetdevicelist))
return (FALSE);
break;
case OP_LAYOUTCOMMIT:
if (!xdr_LAYOUTCOMMIT4res(xdrs,
&objp->nfs_resop4_u.oplayoutcommit))
return (FALSE);
break;
case OP_LAYOUTGET:
if (!xdr_LAYOUTGET4res(xdrs,
&objp->nfs_resop4_u.oplayoutget))
return (FALSE);
break;
case OP_LAYOUTRETURN:
if (!xdr_LAYOUTRETURN4res(xdrs,
&objp->nfs_resop4_u.oplayoutreturn))
return (FALSE);
break;
case OP_SECINFO_NO_NAME:
if (!xdr_SECINFO_NO_NAME4res(xdrs,
&objp->nfs_resop4_u.opsecinfo_no_name))
return (FALSE);
break;
case OP_SEQUENCE:
if (!xdr_SEQUENCE4res(xdrs,
&objp->nfs_resop4_u.opsequence))
return (FALSE);
break;
case OP_SET_SSV:
if (!xdr_SET_SSV4res(xdrs,
&objp->nfs_resop4_u.opset_ssv))
return (FALSE);
break;
case OP_TEST_STATEID:
if (!xdr_TEST_STATEID4res(xdrs,
&objp->nfs_resop4_u.optest_stateid))
return (FALSE);
break;
case OP_WANT_DELEGATION:
if (!xdr_WANT_DELEGATION4res(xdrs,
&objp->nfs_resop4_u.opwant_delegation))
return (FALSE);
break;
case OP_DESTROY_CLIENTID:
if (!xdr_DESTROY_CLIENTID4res(xdrs,
&objp->nfs_resop4_u.opdestroy_clientid))
return (FALSE);
break;
case OP_RECLAIM_COMPLETE:
if (!xdr_RECLAIM_COMPLETE4res(xdrs,
&objp->nfs_resop4_u.opreclaim_complete))
return (FALSE);
break;
case OP_ALLOCATE:
if (!xdr_ALLOCATE4res(xdrs, &objp->nfs_resop4_u.opallocate))
return (FALSE);
break;
case OP_COPY:
if (!xdr_COPY4res(xdrs, &objp->nfs_resop4_u.opcopy))
return (FALSE);
break;
case OP_COPY_NOTIFY:
if (!xdr_COPY_NOTIFY4res(xdrs,
&objp->nfs_resop4_u.opcopy_notify))
return (FALSE);
break;
case OP_DEALLOCATE:
if (!xdr_DEALLOCATE4res(xdrs, &objp->nfs_resop4_u.opdeallocate))
return (FALSE);
break;
case OP_IO_ADVISE:
if (!xdr_IO_ADVISE4res(xdrs, &objp->nfs_resop4_u.opio_advise))
return (FALSE);
break;
case OP_LAYOUTERROR:
if (!xdr_LAYOUTERROR4res(xdrs,
&objp->nfs_resop4_u.oplayouterror))
return (FALSE);
break;
case OP_LAYOUTSTATS:
if (!xdr_LAYOUTSTATS4res(xdrs,
&objp->nfs_resop4_u.oplayoutstats))
return (FALSE);
break;
case OP_OFFLOAD_CANCEL:
if (!xdr_OFFLOAD_CANCEL4res(xdrs,
&objp->nfs_resop4_u.opoffload_cancel))
return (FALSE);
break;
case OP_OFFLOAD_STATUS:
if (!xdr_OFFLOAD_STATUS4res(xdrs,
&objp->nfs_resop4_u.opoffload_status))
return (FALSE);
break;
case OP_READ_PLUS:
if (!xdr_READ_PLUS4res(xdrs, &objp->nfs_resop4_u.opread_plus))
return (FALSE);
break;
case OP_SEEK:
if (!xdr_SEEK4res(xdrs, &objp->nfs_resop4_u.opseek))
return (FALSE);
break;
case OP_WRITE_SAME:
if (!xdr_WRITE_SAME4res(xdrs, &objp->nfs_resop4_u.opwrite_same))
return (FALSE);
break;
case OP_CLONE:
if (!xdr_CLONE4res(xdrs, &objp->nfs_resop4_u.opclone))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_layoutrecall_type4(XDR *xdrs, layoutrecall_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutrecall_file4(XDR *xdrs, layoutrecall_file4 *objp)
{
switch (xdrs->x_op) {
case XDR_ENCODE:
return (FALSE);
case XDR_DECODE:
if (!xdr_bytes(xdrs, (char **)&objp->lor_fh.nfs_fh4_val,
(uint_t *)&objp->lor_fh.nfs_fh4_len, NFS4_FHSIZE))
return (FALSE);
break;
case XDR_FREE:
if (objp->lor_fh.nfs_fh4_val != NULL) {
if (!xdr_bytes(xdrs,
(char **)&objp->lor_fh.nfs_fh4_val,
(uint_t *)&objp->lor_fh.nfs_fh4_len,
NFS4_FHSIZE))
return (FALSE);
}
break;
}
if (!xdr_offset4(xdrs, &objp->lor_offset))
return (FALSE);
if (!xdr_length4(xdrs, &objp->lor_length))
return (FALSE);
if (!xdr_stateid4(xdrs, &objp->lor_stateid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_layoutrecall4(XDR *xdrs, layoutrecall4 *objp)
{
if (!xdr_layoutrecall_type4(xdrs, &objp->lor_recalltype))
return (FALSE);
switch (objp->lor_recalltype) {
case LAYOUTRECALL4_FILE:
if (!xdr_layoutrecall_file4(xdrs,
&objp->layoutrecall4_u.lor_layout))
return (FALSE);
break;
case LAYOUTRECALL4_FSID:
if (!xdr_fsid4(xdrs, &objp->layoutrecall4_u.lor_fsid))
return (FALSE);
break;
case LAYOUTRECALL4_ALL:
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_CB_LAYOUTRECALL4args(XDR *xdrs, CB_LAYOUTRECALL4args *objp)
{
if (!xdr_layouttype4(xdrs, &objp->clora_type))
return (FALSE);
if (!xdr_layoutiomode4(xdrs, &objp->clora_iomode))
return (FALSE);
if (!xdr_bool(xdrs, &objp->clora_changed))
return (FALSE);
if (!xdr_layoutrecall4(xdrs, &objp->clora_recall))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_LAYOUTRECALL4res(XDR *xdrs, CB_LAYOUTRECALL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->clorr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_type4(XDR *xdrs, notify_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_entry4(XDR *xdrs, notify_entry4 *objp)
{
if (!xdr_component4(xdrs, &objp->ne_file))
return (FALSE);
if (!xdr_fattr4(xdrs, &objp->ne_attrs))
return (FALSE);
return (TRUE);
}
bool_t
xdr_prev_entry4(XDR *xdrs, prev_entry4 *objp)
{
if (!xdr_notify_entry4(xdrs, &objp->pe_prev_entry))
return (FALSE);
if (!xdr_nfs_cookie4(xdrs, &objp->pe_prev_entry_cookie))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_remove4(XDR *xdrs, notify_remove4 *objp)
{
if (!xdr_notify_entry4(xdrs, &objp->nrm_old_entry))
return (FALSE);
if (!xdr_nfs_cookie4(xdrs, &objp->nrm_old_entry_cookie))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_add4(XDR *xdrs, notify_add4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->nad_old_entry.nad_old_entry_val,
(uint_t *)&objp->nad_old_entry.nad_old_entry_len, 1,
sizeof (notify_remove4), (xdrproc_t)xdr_notify_remove4))
return (FALSE);
if (!xdr_notify_entry4(xdrs, &objp->nad_new_entry))
return (FALSE);
if (!xdr_array(xdrs,
(char **)&objp->nad_new_entry_cookie.nad_new_entry_cookie_val,
(uint_t *)&objp->nad_new_entry_cookie.nad_new_entry_cookie_len, 1,
sizeof (nfs_cookie4), (xdrproc_t)xdr_nfs_cookie4))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->nad_prev_entry.nad_prev_entry_val,
(uint_t *)&objp->nad_prev_entry.nad_prev_entry_len, 1,
sizeof (prev_entry4), (xdrproc_t)xdr_prev_entry4))
return (FALSE);
if (!xdr_bool(xdrs, &objp->nad_last_entry))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_attr4(XDR *xdrs, notify_attr4 *objp)
{
if (!xdr_notify_entry4(xdrs, &objp->na_changed_entry))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_rename4(XDR *xdrs, notify_rename4 *objp)
{
if (!xdr_notify_remove4(xdrs, &objp->nrn_old_entry))
return (FALSE);
if (!xdr_notify_add4(xdrs, &objp->nrn_new_entry))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_verifier4(XDR *xdrs, notify_verifier4 *objp)
{
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->nv_old_cookieverf))
return (FALSE);
if (!xdr_verifier4(xdrs, (verifier4 *)&objp->nv_new_cookieverf))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notifylist4(XDR *xdrs, notifylist4 *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->notifylist4_val,
(uint_t *)&objp->notifylist4_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify4(XDR *xdrs, notify4 *objp)
{
if (xdrs->x_op == XDR_ENCODE) {
if (!xdr_bitmap4_notify(xdrs, &objp->notify_mask))
return (FALSE);
} else
if (!xdr_bitmap4(xdrs, &objp->notify_mask))
return (FALSE);
if (!xdr_notifylist4(xdrs, &objp->notify_vals))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY4args(XDR *xdrs, CB_NOTIFY4args *objp)
{
if (!xdr_stateid4(xdrs, &objp->cna_stateid))
return (FALSE);
if (!xdr_nfs_fh4(xdrs, &objp->cna_fh))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->cna_changes.cna_changes_val,
(uint_t *)&objp->cna_changes.cna_changes_len, ~0,
sizeof (notify4), (xdrproc_t)xdr_notify4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY4res(XDR *xdrs, CB_NOTIFY4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cnr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_PUSH_DELEG4args(XDR *xdrs, CB_PUSH_DELEG4args *objp)
{
if (!xdr_nfs_fh4(xdrs, &objp->cpda_fh))
return (FALSE);
if (!xdr_open_delegation4(xdrs, &objp->cpda_delegation))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_PUSH_DELEG4res(XDR *xdrs, CB_PUSH_DELEG4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cpdr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALL_ANY4args(XDR *xdrs, CB_RECALL_ANY4args *objp)
{
if (!xdr_uint32_t(xdrs, &objp->craa_objects_to_keep))
return (FALSE);
if (!xdr_bitmap4(xdrs, &objp->craa_type_mask))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALL_ANY4res(XDR *xdrs, CB_RECALL_ANY4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->crar_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALLABLE_OBJ_AVAIL4args(XDR *xdrs, CB_RECALLABLE_OBJ_AVAIL4args *objp)
{
if (!xdr_CB_RECALL_ANY4args(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALLABLE_OBJ_AVAIL4res(XDR *xdrs, CB_RECALLABLE_OBJ_AVAIL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->croa_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALL_SLOT4args(XDR *xdrs, CB_RECALL_SLOT4args *objp)
{
if (!xdr_slotid4(xdrs, &objp->rsa_target_highest_slotid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_RECALL_SLOT4res(XDR *xdrs, CB_RECALL_SLOT4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->rsr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_referring_call4(XDR *xdrs, referring_call4 *objp)
{
if (!xdr_sequenceid4(xdrs, &objp->rc_sequenceid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->rc_slotid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_referring_call_list4(XDR *xdrs, referring_call_list4 *objp)
{
if (!xdr_sessionid4(xdrs, objp->rcl_sessionid))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->rcl_referring_calls.
rcl_referring_calls_val,
(uint_t *)&objp->rcl_referring_calls.rcl_referring_calls_len, ~0,
sizeof (referring_call4), (xdrproc_t)xdr_referring_call4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_SEQUENCE4args(XDR *xdrs, CB_SEQUENCE4args *objp)
{
if (!xdr_sessionid4(xdrs, objp->csa_sessionid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->csa_sequenceid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->csa_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->csa_highest_slotid))
return (FALSE);
if (!xdr_bool(xdrs, &objp->csa_cachethis))
return (FALSE);
if (!xdr_array(xdrs, (char **)&objp->csa_referring_call_lists.
csa_referring_call_lists_val,
(uint_t *)&objp->csa_referring_call_lists.
csa_referring_call_lists_len, ~0, sizeof (referring_call_list4),
(xdrproc_t)xdr_referring_call_list4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_SEQUENCE4resok(XDR *xdrs, CB_SEQUENCE4resok *objp)
{
if (!xdr_sessionid4(xdrs, objp->csr_sessionid))
return (FALSE);
if (!xdr_sequenceid4(xdrs, &objp->csr_sequenceid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->csr_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->csr_highest_slotid))
return (FALSE);
if (!xdr_slotid4(xdrs, &objp->csr_target_highest_slotid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_SEQUENCE4res(XDR *xdrs, CB_SEQUENCE4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->csr_status))
return (FALSE);
switch (objp->csr_status) {
case NFS4_OK:
if (!xdr_CB_SEQUENCE4resok(xdrs,
&objp->CB_SEQUENCE4res_u.csr_resok4))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_CB_WANTS_CANCELLED4args(XDR *xdrs, CB_WANTS_CANCELLED4args *objp)
{
if (!xdr_bool(xdrs, &objp->cwca_contended_wants_cancelled))
return (FALSE);
if (!xdr_bool(xdrs, &objp->cwca_resourced_wants_cancelled))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_WANTS_CANCELLED4res(XDR *xdrs, CB_WANTS_CANCELLED4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cwcr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY_LOCK4args(XDR *xdrs, CB_NOTIFY_LOCK4args *objp)
{
if (!xdr_nfs_fh4(xdrs, &objp->cnla_fh))
return (FALSE);
if (!xdr_lock_owner4(xdrs, &objp->cnla_lock_owner))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY_LOCK4res(XDR *xdrs, CB_NOTIFY_LOCK4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cnlr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_deviceid_type4(XDR *xdrs, notify_deviceid_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_deviceid_delete4(XDR *xdrs, notify_deviceid_delete4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->ndd_layouttype))
return (FALSE);
if (!xdr_deviceid4(xdrs, objp->ndd_deviceid))
return (FALSE);
return (TRUE);
}
bool_t
xdr_notify_deviceid_change4(XDR *xdrs, notify_deviceid_change4 *objp)
{
if (!xdr_layouttype4(xdrs, &objp->ndc_layouttype))
return (FALSE);
if (!xdr_deviceid4(xdrs, objp->ndc_deviceid))
return (FALSE);
if (!xdr_bool(xdrs, &objp->ndc_immediate))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY_DEVICEID4args(XDR *xdrs, CB_NOTIFY_DEVICEID4args *objp)
{
if (!xdr_array(xdrs, (char **)&objp->cnda_changes.cnda_changes_val,
(uint_t *)&objp->cnda_changes.cnda_changes_len, ~0,
sizeof (notify4), (xdrproc_t)xdr_notify4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_NOTIFY_DEVICEID4res(XDR *xdrs, CB_NOTIFY_DEVICEID4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->cndr_status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_cb_argop4(XDR *xdrs, nfs_cb_argop4 *objp)
{
switch (objp->argop) {
case OP_CB_LAYOUTRECALL:
if (!xdr_CB_LAYOUTRECALL4args(xdrs,
&objp->nfs_cb_argop4_u.opcblayoutrecall))
return (FALSE);
break;
case OP_CB_NOTIFY:
if (!xdr_CB_NOTIFY4args(xdrs,
&objp->nfs_cb_argop4_u.opcbnotify))
return (FALSE);
break;
case OP_CB_PUSH_DELEG:
if (!xdr_CB_PUSH_DELEG4args(xdrs,
&objp->nfs_cb_argop4_u.opcbpush_deleg))
return (FALSE);
break;
case OP_CB_RECALL_ANY:
if (!xdr_CB_RECALL_ANY4args(xdrs,
&objp->nfs_cb_argop4_u.opcbrecall_any))
return (FALSE);
break;
case OP_CB_RECALLABLE_OBJ_AVAIL:
if (!xdr_CB_RECALLABLE_OBJ_AVAIL4args(xdrs,
&objp->nfs_cb_argop4_u.opcbrecallable_obj_avail))
return (FALSE);
break;
case OP_CB_RECALL_SLOT:
if (!xdr_CB_RECALL_SLOT4args(xdrs,
&objp->nfs_cb_argop4_u.opcbrecall_slot))
return (FALSE);
break;
case OP_CB_SEQUENCE:
if (!xdr_CB_SEQUENCE4args(xdrs,
&objp->nfs_cb_argop4_u.opcbsequence))
return (FALSE);
break;
case OP_CB_WANTS_CANCELLED:
if (!xdr_CB_WANTS_CANCELLED4args(xdrs,
&objp->nfs_cb_argop4_u.opcbwants_cancelled))
return (FALSE);
break;
case OP_CB_NOTIFY_LOCK:
if (!xdr_CB_NOTIFY_LOCK4args(xdrs,
&objp->nfs_cb_argop4_u.opcbnotify_lock))
return (FALSE);
break;
case OP_CB_NOTIFY_DEVICEID:
if (!xdr_CB_NOTIFY_DEVICEID4args(xdrs,
&objp->nfs_cb_argop4_u.opcbnotify_deviceid))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_CB_GETATTR4res(XDR *xdrs, CB_GETATTR4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->status))
return (FALSE);
switch (objp->status) {
case NFS4_OK:
if (!xdr_fattr4(xdrs, &objp->obj_attributes))
return (FALSE);
break;
}
return (TRUE);
}
bool_t
xdr_CB_RECALL4res(XDR *xdrs, CB_RECALL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_CB_ILLEGAL4res(XDR *xdrs, CB_ILLEGAL4res *objp)
{
if (!xdr_nfsstat4(xdrs, &objp->status))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_cb_resop4(XDR *xdrs, nfs_cb_resop4 *objp)
{
if (!xdr_u_int(xdrs, &objp->resop))
return (FALSE);
switch (objp->resop) {
case OP_CB_GETATTR:
if (!xdr_CB_GETATTR4res(xdrs,
&objp->nfs_cb_resop4_u.opcbgetattr))
return (FALSE);
break;
case OP_CB_RECALL:
if (!xdr_CB_RECALL4res(xdrs,
&objp->nfs_cb_resop4_u.opcbrecall))
return (FALSE);
break;
case OP_CB_LAYOUTRECALL:
if (!xdr_CB_LAYOUTRECALL4res(xdrs,
&objp->nfs_cb_resop4_u.opcblayoutrecall))
return (FALSE);
break;
case OP_CB_NOTIFY:
if (!xdr_CB_NOTIFY4res(xdrs,
&objp->nfs_cb_resop4_u.opcbnotify))
return (FALSE);
break;
case OP_CB_PUSH_DELEG:
if (!xdr_CB_PUSH_DELEG4res(xdrs,
&objp->nfs_cb_resop4_u.opcbpush_deleg))
return (FALSE);
break;
case OP_CB_RECALL_ANY:
if (!xdr_CB_RECALL_ANY4res(xdrs,
&objp->nfs_cb_resop4_u.opcbrecall_any))
return (FALSE);
break;
case OP_CB_RECALLABLE_OBJ_AVAIL:
if (!xdr_CB_RECALLABLE_OBJ_AVAIL4res(xdrs,
&objp->nfs_cb_resop4_u.opcbrecallable_obj_avail))
return (FALSE);
break;
case OP_CB_RECALL_SLOT:
if (!xdr_CB_RECALL_SLOT4res(xdrs,
&objp->nfs_cb_resop4_u.opcbrecall_slot))
return (FALSE);
break;
case OP_CB_SEQUENCE:
if (!xdr_CB_SEQUENCE4res(xdrs,
&objp->nfs_cb_resop4_u.opcbsequence))
return (FALSE);
break;
case OP_CB_WANTS_CANCELLED:
if (!xdr_CB_WANTS_CANCELLED4res(xdrs,
&objp->nfs_cb_resop4_u.opcbwants_cancelled))
return (FALSE);
break;
case OP_CB_NOTIFY_LOCK:
if (!xdr_CB_NOTIFY_LOCK4res(xdrs,
&objp->nfs_cb_resop4_u.opcbnotify_lock))
return (FALSE);
break;
case OP_CB_NOTIFY_DEVICEID:
if (!xdr_CB_NOTIFY_DEVICEID4res(xdrs,
&objp->nfs_cb_resop4_u.opcbnotify_deviceid))
return (FALSE);
break;
case OP_CB_ILLEGAL:
if (!xdr_CB_ILLEGAL4res(xdrs,
&objp->nfs_cb_resop4_u.opcbillegal))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_clientid4(XDR *xdrs, clientid4 *objp)
{
if (!xdr_uint64_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_component4(XDR *xdrs, component4 *objp)
{
if (!xdr_utf8string(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_count4(XDR *xdrs, count4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_fsid4(XDR *xdrs, fsid4 *objp)
{
if (!xdr_uint64_t(xdrs, &objp->major))
return (FALSE);
if (!xdr_uint64_t(xdrs, &objp->minor))
return (FALSE);
return (TRUE);
}
bool_t
xdr_length4(XDR *xdrs, length4 *objp)
{
if (!xdr_uint64_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_limit_by4(XDR *xdrs, limit_by4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_lock_owner4(XDR *xdrs, lock_owner4 *objp)
{
if (!xdr_clientid4(xdrs, &objp->clientid))
return (FALSE);
if (!xdr_bytes(xdrs, (char **)&objp->owner_val,
(uint_t *)&objp->owner_len, NFS4_OPAQUE_LIMIT))
return (FALSE);
return (TRUE);
}
bool_t
xdr_mode4(XDR *xdrs, mode4 *objp)
{
if (!xdr_uint32_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_netaddr4(XDR *xdrs, netaddr4 *objp)
{
if (!xdr_string(xdrs, &objp->na_r_netid, ~0))
return (FALSE);
if (!xdr_string(xdrs, &objp->na_r_addr, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_cookie4(XDR *xdrs, nfs_cookie4 *objp)
{
if (!xdr_uint64_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_modified_limit4(XDR *xdrs, nfs_modified_limit4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->num_blocks))
return (FALSE);
if (!xdr_uint32_t(xdrs, &objp->bytes_per_block))
return (FALSE);
return (TRUE);
}
bool_t
xdr_nfs_space_limit4(XDR *xdrs, nfs_space_limit4 *objp)
{
if (!xdr_limit_by4(xdrs, &objp->limitby))
return (FALSE);
switch (objp->limitby) {
case NFS_LIMIT_SIZE:
if (!xdr_uint64_t(xdrs, &objp->nfs_space_limit4_u.filesize))
return (FALSE);
break;
case NFS_LIMIT_BLOCKS:
if (!xdr_nfs_modified_limit4(xdrs,
&objp->nfs_space_limit4_u.mod_blocks))
return (FALSE);
break;
default:
return (FALSE);
}
return (TRUE);
}
bool_t
xdr_nfsstat4(XDR *xdrs, nfsstat4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_offset4(XDR *xdrs, offset4 *objp)
{
if (!xdr_uint64_t(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_claim_type4(XDR *xdrs, open_claim_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_delegation_type4(XDR *xdrs, open_delegation_type4 *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_read_delegation4(XDR *xdrs, open_read_delegation4 *objp)
{
if (!xdr_stateid4(xdrs, &objp->stateid))
return (FALSE);
if (!xdr_bool(xdrs, &objp->recall))
return (FALSE);
if (!xdr_nfsace4(xdrs, &objp->permissions))
return (FALSE);
return (TRUE);
}
bool_t
xdr_open_write_delegation4(XDR *xdrs, open_write_delegation4 *objp)
{
if (!xdr_stateid4(xdrs, &objp->stateid))
return (FALSE);
if (!xdr_bool(xdrs, &objp->recall))
return (FALSE);
if (!xdr_nfs_space_limit4(xdrs, &objp->space_limit))
return (FALSE);
if (!xdr_nfsace4(xdrs, &objp->permissions))
return (FALSE);
return (TRUE);
}
bool_t
xdr_pathname4(XDR *xdrs, pathname4 *objp)
{
if (!xdr_array(xdrs, (char **)&objp->pathname4_val,
(uint_t *)&objp->pathname4_len, ~0, sizeof (component4),
(xdrproc_t)xdr_component4))
return (FALSE);
return (TRUE);
}
bool_t
xdr_sec_oid4(XDR *xdrs, sec_oid4 *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->sec_oid4_val,
(uint_t *)&objp->sec_oid4_len, ~0))
return (FALSE);
return (TRUE);
}
bool_t
xdr_rpc_gss_svc_t(XDR *xdrs, rpc_gss_svc_t *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_stateid4(XDR *xdrs, stateid4 *objp)
{
if (!xdr_uint32_t(xdrs, &objp->seqid))
return (FALSE);
if (!xdr_opaque(xdrs, objp->other, 12))
return (FALSE);
return (TRUE);
}
bool_t
xdr_utf8str_cis(XDR *xdrs, utf8str_cis *objp)
{
if (!xdr_utf8string(xdrs, objp))
return (FALSE);
return (TRUE);
}
bool_t
xdr_utf8str_cs(XDR *xdrs, utf8str_cs *objp)
{
if (!xdr_utf8string(xdrs, objp))
return (FALSE);
return (TRUE);
}