bool_t xdr_nvclock(XDR *xdrs, struct nvclock **arg) { bool shouldfree = false; struct nvclock dummy; struct nvclock *clock; int i; clock = *arg; if (xdrs->x_op == XDR_FREE) { nvclock_free(clock); return TRUE; } /* * If we don't have clock... */ if (!clock && (xdrs->x_op == XDR_ENCODE)) { /* * ...send one filled with zeros. */ memset(&dummy, 0, sizeof(struct nvclock)); clock = &dummy; } else if (!clock && (xdrs->x_op == XDR_DECODE)) { /* * ...recieve into a newly allocated one. */ clock = nvclock_alloc(); if (!clock) return FALSE; *arg = clock; shouldfree = true; } for (i = 0; i < NVCLOCK_NUM_NODES; i++) { if (!xdr_uint64_t(xdrs, &clock->ent[i].node)) goto err; if (!xdr_uint64_t(xdrs, &clock->ent[i].seq)) goto err; } return TRUE; err: if (shouldfree) { nvclock_free(clock); *arg = NULL; } return FALSE; }
bool_t xdr_shibrpc_session_is_valid_args_1 (XDR *xdrs, shibrpc_session_is_valid_args_1 *objp) { register int32_t *buf; if (!xdr_ShibRpcHttpCookie_1 (xdrs, &objp->cookie)) return FALSE; if (!xdr_bool (xdrs, &objp->checkIPAddress)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->lifetime)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->timeout)) return FALSE; return TRUE; }
bool_t xdr_nlm4_holder (XDR *xdrs, nlm4_holder *objp) { if (!xdr_bool (xdrs, &objp->exclusive)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->svid)) return FALSE; if (!xdr_netobj (xdrs, &objp->oh)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->l_offset)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->l_len)) return FALSE; return TRUE; }
/* * Custom XDR routine for our API structure fmd_stat_t. This function must * match the definition of fmd_stat_t in <fm/fmd_api.h> and must also match * the corresponding routine in usr/src/cmd/fm/fmd/common/fmd_rpc_adm.c. */ bool_t xdr_fmd_stat(XDR *xp, fmd_stat_t *sp) { bool_t rv = TRUE; rv &= xdr_opaque(xp, sp->fmds_name, sizeof (sp->fmds_name)); rv &= xdr_u_int(xp, &sp->fmds_type); rv &= xdr_opaque(xp, sp->fmds_desc, sizeof (sp->fmds_desc)); switch (sp->fmds_type) { case FMD_TYPE_BOOL: rv &= xdr_int(xp, &sp->fmds_value.bool); break; case FMD_TYPE_INT32: rv &= xdr_int32_t(xp, &sp->fmds_value.i32); break; case FMD_TYPE_UINT32: rv &= xdr_uint32_t(xp, &sp->fmds_value.ui32); break; case FMD_TYPE_INT64: rv &= xdr_int64_t(xp, &sp->fmds_value.i64); break; case FMD_TYPE_UINT64: case FMD_TYPE_TIME: case FMD_TYPE_SIZE: rv &= xdr_uint64_t(xp, &sp->fmds_value.ui64); break; case FMD_TYPE_STRING: rv &= xdr_string(xp, &sp->fmds_value.str, ~0); break; } return (rv); }
bool_t xdr_geo_sync_data_ret_t (XDR *xdrs, geo_sync_data_ret_t *objp) { //register int32_t *buf; if (!xdr_uint16_t (xdrs, &objp->eid)) return FALSE; if (!xdr_uint16_t (xdrs, &objp->site_id)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->file_idx)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->local_ref)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->remote_ref)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->last)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->first_record)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->nb_records)) return FALSE; if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0)) return FALSE; return TRUE; }
bool_t xdr_storcli_read_arg_t (XDR *xdrs, storcli_read_arg_t *objp) { //register int32_t *buf; //int i; if (!xdr_uint16_t (xdrs, &objp->cid)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->sid)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->layout)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->spare)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->dist_set, ROZOFS_SAFE_MAX, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_storcli_uuid_t (xdrs, objp->fid)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->proj_id)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->bid)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->nb_proj)) return FALSE; return TRUE; }
bool_t xdr_storcli_write_arg_no_data_t (XDR *xdrs, storcli_write_arg_no_data_t *objp) { //register int32_t *buf; //int i; if (!xdr_uint16_t (xdrs, &objp->cid)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->sid)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->empty_file)) return FALSE; if (!xdr_uint8_t (xdrs, &objp->layout)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->dist_set, ROZOFS_SAFE_MAX, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_storcli_uuid_t (xdrs, objp->fid)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->off)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->len)) return FALSE; return TRUE; }
/* * XDR encode/decode for smb_netuserinfo_t. */ bool_t smb_netuserinfo_xdr(XDR *xdrs, smb_netuserinfo_t *objp) { if (!xdr_uint64_t(xdrs, &objp->ui_session_id)) return (FALSE); if (!xdr_uint16_t(xdrs, &objp->ui_smb_uid)) return (FALSE); if (!xdr_uint16_t(xdrs, &objp->ui_domain_len)) return (FALSE); if (!xdr_string(xdrs, &objp->ui_domain, ~0)) return (FALSE); if (!xdr_uint16_t(xdrs, &objp->ui_account_len)) return (FALSE); if (!xdr_string(xdrs, &objp->ui_account, ~0)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->ui_posix_uid)) return (FALSE); if (!xdr_uint16_t(xdrs, &objp->ui_workstation_len)) return (FALSE); if (!xdr_string(xdrs, &objp->ui_workstation, ~0)) return (FALSE); if (!smb_inaddr_xdr(xdrs, &objp->ui_ipaddr)) return (FALSE); if (!xdr_int32_t(xdrs, &objp->ui_native_os)) return (FALSE); if (!xdr_int64_t(xdrs, &objp->ui_logon_time)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->ui_numopens)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->ui_flags)) return (FALSE); return (TRUE); }
bool_t xdr_uint64 (XDR *xdrs, uint64 *objp) { if (!xdr_uint64_t (xdrs, objp)) return FALSE; return TRUE; }
bool_t xdr_fsdb_client_id (XDR *xdrs, fsdb_client_id *objp) { if (!xdr_uint64_t (xdrs, objp)) return FALSE; return TRUE; }
bool_t xdr_nlm4_lock (XDR *xdrs, nlm4_lock *objp) { if (!xdr_string (xdrs, &objp->caller_name, MAXNAMELEN)) return FALSE; if (!xdr_netobj (xdrs, &objp->fh)) return FALSE; if (!xdr_netobj (xdrs, &objp->oh)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->svid)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->l_offset)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->l_len)) return FALSE; return TRUE; }
bool_t smb_quota_xdr(XDR *xdrs, smb_quota_t *objp) { if (!xdr_vector(xdrs, (char *)objp->q_sidstr, SMB_SID_STRSZ, sizeof (char), (xdrproc_t)xdr_char)) return (FALSE); if (!xdr_uint32_t(xdrs, &objp->q_sidtype)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->q_used)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->q_thresh)) return (FALSE); if (!xdr_uint64_t(xdrs, &objp->q_limit)) return (FALSE); return (TRUE); }
bool_t xdr_nlm4_lock(XDR * xdrs, nlm4_lock * objp) { register int32_t *buf; if(!xdr_string(xdrs, &objp->caller_name, LM_MAXSTRLEN)) return FALSE; if(!xdr_netobj(xdrs, &objp->fh)) return FALSE; if(!xdr_netobj(xdrs, &objp->oh)) return FALSE; if(!xdr_int32_t(xdrs, &objp->svid)) return FALSE; if(!xdr_uint64_t(xdrs, &objp->l_offset)) return FALSE; if(!xdr_uint64_t(xdrs, &objp->l_len)) return FALSE; return TRUE; }
/* * XDR u_longlong_t's */ bool_t xdr_u_longlong_t(XDR *xdrs, u_longlong_t *ullp) { /* * Don't bother open-coding this; it's a fair amount of code. Just * call xdr_uint64_t(). */ return (xdr_uint64_t(xdrs, (uint64_t *)ullp)); }
bool_t xdr_geo_sync_close_req_arg_t (XDR *xdrs, geo_sync_close_req_arg_t *objp) { //register int32_t *buf; if (!xdr_uint16_t (xdrs, &objp->eid)) return FALSE; if (!xdr_uint16_t (xdrs, &objp->site_id)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->file_idx)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->local_ref)) return FALSE; if (!xdr_uint32_t (xdrs, &objp->remote_ref)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->status_bitmap)) return FALSE; return TRUE; }
bool_t xdr_rpc_request_callback_info(XDR *xdrs, rpc_request_callback_info *objp) { if (!xdr_array(xdrs, (char **) &objp->hostname.hostname_val, (u_int *) &objp->hostname.hostname_len, ~0, sizeof(char), (xdrproc_t) xdr_char)) return FALSE; if (!xdr_uint64_t(xdrs, &objp->prog_num)) return FALSE; if (!xdr_uint32_t(xdrs, &objp->prog_version)) return FALSE; return TRUE; }
bool_t xdr_spp_profiler_t (XDR *xdrs, spp_profiler_t *objp) { //register int32_t *buf; //int i; if (!xdr_uint64_t (xdrs, &objp->uptime)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->now)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->vers, 20, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->stat, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->ports, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->remove, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->truncate, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_uint16_t (xdrs, &objp->nb_io_processes)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->io_process_ports, 32, sizeof (uint16_t), (xdrproc_t) xdr_uint16_t)) return FALSE; return TRUE; }
bool_t smb_gmttoken_snapname_xdr(XDR *xdrs, smb_gmttoken_snapname_t *objp) { if (!xdr_string(xdrs, &objp->gts_path, MAXPATHLEN)) { return (FALSE); } if (!xdr_string(xdrs, &objp->gts_gmttoken, SMB_VSS_GMT_SIZE)) { return (FALSE); } if (!xdr_uint64_t(xdrs, &objp->gts_toktime)) { return (FALSE); } return (TRUE); }
/** * send a rpc reply: the encoding function MUST be found in xdr_result of the gateway context It is assumed that the xmitBuf MUST be found in xmitBuf field In case of a success it is up to the called function to release the xmit buffer @param p : pointer to the root transaction context used for the read @param arg_ret : returned argument to encode @retval none */ void storaged_srv_forward_read_success (rozorpc_srv_ctx_t *p,sp_read_ret_t * arg_ret) { int ret; uint8_t *pbuf; /* pointer to the part that follows the header length */ uint32_t *header_len_p; /* pointer to the array that contains the length of the rpc message*/ XDR xdrs; int len; int cur_len; if (p->xmitBuf == NULL) { ROZORPC_SRV_STATS(ROZORPC_SRV_NO_BUFFER_ERROR); severe("no xmit buffer"); goto error; } /* ** create xdr structure on top of the buffer that will be used for sending the response */ header_len_p = (uint32_t*)ruc_buf_getPayload(p->xmitBuf); pbuf = (uint8_t*) (header_len_p+1); len = (int)ruc_buf_getMaxPayloadLen(p->xmitBuf); len -= sizeof(uint32_t); xdrmem_create(&xdrs,(char*)pbuf,len,XDR_ENCODE); /* ** just encode the header */ if (rozofs_encode_rpc_reply(&xdrs,(xdrproc_t)NULL,(caddr_t)NULL,p->src_transaction_id) != TRUE) { ROZORPC_SRV_STATS(ROZORPC_SRV_ENCODING_ERROR); severe("rpc reply encoding error"); goto error; } /* ** OK now starts encoding the response */ xdr_sp_status_t (&xdrs, &arg_ret->status); xdr_uint32_t (&xdrs, &arg_ret->sp_read_ret_t_u.rsp.filler); xdr_uint32_t (&xdrs, &arg_ret->sp_read_ret_t_u.rsp.bins.bins_len); /* ** skip the bins */ cur_len = xdr_getpos(&xdrs) ; cur_len += arg_ret->sp_read_ret_t_u.rsp.bins.bins_len; xdr_setpos(&xdrs,cur_len); /* ** encode the length of the file */ xdr_uint64_t (&xdrs, &arg_ret->sp_read_ret_t_u.rsp.file_size); #if 0 // for future usage with distributed cache /* ** encode the optim array */ xdr_bytes (&xdrs, (char **)&arg_ret->sp_read_ret_t_u.rsp.optim.optim_val, (u_int *) &arg_ret->sp_read_ret_t_u.rsp.optim.optim_len, ~0); #endif /* ** compute the total length of the message for the rpc header and add 4 bytes more bytes for ** the ruc buffer to take care of the header length of the rpc message. */ int total_len = xdr_getpos(&xdrs) ; *header_len_p = htonl(0x80000000 | total_len); total_len +=sizeof(uint32_t); ruc_buf_setPayloadLen(p->xmitBuf,total_len); /* ** Get the callback for sending back the response: ** A callback is needed since the request for read might be local or remote */ ret = af_unix_generic_send_stream_with_idx((int)p->socketRef,p->xmitBuf); if (ret == 0) { /** * success so remove the reference of the xmit buffer since it is up to the called * function to release it */ ROZORPC_SRV_STATS(ROZORPC_SRV_SEND); p->xmitBuf = NULL; } else { ROZORPC_SRV_STATS(ROZORPC_SRV_SEND_ERROR); } error: return; }
bool_t xdr_mpp_profiler_t (XDR *xdrs, mpp_profiler_t *objp) { //register int32_t *buf; //int i; if (!xdr_uint64_t (xdrs, &objp->uptime)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->now)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->vers, 20, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_lookup, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_forget, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_getattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_setattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_readlink, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_mknod, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_mkdir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_unlink, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_rmdir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_symlink, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_rename, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_open, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_link, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_read, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_write, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_flush, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_release, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_opendir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_readdir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_releasedir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_fsyncdir, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_statfs, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_setxattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_getxattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_listxattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_removexattr, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_access, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_create, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_getlk, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_setlk, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_setlk_int, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_ioctl, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->rozofs_ll_clearlkowner, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; return TRUE; }
bool_t xdr_stcpp_profiler_t (XDR *xdrs, stcpp_profiler_t *objp) { //register int32_t *buf; //int i; if (!xdr_uint64_t (xdrs, &objp->uptime)) return FALSE; if (!xdr_uint64_t (xdrs, &objp->now)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->vers, 20, sizeof (uint8_t), (xdrproc_t) xdr_uint8_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->stat, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->ports, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->remove, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read_req, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->trans_inv, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write_req, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->trans_forward, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->truncate, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->truncate_prj, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->truncate_prj_tmo, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->truncate_prj_err, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read_prj, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write_prj, 3, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read_prj_tmo, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read_prj_err, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->read_prj_enoent, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write_prj_tmo, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->write_prj_err, 2, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) return FALSE; if (!xdr_vector (xdrs, (char *)objp->io_process_ports, 32, sizeof (uint16_t), (xdrproc_t) xdr_uint16_t)) return FALSE; return TRUE; }