X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ndmp-src%2Fndmp3_xdr.c;fp=ndmp-src%2Fndmp3_xdr.c;h=621c665ecd0089ea4d3feab7e1dd96dd7a0938c9;hb=fd48f3e498442f0cbff5f3606c7c403d0566150e;hp=0000000000000000000000000000000000000000;hpb=96f35b20267e8b1a1c846d476f27fcd330e0b018;p=debian%2Famanda diff --git a/ndmp-src/ndmp3_xdr.c b/ndmp-src/ndmp3_xdr.c new file mode 100644 index 0000000..621c665 --- /dev/null +++ b/ndmp-src/ndmp3_xdr.c @@ -0,0 +1,1489 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "ndmp3.h" +#ifndef NDMOS_OPTION_NO_NDMP3 +#define ndmp3_u_quad unsigned long long +extern bool_t xdr_ndmp3_u_quad(); + +bool_t +xdr__ndmp3_u_quad (XDR *xdrs, _ndmp3_u_quad *objp) +{ + if (!xdr_u_long (xdrs, &objp->high)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->low)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_pval (XDR *xdrs, ndmp3_pval *objp) +{ + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->value, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_error (XDR *xdrs, ndmp3_error *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_header_message_type (XDR *xdrs, ndmp3_header_message_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_message (XDR *xdrs, ndmp3_message *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_header (XDR *xdrs, ndmp3_header *objp) +{ + if (!xdr_u_long (xdrs, &objp->sequence)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->time_stamp)) + return FALSE; + if (!xdr_ndmp3_header_message_type (xdrs, &objp->message_type)) + return FALSE; + if (!xdr_ndmp3_message (xdrs, &objp->message)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->reply_sequence)) + return FALSE; + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_connect_open_request (XDR *xdrs, ndmp3_connect_open_request *objp) +{ + if (!xdr_u_short (xdrs, &objp->protocol_version)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_connect_open_reply (XDR *xdrs, ndmp3_connect_open_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_auth_type (XDR *xdrs, ndmp3_auth_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_auth_text (XDR *xdrs, ndmp3_auth_text *objp) +{ + 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_ndmp3_auth_md5 (XDR *xdrs, ndmp3_auth_md5 *objp) +{ + 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_ndmp3_auth_data (XDR *xdrs, ndmp3_auth_data *objp) +{ + if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type)) + return FALSE; + switch (objp->auth_type) { + case NDMP3_AUTH_NONE: + break; + case NDMP3_AUTH_TEXT: + if (!xdr_ndmp3_auth_text (xdrs, &objp->ndmp3_auth_data_u.auth_text)) + return FALSE; + break; + case NDMP3_AUTH_MD5: + if (!xdr_ndmp3_auth_md5 (xdrs, &objp->ndmp3_auth_data_u.auth_md5)) + return FALSE; + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_ndmp3_connect_client_auth_request (XDR *xdrs, ndmp3_connect_client_auth_request *objp) +{ + if (!xdr_ndmp3_auth_data (xdrs, &objp->auth_data)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_connect_client_auth_reply (XDR *xdrs, ndmp3_connect_client_auth_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_auth_attr (XDR *xdrs, ndmp3_auth_attr *objp) +{ + if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type)) + return FALSE; + switch (objp->auth_type) { + case NDMP3_AUTH_NONE: + break; + case NDMP3_AUTH_TEXT: + break; + case NDMP3_AUTH_MD5: + if (!xdr_opaque (xdrs, objp->ndmp3_auth_attr_u.challenge, 64)) + return FALSE; + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_ndmp3_connect_server_auth_request (XDR *xdrs, ndmp3_connect_server_auth_request *objp) +{ + if (!xdr_ndmp3_auth_attr (xdrs, &objp->client_attr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_connect_server_auth_reply (XDR *xdrs, ndmp3_connect_server_auth_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_auth_data (xdrs, &objp->server_result)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_host_info_reply (XDR *xdrs, ndmp3_config_get_host_info_reply *objp) +{ + if (!xdr_ndmp3_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_ndmp3_addr_type (XDR *xdrs, ndmp3_addr_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_connection_type_reply (XDR *xdrs, ndmp3_config_get_connection_type_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_addr_type), (xdrproc_t) xdr_ndmp3_addr_type)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_auth_attr_request (XDR *xdrs, ndmp3_config_get_auth_attr_request *objp) +{ + if (!xdr_ndmp3_auth_type (xdrs, &objp->auth_type)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_auth_attr_reply (XDR *xdrs, ndmp3_config_get_auth_attr_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_auth_attr (xdrs, &objp->server_attr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_server_info_reply (XDR *xdrs, ndmp3_config_get_server_info_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_auth_type), (xdrproc_t) xdr_ndmp3_auth_type)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_butype_info (XDR *xdrs, ndmp3_butype_info *objp) +{ + 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 (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->attrs)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_butype_info_reply (XDR *xdrs, ndmp3_config_get_butype_info_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_butype_info), (xdrproc_t) xdr_ndmp3_butype_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fs_info (XDR *xdrs, ndmp3_fs_info *objp) +{ + if (!xdr_u_long (xdrs, &objp->invalid)) + 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_ndmp3_u_quad (xdrs, &objp->total_size)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->used_size)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->avail_size)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->total_inodes)) + return FALSE; + if (!xdr_ndmp3_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 (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + if (!xdr_string (xdrs, &objp->fs_status, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_fs_info_reply (XDR *xdrs, ndmp3_config_get_fs_info_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_fs_info), (xdrproc_t) xdr_ndmp3_fs_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_device_capability (XDR *xdrs, ndmp3_device_capability *objp) +{ + 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 (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_device_info (XDR *xdrs, ndmp3_device_info *objp) +{ + 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 (ndmp3_device_capability), (xdrproc_t) xdr_ndmp3_device_capability)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_tape_info_reply (XDR *xdrs, ndmp3_config_get_tape_info_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_device_info), (xdrproc_t) xdr_ndmp3_device_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_config_get_scsi_info_reply (XDR *xdrs, ndmp3_config_get_scsi_info_reply *objp) +{ + if (!xdr_ndmp3_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 (ndmp3_device_info), (xdrproc_t) xdr_ndmp3_device_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_open_request (XDR *xdrs, ndmp3_scsi_open_request *objp) +{ + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_open_reply (XDR *xdrs, ndmp3_scsi_open_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_close_reply (XDR *xdrs, ndmp3_scsi_close_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_get_state_reply (XDR *xdrs, ndmp3_scsi_get_state_reply *objp) +{ + if (!xdr_ndmp3_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_ndmp3_scsi_set_target_request (XDR *xdrs, ndmp3_scsi_set_target_request *objp) +{ + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + if (!xdr_u_short (xdrs, &objp->target_controller)) + return FALSE; + if (!xdr_u_short (xdrs, &objp->target_id)) + return FALSE; + if (!xdr_u_short (xdrs, &objp->target_lun)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_set_target_reply (XDR *xdrs, ndmp3_scsi_set_target_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_reset_device_reply (XDR *xdrs, ndmp3_scsi_reset_device_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_reset_bus_reply (XDR *xdrs, ndmp3_scsi_reset_bus_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_execute_cdb_request (XDR *xdrs, ndmp3_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_ndmp3_execute_cdb_reply (XDR *xdrs, ndmp3_execute_cdb_reply *objp) +{ + if (!xdr_ndmp3_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_ndmp3_scsi_execute_cdb_request (XDR *xdrs, ndmp3_scsi_execute_cdb_request *objp) +{ + if (!xdr_ndmp3_execute_cdb_request (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_scsi_execute_cdb_reply (XDR *xdrs, ndmp3_scsi_execute_cdb_reply *objp) +{ + if (!xdr_ndmp3_execute_cdb_reply (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_open_mode (XDR *xdrs, ndmp3_tape_open_mode *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_open_request (XDR *xdrs, ndmp3_tape_open_request *objp) +{ + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + if (!xdr_ndmp3_tape_open_mode (xdrs, &objp->mode)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_open_reply (XDR *xdrs, ndmp3_tape_open_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_close_reply (XDR *xdrs, ndmp3_tape_close_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_get_state_reply (XDR *xdrs, ndmp3_tape_get_state_reply *objp) +{ + register int32_t *buf; + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->total_space)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->partition)) + return FALSE; + return TRUE; + } else if (xdrs->x_op == XDR_DECODE) { + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->total_space)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->partition)) + return FALSE; + return TRUE; + } + + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->total_space)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->space_remain)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->partition)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_mtio_op (XDR *xdrs, ndmp3_tape_mtio_op *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_mtio_request (XDR *xdrs, ndmp3_tape_mtio_request *objp) +{ + if (!xdr_ndmp3_tape_mtio_op (xdrs, &objp->tape_op)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_mtio_reply (XDR *xdrs, ndmp3_tape_mtio_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->resid_count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_write_request (XDR *xdrs, ndmp3_tape_write_request *objp) +{ + 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_ndmp3_tape_write_reply (XDR *xdrs, ndmp3_tape_write_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_read_request (XDR *xdrs, ndmp3_tape_read_request *objp) +{ + if (!xdr_u_long (xdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_read_reply (XDR *xdrs, ndmp3_tape_read_reply *objp) +{ + if (!xdr_ndmp3_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_ndmp3_tape_execute_cdb_request (XDR *xdrs, ndmp3_tape_execute_cdb_request *objp) +{ + if (!xdr_ndmp3_execute_cdb_request (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tape_execute_cdb_reply (XDR *xdrs, ndmp3_tape_execute_cdb_reply *objp) +{ + if (!xdr_ndmp3_execute_cdb_reply (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_state (XDR *xdrs, ndmp3_mover_state *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_pause_reason (XDR *xdrs, ndmp3_mover_pause_reason *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_halt_reason (XDR *xdrs, ndmp3_mover_halt_reason *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_mode (XDR *xdrs, ndmp3_mover_mode *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_tcp_addr (XDR *xdrs, ndmp3_tcp_addr *objp) +{ + if (!xdr_u_long (xdrs, &objp->ip_addr)) + return FALSE; + if (!xdr_u_short (xdrs, &objp->port)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fc_addr (XDR *xdrs, ndmp3_fc_addr *objp) +{ + if (!xdr_u_long (xdrs, &objp->loop_id)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_ipc_addr (XDR *xdrs, ndmp3_ipc_addr *objp) +{ + 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_ndmp3_addr (XDR *xdrs, ndmp3_addr *objp) +{ + if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type)) + return FALSE; + switch (objp->addr_type) { + case NDMP3_ADDR_LOCAL: + break; + case NDMP3_ADDR_TCP: + if (!xdr_ndmp3_tcp_addr (xdrs, &objp->ndmp3_addr_u.tcp_addr)) + return FALSE; + break; + case NDMP3_ADDR_FC: + if (!xdr_ndmp3_fc_addr (xdrs, &objp->ndmp3_addr_u.fc_addr)) + return FALSE; + break; + case NDMP3_ADDR_IPC: + if (!xdr_ndmp3_ipc_addr (xdrs, &objp->ndmp3_addr_u.ipc_addr)) + return FALSE; + break; + default: + return FALSE; + } + return TRUE; +} + +bool_t +xdr_ndmp3_mover_get_state_reply (XDR *xdrs, ndmp3_mover_get_state_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_mover_state (xdrs, &objp->state)) + return FALSE; + if (!xdr_ndmp3_mover_pause_reason (xdrs, &objp->pause_reason)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->data_written)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->seek_position)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->bytes_left_to_read)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->window_offset)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->window_length)) + return FALSE; + if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_listen_request (XDR *xdrs, ndmp3_mover_listen_request *objp) +{ + if (!xdr_ndmp3_mover_mode (xdrs, &objp->mode)) + return FALSE; + if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_listen_reply (XDR *xdrs, ndmp3_mover_listen_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_connect_request (XDR *xdrs, ndmp3_mover_connect_request *objp) +{ + if (!xdr_ndmp3_mover_mode (xdrs, &objp->mode)) + return FALSE; + if (!xdr_ndmp3_addr (xdrs, &objp->addr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_connect_reply (XDR *xdrs, ndmp3_mover_connect_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_set_record_size_request (XDR *xdrs, ndmp3_mover_set_record_size_request *objp) +{ + if (!xdr_u_long (xdrs, &objp->len)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_set_record_size_reply (XDR *xdrs, ndmp3_mover_set_record_size_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_set_window_request (XDR *xdrs, ndmp3_mover_set_window_request *objp) +{ + if (!xdr_ndmp3_u_quad (xdrs, &objp->offset)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->length)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_set_window_reply (XDR *xdrs, ndmp3_mover_set_window_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_continue_reply (XDR *xdrs, ndmp3_mover_continue_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_abort_reply (XDR *xdrs, ndmp3_mover_abort_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_stop_reply (XDR *xdrs, ndmp3_mover_stop_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_read_request (XDR *xdrs, ndmp3_mover_read_request *objp) +{ + if (!xdr_ndmp3_u_quad (xdrs, &objp->offset)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->length)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_read_reply (XDR *xdrs, ndmp3_mover_read_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_mover_close_reply (XDR *xdrs, ndmp3_mover_close_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_operation (XDR *xdrs, ndmp3_data_operation *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_state (XDR *xdrs, ndmp3_data_state *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_halt_reason (XDR *xdrs, ndmp3_data_halt_reason *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_get_state_reply (XDR *xdrs, ndmp3_data_get_state_reply *objp) +{ + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_data_operation (xdrs, &objp->operation)) + return FALSE; + if (!xdr_ndmp3_data_state (xdrs, &objp->state)) + return FALSE; + if (!xdr_ndmp3_data_halt_reason (xdrs, &objp->halt_reason)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->bytes_processed)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->est_bytes_remain)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->est_time_remain)) + return FALSE; + if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->read_offset)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->read_length)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_backup_request (XDR *xdrs, ndmp3_data_start_backup_request *objp) +{ + if (!xdr_string (xdrs, &objp->bu_type, ~0)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0, + sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_backup_reply (XDR *xdrs, ndmp3_data_start_backup_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_name (XDR *xdrs, ndmp3_name *objp) +{ + if (!xdr_string (xdrs, &objp->original_path, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->destination_dir, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->new_name, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->other_name, ~0)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->node)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_recover_request (XDR *xdrs, ndmp3_data_start_recover_request *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0, + sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->nlist.nlist_val, (u_int *) &objp->nlist.nlist_len, ~0, + sizeof (ndmp3_name), (xdrproc_t) xdr_ndmp3_name)) + return FALSE; + if (!xdr_string (xdrs, &objp->bu_type, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_recover_reply (XDR *xdrs, ndmp3_data_start_recover_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_recover_filehist_request (XDR *xdrs, ndmp3_data_start_recover_filehist_request *objp) +{ + if (!xdr_ndmp3_data_start_recover_request (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_start_recover_filehist_reply (XDR *xdrs, ndmp3_data_start_recover_filehist_reply *objp) +{ + if (!xdr_ndmp3_data_start_recover_reply (xdrs, objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_abort_reply (XDR *xdrs, ndmp3_data_abort_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_stop_reply (XDR *xdrs, ndmp3_data_stop_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_get_env_reply (XDR *xdrs, ndmp3_data_get_env_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->env.env_val, (u_int *) &objp->env.env_len, ~0, + sizeof (ndmp3_pval), (xdrproc_t) xdr_ndmp3_pval)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_listen_request (XDR *xdrs, ndmp3_data_listen_request *objp) +{ + if (!xdr_ndmp3_addr_type (xdrs, &objp->addr_type)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_listen_reply (XDR *xdrs, ndmp3_data_listen_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + if (!xdr_ndmp3_addr (xdrs, &objp->data_connection_addr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_connect_request (XDR *xdrs, ndmp3_data_connect_request *objp) +{ + if (!xdr_ndmp3_addr (xdrs, &objp->addr)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_data_connect_reply (XDR *xdrs, ndmp3_data_connect_reply *objp) +{ + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_notify_data_halted_request (XDR *xdrs, ndmp3_notify_data_halted_request *objp) +{ + if (!xdr_ndmp3_data_halt_reason (xdrs, &objp->reason)) + return FALSE; + if (!xdr_string (xdrs, &objp->text_reason, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_connect_reason (XDR *xdrs, ndmp3_connect_reason *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_notify_connected_request (XDR *xdrs, ndmp3_notify_connected_request *objp) +{ + if (!xdr_ndmp3_connect_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_ndmp3_notify_mover_paused_request (XDR *xdrs, ndmp3_notify_mover_paused_request *objp) +{ + if (!xdr_ndmp3_mover_pause_reason (xdrs, &objp->reason)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->seek_position)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_notify_mover_halted_request (XDR *xdrs, ndmp3_notify_mover_halted_request *objp) +{ + if (!xdr_ndmp3_mover_halt_reason (xdrs, &objp->reason)) + return FALSE; + if (!xdr_string (xdrs, &objp->text_reason, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_notify_data_read_request (XDR *xdrs, ndmp3_notify_data_read_request *objp) +{ + if (!xdr_ndmp3_u_quad (xdrs, &objp->offset)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->length)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_log_type (XDR *xdrs, ndmp3_log_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_log_message_request (XDR *xdrs, ndmp3_log_message_request *objp) +{ + if (!xdr_ndmp3_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; + return TRUE; +} + +bool_t +xdr_ndmp3_log_file_request (XDR *xdrs, ndmp3_log_file_request *objp) +{ + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + if (!xdr_ndmp3_error (xdrs, &objp->error)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fs_type (XDR *xdrs, ndmp3_fs_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_path (XDR *xdrs, ndmp3_path *objp) +{ + if (!xdr_string (xdrs, objp, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_nt_path (XDR *xdrs, ndmp3_nt_path *objp) +{ + if (!xdr_ndmp3_path (xdrs, &objp->nt_path)) + return FALSE; + if (!xdr_ndmp3_path (xdrs, &objp->dos_path)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_file_name (XDR *xdrs, ndmp3_file_name *objp) +{ + if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type)) + return FALSE; + switch (objp->fs_type) { + case NDMP3_FS_UNIX: + if (!xdr_ndmp3_path (xdrs, &objp->ndmp3_file_name_u.unix_name)) + return FALSE; + break; + case NDMP3_FS_NT: + if (!xdr_ndmp3_nt_path (xdrs, &objp->ndmp3_file_name_u.nt_name)) + return FALSE; + break; + default: + if (!xdr_ndmp3_path (xdrs, &objp->ndmp3_file_name_u.other_name)) + return FALSE; + break; + } + return TRUE; +} + +bool_t +xdr_ndmp3_file_type (XDR *xdrs, ndmp3_file_type *objp) +{ + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_file_stat (XDR *xdrs, ndmp3_file_stat *objp) +{ + register int32_t *buf; + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_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->invalid)) + return FALSE; + if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->size)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->links)) + return FALSE; + return TRUE; + } + + if (!xdr_u_long (xdrs, &objp->invalid)) + return FALSE; + if (!xdr_ndmp3_fs_type (xdrs, &objp->fs_type)) + return FALSE; + if (!xdr_ndmp3_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_ndmp3_u_quad (xdrs, &objp->size)) + return FALSE; + if (!xdr_u_long (xdrs, &objp->links)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_file (XDR *xdrs, ndmp3_file *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0, + sizeof (ndmp3_file_name), (xdrproc_t) xdr_ndmp3_file_name)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0, + sizeof (ndmp3_file_stat), (xdrproc_t) xdr_ndmp3_file_stat)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->node)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fh_add_file_request (XDR *xdrs, ndmp3_fh_add_file_request *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->files.files_val, (u_int *) &objp->files.files_len, ~0, + sizeof (ndmp3_file), (xdrproc_t) xdr_ndmp3_file)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_dir (XDR *xdrs, ndmp3_dir *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0, + sizeof (ndmp3_file_name), (xdrproc_t) xdr_ndmp3_file_name)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->node)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->parent)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fh_add_dir_request (XDR *xdrs, ndmp3_fh_add_dir_request *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->dirs.dirs_val, (u_int *) &objp->dirs.dirs_len, ~0, + sizeof (ndmp3_dir), (xdrproc_t) xdr_ndmp3_dir)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_node (XDR *xdrs, ndmp3_node *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->stats.stats_val, (u_int *) &objp->stats.stats_len, ~0, + sizeof (ndmp3_file_stat), (xdrproc_t) xdr_ndmp3_file_stat)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->node)) + return FALSE; + if (!xdr_ndmp3_u_quad (xdrs, &objp->fh_info)) + return FALSE; + return TRUE; +} + +bool_t +xdr_ndmp3_fh_add_node_request (XDR *xdrs, ndmp3_fh_add_node_request *objp) +{ + if (!xdr_array (xdrs, (char **)&objp->nodes.nodes_val, (u_int *) &objp->nodes.nodes_len, ~0, + sizeof (ndmp3_node), (xdrproc_t) xdr_ndmp3_node)) + return FALSE; + return TRUE; +} +#endif /* !NDMOS_OPTION_NO_NDMP3 */