📄 xdrwtx.c
字号:
}/********************************************************************************* xdr_WTX_MSG_REG_READ - code, decode or free the WTX_MSG_REG_READ structure. ** This function codes, decodes or frees the WTX_MSG_REG_READ structure.** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_REG_READ ( XDR * xdrs, WTX_MSG_REG_READ * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_enum (xdrs, (enum_t *)&objp->regSetType)) return (FALSE); if (!xdr_WTX_CONTEXT (xdrs, &objp->context)) return (FALSE); if (!xdr_WTX_MEM_REGION (xdrs, &objp->memRegion)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_BLOCK_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_BLOCK_DESC ( XDR * xdrs, /* xdr handle */ WTX_MSG_MEM_BLOCK_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->startAddr)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_READ_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_READ_DESC ( XDR * xdrs, WTX_MSG_MEM_READ_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->source)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->destination)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_WIDTH_READ_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_WIDTH_READ_DESC ( XDR * xdrs, WTX_MSG_MEM_WIDTH_READ_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->source)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->destination)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); if (!xdr_u_char (xdrs, &objp->width)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_COPY_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_COPY_DESC ( XDR * xdrs, WTX_MSG_MEM_COPY_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->source)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->destination)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); if (xdrs->x_op == XDR_ENCODE) { /* export block */ if (!xdr_opaque (xdrs, (char *)objp->source, objp->numBytes)) return (FALSE); } else if (xdrs->x_op == XDR_DECODE) /* import block */ { if (!xdr_opaque (xdrs, (char *)objp->destination, objp->numBytes)) return (FALSE); } return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_WIDTH_COPY_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_WIDTH_COPY_DESC ( XDR * xdrs, WTX_MSG_MEM_WIDTH_COPY_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->source)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->destination)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); if (!xdr_u_char (xdrs, &objp->width)) return (FALSE); if (xdrs->x_op == XDR_ENCODE) { /* export block */ if (!xdr_opaque (xdrs, (char *)objp->source, objp->numBytes)) return (FALSE); } else if (xdrs->x_op == XDR_DECODE) /* import block */ { if (!xdr_opaque (xdrs, (char *)objp->destination, objp->numBytes)) return (FALSE); } return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_SCAN_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_SCAN_DESC ( XDR * xdrs, WTX_MSG_MEM_SCAN_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->match)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->startAddr)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->endAddr)) return (FALSE); if (!xdr_bytes (xdrs, (char **)&objp->pattern, (u_int *)&objp->numBytes, WTX_MAX_PATTERN_LEN)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_MOVE_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_MOVE_DESC ( XDR * xdrs, WTX_MSG_MEM_MOVE_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->source)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->destination)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numBytes)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MEM_SET_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_MEM_SET_DESC ( XDR * xdrs, WTX_MSG_MEM_SET_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->value)) return (FALSE); if (!xdr_u_char (xdrs, &objp->width)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->startAddr)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numItems)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_CONTEXT_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_CONTEXT_DESC ( XDR * xdrs, /* xdr handle */ WTX_MSG_CONTEXT_DESC * objp ) { u_int argNum = WTX_MAX_ARG_CNT; TGT_ADDR_T * pArgs = (TGT_ADDR_T *)objp->args;/* argument table pointer */ if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_enum (xdrs, (enum_t *)&objp->contextType)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->returnType)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->name)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->priority)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->options)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->stackBase)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->stackSize)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->entry)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->redirIn)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->redirOut)) return (FALSE); /* * The arg array is not dynamically allocated. So when freeing memory, * xdr_array *MUST NOT* free this array. */ if (xdrs->x_op == XDR_FREE) { char * ptr = NULL; /* dummy array */ if (!xdr_array (xdrs, (caddr_t *)&ptr, &argNum, ~0, sizeof (TGT_ARG_T), xdr_TGT_ARG_T)) return (FALSE); } else { if (!xdr_array (xdrs, (caddr_t *)&pArgs, &argNum, ~0, sizeof (TGT_ARG_T), xdr_TGT_ARG_T)) return (FALSE); } return (TRUE); }/********************************************************************************* xdr_WTX_MSG_CONTEXT_STEP_DESC - WTX** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_CONTEXT_STEP_DESC ( XDR * xdrs, WTX_MSG_CONTEXT_STEP_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WTX_CONTEXT (xdrs, &objp->context)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->startAddr)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->endAddr)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_OPEN_DESC - virtual I/O descriptor **/bool_t xdr_WTX_MSG_OPEN_DESC ( XDR * xdrs, WTX_MSG_OPEN_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->filename)) return (FALSE); if (!xdr_enum (xdrs, (enum_t *)&objp->flags)) return (FALSE); if (!xdr_int (xdrs, &objp->mode)) return (FALSE); if (!xdr_int (xdrs, &objp->channel)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_VIO_CTL_DESC - virtual I/O control descriptor**/bool_t xdr_WTX_MSG_VIO_CTL_DESC ( XDR * xdrs, WTX_MSG_VIO_CTL_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->channel)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->request)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->arg)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_VIO_COPY_DESC - ** This function codes, decodes or frees the VIO_COPY structure and copies the* data buffer of a specific virtual I/O channel. If the VIO_COPY baseAddr field* is a NULL pointer no data are copied, otherwise the data are coded. The* number of bytes to encode are handled by the maxBytes field. When the data* are decoded their values are saved in a memory area allocted by the* xdr_opaque function. ** RETURNS: TRUE if it succeeds, FALSE otherwise.*/bool_t xdr_WTX_MSG_VIO_COPY_DESC ( XDR * xdrs, WTX_MSG_VIO_COPY_DESC * objp ) { bool_t moreData; /* NULL pointer flag */ if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->channel)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->maxBytes)) return (FALSE); moreData = (objp->baseAddr != NULL); /* NULL pointer ? */ if (! xdr_bool(xdrs, (bool_t *)&moreData)) /* code/decode test result */ return (FALSE); if (! moreData) objp->baseAddr = NULL; /* YES: return a NULL pointer */ else /* NO: code/decode the data */ { if (xdrs->x_op == XDR_DECODE) /* if decode force mem alloc */ objp->baseAddr = (void *) malloc (objp->maxBytes); if (xdrs->x_op == XDR_FREE) /* if free de-alloc memory */ free (objp->baseAddr); if (! xdr_opaque (xdrs, (char *) objp->baseAddr, objp->maxBytes)) return (FALSE); } return (TRUE); }/********************************************************************************* xdr_WTX_VIO_FILE_DESC - WTX VIO file descriptor**/bool_t xdr_WTX_VIO_FILE_DESC ( XDR * xdrs, WTX_VIO_FILE_DESC * objp ) { if (!xdr_WRAPSTRING (xdrs, &objp->name)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->fd)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->channel)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->fp)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->type)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->mode)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->status)) return (FALSE); if (!xdr_long (xdrs, (long *)&objp->addlInfo)) return (FALSE); if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (WTX_VIO_FILE_DESC), xdr_WTX_VIO_FILE_DESC)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_VIO_FILE_LIST - WTX VIO files list message**/bool_t xdr_WTX_MSG_VIO_FILE_LIST ( XDR * xdrs, WTX_MSG_VIO_FILE_LIST * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_pointer (xdrs, (char **)&objp->pVioFileList, sizeof (WTX_VIO_FILE_DESC), xdr_WTX_VIO_FILE_DESC)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_SYMBOL - symbol information**/bool_t xdr_WTX_SYMBOL ( XDR * xdrs, WTX_SYMBOL * objp ) { if (!xdr_u_long (xdrs, (u_long *)&objp->status)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->symTblId)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->name)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->exactName)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->value)) return (FALSE); if (!xdr_u_char (xdrs, &objp->type)) return (FALSE); if (!xdr_u_char (xdrs, &objp->typeMask)) return (FALSE); if (!xdr_u_short (xdrs, &objp->group)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->moduleName)) return (FALSE); /* * There is no need to xdr the next field since it is only meaningfull
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -