/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#include "config.h"
#include "ndmp4.h"
#ifndef NDMOS_OPTION_NO_NDMP4
#define ndmp4_u_quad unsigned long long
extern bool_t xdr_ndmp4_u_quad();

bool_t
xdr__ndmp4_u_quad (XDR *xdrs, _ndmp4_u_quad *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->high))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->low))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_header_message_type (XDR *xdrs, ndmp4_header_message_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_error (XDR *xdrs, ndmp4_error *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_message (XDR *xdrs, ndmp4_message *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_header (XDR *xdrs, ndmp4_header *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->sequence))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->time_stamp))
		 return FALSE;
	 if (!xdr_ndmp4_header_message_type (xdrs, &objp->message_type))
		 return FALSE;
	 if (!xdr_ndmp4_message (xdrs, &objp->message_code))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->reply_sequence))
		 return FALSE;
	 if (!xdr_ndmp4_error (xdrs, &objp->error_code))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_pval (XDR *xdrs, ndmp4_pval *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->value, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connect_open_request (XDR *xdrs, ndmp4_connect_open_request *objp)
{
	register int32_t *buf;

	 if (!xdr_u_short (xdrs, &objp->protocol_version))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connect_open_reply (XDR *xdrs, ndmp4_connect_open_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_auth_type (XDR *xdrs, ndmp4_auth_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_auth_text (XDR *xdrs, ndmp4_auth_text *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->auth_id, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->auth_password, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_auth_md5 (XDR *xdrs, ndmp4_auth_md5 *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_string (xdrs, &objp->auth_id, ~0))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->auth_digest, 16))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_auth_data (XDR *xdrs, ndmp4_auth_data *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_auth_type (xdrs, &objp->auth_type))
		 return FALSE;
	switch (objp->auth_type) {
	case NDMP4_AUTH_NONE:
		break;
	case NDMP4_AUTH_TEXT:
		 if (!xdr_ndmp4_auth_text (xdrs, &objp->ndmp4_auth_data_u.auth_text))
			 return FALSE;
		break;
	case NDMP4_AUTH_MD5:
		 if (!xdr_ndmp4_auth_md5 (xdrs, &objp->ndmp4_auth_data_u.auth_md5))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_ndmp4_auth_attr (XDR *xdrs, ndmp4_auth_attr *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_auth_type (xdrs, &objp->auth_type))
		 return FALSE;
	switch (objp->auth_type) {
	case NDMP4_AUTH_NONE:
		break;
	case NDMP4_AUTH_TEXT:
		break;
	case NDMP4_AUTH_MD5:
		 if (!xdr_opaque (xdrs, objp->ndmp4_auth_attr_u.challenge, 64))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_ndmp4_connect_client_auth_request (XDR *xdrs, ndmp4_connect_client_auth_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_auth_data (xdrs, &objp->auth_data))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connect_client_auth_reply (XDR *xdrs, ndmp4_connect_client_auth_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connect_server_auth_request (XDR *xdrs, ndmp4_connect_server_auth_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_auth_attr (xdrs, &objp->client_attr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connect_server_auth_reply (XDR *xdrs, ndmp4_connect_server_auth_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_auth_data (xdrs, &objp->server_result))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_host_info_reply (XDR *xdrs, ndmp4_config_get_host_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->hostname, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->os_type, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->os_vers, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->hostid, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_server_info_reply (XDR *xdrs, ndmp4_config_get_server_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->vendor_name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->product_name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->revision_number, ~0))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->auth_type.auth_type_val, (u_int *) &objp->auth_type.auth_type_len, ~0,
		sizeof (ndmp4_auth_type), (xdrproc_t) xdr_ndmp4_auth_type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_addr_type (XDR *xdrs, ndmp4_addr_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_connection_type_reply (XDR *xdrs, ndmp4_config_get_connection_type_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->addr_types.addr_types_val, (u_int *) &objp->addr_types.addr_types_len, ~0,
		sizeof (ndmp4_addr_type), (xdrproc_t) xdr_ndmp4_addr_type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_auth_attr_request (XDR *xdrs, ndmp4_config_get_auth_attr_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_auth_type (xdrs, &objp->auth_type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_auth_attr_reply (XDR *xdrs, ndmp4_config_get_auth_attr_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_auth_attr (xdrs, &objp->server_attr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_butype_info (XDR *xdrs, ndmp4_butype_info *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->butype_name, ~0))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->default_env.default_env_val, (u_int *) &objp->default_env.default_env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->attrs))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_butype_info_reply (XDR *xdrs, ndmp4_config_get_butype_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->butype_info.butype_info_val, (u_int *) &objp->butype_info.butype_info_len, ~0,
		sizeof (ndmp4_butype_info), (xdrproc_t) xdr_ndmp4_butype_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_fs_info (XDR *xdrs, ndmp4_fs_info *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->unsupported))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->fs_type, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->fs_logical_device, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->fs_physical_device, ~0))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->total_size))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->used_size))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->avail_size))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->total_inodes))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->used_inodes))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->fs_env.fs_env_val, (u_int *) &objp->fs_env.fs_env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->fs_status, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_fs_info_reply (XDR *xdrs, ndmp4_config_get_fs_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->fs_info.fs_info_val, (u_int *) &objp->fs_info.fs_info_len, ~0,
		sizeof (ndmp4_fs_info), (xdrproc_t) xdr_ndmp4_fs_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_device_capability (XDR *xdrs, ndmp4_device_capability *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->device, ~0))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->attr))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->capability.capability_val, (u_int *) &objp->capability.capability_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_device_info (XDR *xdrs, ndmp4_device_info *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->model, ~0))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->caplist.caplist_val, (u_int *) &objp->caplist.caplist_len, ~0,
		sizeof (ndmp4_device_capability), (xdrproc_t) xdr_ndmp4_device_capability))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_tape_info_reply (XDR *xdrs, ndmp4_config_get_tape_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->tape_info.tape_info_val, (u_int *) &objp->tape_info.tape_info_len, ~0,
		sizeof (ndmp4_device_info), (xdrproc_t) xdr_ndmp4_device_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_scsi_info_reply (XDR *xdrs, ndmp4_config_get_scsi_info_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->scsi_info.scsi_info_val, (u_int *) &objp->scsi_info.scsi_info_len, ~0,
		sizeof (ndmp4_device_info), (xdrproc_t) xdr_ndmp4_device_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_class_list (XDR *xdrs, ndmp4_class_list *objp)
{
	register int32_t *buf;

	 if (!xdr_u_short (xdrs, &objp->class_id))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->class_version.class_version_val, (u_int *) &objp->class_version.class_version_len, ~0,
		sizeof (u_short), (xdrproc_t) xdr_u_short))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_class_version (XDR *xdrs, ndmp4_class_version *objp)
{
	register int32_t *buf;

	 if (!xdr_u_short (xdrs, &objp->class_id))
		 return FALSE;
	 if (!xdr_u_short (xdrs, &objp->class_version))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_get_ext_list_reply (XDR *xdrs, ndmp4_config_get_ext_list_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->class_list.class_list_val, (u_int *) &objp->class_list.class_list_len, ~0,
		sizeof (ndmp4_class_list), (xdrproc_t) xdr_ndmp4_class_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_set_ext_list_request (XDR *xdrs, ndmp4_config_set_ext_list_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->ndmp4_accepted_ext.ndmp4_accepted_ext_val, (u_int *) &objp->ndmp4_accepted_ext.ndmp4_accepted_ext_len, ~0,
		sizeof (ndmp4_class_list), (xdrproc_t) xdr_ndmp4_class_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_config_set_ext_list_reply (XDR *xdrs, ndmp4_config_set_ext_list_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_open_request (XDR *xdrs, ndmp4_scsi_open_request *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->device, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_open_reply (XDR *xdrs, ndmp4_scsi_open_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_close_reply (XDR *xdrs, ndmp4_scsi_close_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_get_state_reply (XDR *xdrs, ndmp4_scsi_get_state_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_short (xdrs, &objp->target_controller))
		 return FALSE;
	 if (!xdr_short (xdrs, &objp->target_id))
		 return FALSE;
	 if (!xdr_short (xdrs, &objp->target_lun))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_reset_device_reply (XDR *xdrs, ndmp4_scsi_reset_device_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_execute_cdb_request (XDR *xdrs, ndmp4_execute_cdb_request *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->flags))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->timeout))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->datain_len))
				 return FALSE;

		} else {
		IXDR_PUT_U_LONG(buf, objp->flags);
		IXDR_PUT_U_LONG(buf, objp->timeout);
		IXDR_PUT_U_LONG(buf, objp->datain_len);
		}
		 if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
			 return FALSE;
		 if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->flags))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->timeout))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->datain_len))
				 return FALSE;

		} else {
		objp->flags = IXDR_GET_U_LONG(buf);
		objp->timeout = IXDR_GET_U_LONG(buf);
		objp->datain_len = IXDR_GET_U_LONG(buf);
		}
		 if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
			 return FALSE;
		 if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_u_long (xdrs, &objp->flags))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->timeout))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->datain_len))
		 return FALSE;
	 if (!xdr_bytes (xdrs, (char **)&objp->cdb.cdb_val, (u_int *) &objp->cdb.cdb_len, ~0))
		 return FALSE;
	 if (!xdr_bytes (xdrs, (char **)&objp->dataout.dataout_val, (u_int *) &objp->dataout.dataout_len, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_execute_cdb_reply (XDR *xdrs, ndmp4_execute_cdb_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_u_char (xdrs, &objp->status))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->dataout_len))
		 return FALSE;
	 if (!xdr_bytes (xdrs, (char **)&objp->datain.datain_val, (u_int *) &objp->datain.datain_len, ~0))
		 return FALSE;
	 if (!xdr_bytes (xdrs, (char **)&objp->ext_sense.ext_sense_val, (u_int *) &objp->ext_sense.ext_sense_len, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_execute_cdb_request (XDR *xdrs, ndmp4_scsi_execute_cdb_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_execute_cdb_request (xdrs, objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_scsi_execute_cdb_reply (XDR *xdrs, ndmp4_scsi_execute_cdb_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_execute_cdb_reply (xdrs, objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_open_mode (XDR *xdrs, ndmp4_tape_open_mode *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_open_request (XDR *xdrs, ndmp4_tape_open_request *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->device, ~0))
		 return FALSE;
	 if (!xdr_ndmp4_tape_open_mode (xdrs, &objp->mode))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_open_reply (XDR *xdrs, ndmp4_tape_open_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_close_reply (XDR *xdrs, ndmp4_tape_close_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_get_state_reply (XDR *xdrs, ndmp4_tape_get_state_reply *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_u_long (xdrs, &objp->unsupported))
			 return FALSE;
		 if (!xdr_ndmp4_error (xdrs, &objp->error))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->flags))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->file_num))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->soft_errors))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->block_size))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->blockno))
				 return FALSE;

		} else {
		IXDR_PUT_U_LONG(buf, objp->flags);
		IXDR_PUT_U_LONG(buf, objp->file_num);
		IXDR_PUT_U_LONG(buf, objp->soft_errors);
		IXDR_PUT_U_LONG(buf, objp->block_size);
		IXDR_PUT_U_LONG(buf, objp->blockno);
		}
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->total_space))
			 return FALSE;
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->space_remain))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_u_long (xdrs, &objp->unsupported))
			 return FALSE;
		 if (!xdr_ndmp4_error (xdrs, &objp->error))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->flags))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->file_num))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->soft_errors))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->block_size))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->blockno))
				 return FALSE;

		} else {
		objp->flags = IXDR_GET_U_LONG(buf);
		objp->file_num = IXDR_GET_U_LONG(buf);
		objp->soft_errors = IXDR_GET_U_LONG(buf);
		objp->block_size = IXDR_GET_U_LONG(buf);
		objp->blockno = IXDR_GET_U_LONG(buf);
		}
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->total_space))
			 return FALSE;
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->space_remain))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_u_long (xdrs, &objp->unsupported))
		 return FALSE;
	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->flags))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->file_num))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->soft_errors))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->block_size))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->blockno))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->total_space))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->space_remain))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_mtio_op (XDR *xdrs, ndmp4_tape_mtio_op *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_mtio_request (XDR *xdrs, ndmp4_tape_mtio_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_tape_mtio_op (xdrs, &objp->tape_op))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_mtio_reply (XDR *xdrs, ndmp4_tape_mtio_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->resid_count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_write_request (XDR *xdrs, ndmp4_tape_write_request *objp)
{
	register int32_t *buf;

	 if (!xdr_bytes (xdrs, (char **)&objp->data_out.data_out_val, (u_int *) &objp->data_out.data_out_len, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_write_reply (XDR *xdrs, ndmp4_tape_write_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_read_request (XDR *xdrs, ndmp4_tape_read_request *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_read_reply (XDR *xdrs, ndmp4_tape_read_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_bytes (xdrs, (char **)&objp->data_in.data_in_val, (u_int *) &objp->data_in.data_in_len, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_execute_cdb_request (XDR *xdrs, ndmp4_tape_execute_cdb_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_scsi_execute_cdb_request (xdrs, objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tape_execute_cdb_reply (XDR *xdrs, ndmp4_tape_execute_cdb_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_scsi_execute_cdb_reply (xdrs, objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_operation (XDR *xdrs, ndmp4_data_operation *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_state (XDR *xdrs, ndmp4_data_state *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_halt_reason (XDR *xdrs, ndmp4_data_halt_reason *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_tcp_addr (XDR *xdrs, ndmp4_tcp_addr *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->ip_addr))
		 return FALSE;
	 if (!xdr_u_short (xdrs, &objp->port))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->addr_env.addr_env_val, (u_int *) &objp->addr_env.addr_env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_ipc_addr (XDR *xdrs, ndmp4_ipc_addr *objp)
{
	register int32_t *buf;

	 if (!xdr_bytes (xdrs, (char **)&objp->comm_data.comm_data_val, (u_int *) &objp->comm_data.comm_data_len, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_addr (XDR *xdrs, ndmp4_addr *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_addr_type (xdrs, &objp->addr_type))
		 return FALSE;
	switch (objp->addr_type) {
	case NDMP4_ADDR_LOCAL:
		break;
	case NDMP4_ADDR_TCP:
		 if (!xdr_array (xdrs, (char **)&objp->ndmp4_addr_u.tcp_addr.tcp_addr_val, (u_int *) &objp->ndmp4_addr_u.tcp_addr.tcp_addr_len, ~0,
			sizeof (ndmp4_tcp_addr), (xdrproc_t) xdr_ndmp4_tcp_addr))
			 return FALSE;
		break;
	case NDMP4_ADDR_IPC:
		 if (!xdr_ndmp4_ipc_addr (xdrs, &objp->ndmp4_addr_u.ipc_addr))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_ndmp4_data_get_state_reply (XDR *xdrs, ndmp4_data_get_state_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->unsupported))
		 return FALSE;
	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_data_operation (xdrs, &objp->operation))
		 return FALSE;
	 if (!xdr_ndmp4_data_state (xdrs, &objp->state))
		 return FALSE;
	 if (!xdr_ndmp4_data_halt_reason (xdrs, &objp->halt_reason))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->bytes_processed))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->est_bytes_remain))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->est_time_remain))
		 return FALSE;
	 if (!xdr_ndmp4_addr (xdrs, &objp->data_connection_addr))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->read_offset))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->read_length))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_listen_request (XDR *xdrs, ndmp4_data_listen_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_addr_type (xdrs, &objp->addr_type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_listen_reply (XDR *xdrs, ndmp4_data_listen_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_addr (xdrs, &objp->connect_addr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_connect_request (XDR *xdrs, ndmp4_data_connect_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_addr (xdrs, &objp->addr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_connect_reply (XDR *xdrs, ndmp4_data_connect_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_backup_request (XDR *xdrs, ndmp4_data_start_backup_request *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->butype_name, ~0))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_backup_reply (XDR *xdrs, ndmp4_data_start_backup_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_name (XDR *xdrs, ndmp4_name *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->original_path, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->destination_path, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->other_name, ~0))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->node))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->fh_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_recover_request (XDR *xdrs, ndmp4_data_start_recover_request *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->nlist.nlist_val, (u_int *) &objp->nlist.nlist_len, ~0,
		sizeof (ndmp4_name), (xdrproc_t) xdr_ndmp4_name))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->butype_name, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_recover_reply (XDR *xdrs, ndmp4_data_start_recover_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_recover_filehist_request (XDR *xdrs, ndmp4_data_start_recover_filehist_request *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->nlist.nlist_val, (u_int *) &objp->nlist.nlist_len, ~0,
		sizeof (ndmp4_name), (xdrproc_t) xdr_ndmp4_name))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->butype_name, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_start_recover_filehist_reply (XDR *xdrs, ndmp4_data_start_recover_filehist_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_abort_reply (XDR *xdrs, ndmp4_data_abort_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_stop_reply (XDR *xdrs, ndmp4_data_stop_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_data_get_env_reply (XDR *xdrs, ndmp4_data_get_env_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0,
		sizeof (ndmp4_pval), (xdrproc_t) xdr_ndmp4_pval))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_mode (XDR *xdrs, ndmp4_mover_mode *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_state (XDR *xdrs, ndmp4_mover_state *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_pause_reason (XDR *xdrs, ndmp4_mover_pause_reason *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_halt_reason (XDR *xdrs, ndmp4_mover_halt_reason *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_set_record_size_request (XDR *xdrs, ndmp4_mover_set_record_size_request *objp)
{
	register int32_t *buf;

	 if (!xdr_u_long (xdrs, &objp->len))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_set_record_size_reply (XDR *xdrs, ndmp4_mover_set_record_size_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_set_window_request (XDR *xdrs, ndmp4_mover_set_window_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_u_quad (xdrs, &objp->offset))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->length))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_set_window_reply (XDR *xdrs, ndmp4_mover_set_window_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_connect_request (XDR *xdrs, ndmp4_mover_connect_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_mover_mode (xdrs, &objp->mode))
		 return FALSE;
	 if (!xdr_ndmp4_addr (xdrs, &objp->addr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_connect_reply (XDR *xdrs, ndmp4_mover_connect_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_listen_request (XDR *xdrs, ndmp4_mover_listen_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_mover_mode (xdrs, &objp->mode))
		 return FALSE;
	 if (!xdr_ndmp4_addr_type (xdrs, &objp->addr_type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_listen_reply (XDR *xdrs, ndmp4_mover_listen_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_addr (xdrs, &objp->connect_addr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_read_request (XDR *xdrs, ndmp4_mover_read_request *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_u_quad (xdrs, &objp->offset))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->length))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_read_reply (XDR *xdrs, ndmp4_mover_read_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_get_state_reply (XDR *xdrs, ndmp4_mover_get_state_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_ndmp4_mover_mode (xdrs, &objp->mode))
		 return FALSE;
	 if (!xdr_ndmp4_mover_state (xdrs, &objp->state))
		 return FALSE;
	 if (!xdr_ndmp4_mover_pause_reason (xdrs, &objp->pause_reason))
		 return FALSE;
	 if (!xdr_ndmp4_mover_halt_reason (xdrs, &objp->halt_reason))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->record_size))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->record_num))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->bytes_moved))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->seek_position))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->bytes_left_to_read))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->window_offset))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->window_length))
		 return FALSE;
	 if (!xdr_ndmp4_addr (xdrs, &objp->data_connection_addr))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_continue_reply (XDR *xdrs, ndmp4_mover_continue_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_close_reply (XDR *xdrs, ndmp4_mover_close_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_abort_reply (XDR *xdrs, ndmp4_mover_abort_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_mover_stop_reply (XDR *xdrs, ndmp4_mover_stop_reply *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_error (xdrs, &objp->error))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_notify_data_halted_post (XDR *xdrs, ndmp4_notify_data_halted_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_data_halt_reason (xdrs, &objp->reason))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_connection_status_reason (XDR *xdrs, ndmp4_connection_status_reason *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_notify_connection_status_post (XDR *xdrs, ndmp4_notify_connection_status_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_connection_status_reason (xdrs, &objp->reason))
		 return FALSE;
	 if (!xdr_u_short (xdrs, &objp->protocol_version))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->text_reason, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_notify_mover_halted_post (XDR *xdrs, ndmp4_notify_mover_halted_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_mover_halt_reason (xdrs, &objp->reason))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_notify_mover_paused_post (XDR *xdrs, ndmp4_notify_mover_paused_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_mover_pause_reason (xdrs, &objp->reason))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->seek_position))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_notify_data_read_post (XDR *xdrs, ndmp4_notify_data_read_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_u_quad (xdrs, &objp->offset))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->length))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_has_associated_message (XDR *xdrs, ndmp4_has_associated_message *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_log_type (XDR *xdrs, ndmp4_log_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_log_message_post (XDR *xdrs, ndmp4_log_message_post *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_log_type (xdrs, &objp->log_type))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->message_id))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->entry, ~0))
		 return FALSE;
	 if (!xdr_ndmp4_has_associated_message (xdrs, &objp->associated_message_valid))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->associated_message_sequence))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_recovery_status (XDR *xdrs, ndmp4_recovery_status *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_log_file_post (XDR *xdrs, ndmp4_log_file_post *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->name, ~0))
		 return FALSE;
	 if (!xdr_ndmp4_recovery_status (xdrs, &objp->recovery_status))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_fs_type (XDR *xdrs, ndmp4_fs_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_path (XDR *xdrs, ndmp4_path *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, objp, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_nt_path (XDR *xdrs, ndmp4_nt_path *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_path (xdrs, &objp->nt_path))
		 return FALSE;
	 if (!xdr_ndmp4_path (xdrs, &objp->dos_path))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_file_name (XDR *xdrs, ndmp4_file_name *objp)
{
	register int32_t *buf;

	 if (!xdr_ndmp4_fs_type (xdrs, &objp->fs_type))
		 return FALSE;
	switch (objp->fs_type) {
	case NDMP4_FS_UNIX:
		 if (!xdr_ndmp4_path (xdrs, &objp->ndmp4_file_name_u.unix_name))
			 return FALSE;
		break;
	case NDMP4_FS_NT:
		 if (!xdr_ndmp4_nt_path (xdrs, &objp->ndmp4_file_name_u.nt_name))
			 return FALSE;
		break;
	default:
		 if (!xdr_ndmp4_path (xdrs, &objp->ndmp4_file_name_u.other_name))
			 return FALSE;
		break;
	}
	return TRUE;
}

bool_t
xdr_ndmp4_file_type (XDR *xdrs, ndmp4_file_type *objp)
{
	register int32_t *buf;

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_file_stat (XDR *xdrs, ndmp4_file_stat *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_u_long (xdrs, &objp->unsupported))
			 return FALSE;
		 if (!xdr_ndmp4_fs_type (xdrs, &objp->fs_type))
			 return FALSE;
		 if (!xdr_ndmp4_file_type (xdrs, &objp->ftype))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->mtime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->atime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->ctime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->owner))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->group))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->fattr))
				 return FALSE;

		} else {
		IXDR_PUT_U_LONG(buf, objp->mtime);
		IXDR_PUT_U_LONG(buf, objp->atime);
		IXDR_PUT_U_LONG(buf, objp->ctime);
		IXDR_PUT_U_LONG(buf, objp->owner);
		IXDR_PUT_U_LONG(buf, objp->group);
		IXDR_PUT_U_LONG(buf, objp->fattr);
		}
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->size))
			 return FALSE;
		 if (!xdr_u_long (xdrs, &objp->links))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_u_long (xdrs, &objp->unsupported))
			 return FALSE;
		 if (!xdr_ndmp4_fs_type (xdrs, &objp->fs_type))
			 return FALSE;
		 if (!xdr_ndmp4_file_type (xdrs, &objp->ftype))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_u_long (xdrs, &objp->mtime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->atime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->ctime))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->owner))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->group))
				 return FALSE;
			 if (!xdr_u_long (xdrs, &objp->fattr))
				 return FALSE;

		} else {
		objp->mtime = IXDR_GET_U_LONG(buf);
		objp->atime = IXDR_GET_U_LONG(buf);
		objp->ctime = IXDR_GET_U_LONG(buf);
		objp->owner = IXDR_GET_U_LONG(buf);
		objp->group = IXDR_GET_U_LONG(buf);
		objp->fattr = IXDR_GET_U_LONG(buf);
		}
		 if (!xdr_ndmp4_u_quad (xdrs, &objp->size))
			 return FALSE;
		 if (!xdr_u_long (xdrs, &objp->links))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_u_long (xdrs, &objp->unsupported))
		 return FALSE;
	 if (!xdr_ndmp4_fs_type (xdrs, &objp->fs_type))
		 return FALSE;
	 if (!xdr_ndmp4_file_type (xdrs, &objp->ftype))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->mtime))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->atime))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->ctime))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->owner))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->group))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->fattr))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->size))
		 return FALSE;
	 if (!xdr_u_long (xdrs, &objp->links))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_file (XDR *xdrs, ndmp4_file *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0,
		sizeof (ndmp4_file_name), (xdrproc_t) xdr_ndmp4_file_name))
		 return FALSE;
	 if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0,
		sizeof (ndmp4_file_stat), (xdrproc_t) xdr_ndmp4_file_stat))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->node))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->fh_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_fh_add_file_post (XDR *xdrs, ndmp4_fh_add_file_post *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->files.files_val, (u_int *) &objp->files.files_len, ~0,
		sizeof (ndmp4_file), (xdrproc_t) xdr_ndmp4_file))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_dir (XDR *xdrs, ndmp4_dir *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0,
		sizeof (ndmp4_file_name), (xdrproc_t) xdr_ndmp4_file_name))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->node))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->parent))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_fh_add_dir_post (XDR *xdrs, ndmp4_fh_add_dir_post *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->dirs.dirs_val, (u_int *) &objp->dirs.dirs_len, ~0,
		sizeof (ndmp4_dir), (xdrproc_t) xdr_ndmp4_dir))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_node (XDR *xdrs, ndmp4_node *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0,
		sizeof (ndmp4_file_stat), (xdrproc_t) xdr_ndmp4_file_stat))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->node))
		 return FALSE;
	 if (!xdr_ndmp4_u_quad (xdrs, &objp->fh_info))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_ndmp4_fh_add_node_post (XDR *xdrs, ndmp4_fh_add_node_post *objp)
{
	register int32_t *buf;

	 if (!xdr_array (xdrs, (char **)&objp->nodes.nodes_val, (u_int *) &objp->nodes.nodes_len, ~0,
		sizeof (ndmp4_node), (xdrproc_t) xdr_ndmp4_node))
		 return FALSE;
	return TRUE;
}
#endif /* !NDMOS_OPTION_NO_NDMP4 */
