📄 xdrwtx.c
字号:
* on one side of the protocol. */ return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SYMBOL_DESC - WTX symbol descriptor**/bool_t xdr_WTX_MSG_SYMBOL_DESC ( XDR * xdrs, WTX_MSG_SYMBOL_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WTX_SYMBOL (xdrs, &objp->symbol)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_SYM_LIST - symbol list** We avoid recursives routines here since the symbol list may be huge and* can blow the C stack.*/bool_t xdr_WTX_SYM_LIST ( XDR * xdrs, WTX_SYM_LIST * pList ) { bool_t moreData; WTX_SYMBOL * pSym; WTX_SYMBOL * pNext; WTX_SYMBOL ** ppSymLink = 0; /* The tough one, xdr the list of symbols */ if (xdrs->x_op == XDR_FREE) { /* move through the list and free each one. */ for (pSym = pList->pSymbol; pSym; pSym = pNext) { pNext = pSym->next; if (!xdr_reference (xdrs, (caddr_t *)&pSym, sizeof (WTX_SYMBOL), xdr_WTX_SYMBOL)) return (FALSE); } } else { /* we need to store the links ourselves. */ ppSymLink = &(pList->pSymbol); for (;;) { moreData = (*ppSymLink != NULL); /* test for end of list */ if (!xdr_bool(xdrs, &moreData)) /* xdr the moreData field */ return (FALSE); if (!moreData) /* if end of list it's time to leave */ break; /* * Now xdr the current symbol. Note that xdr_WTX_SYMBOL is not * recursive and will only serialize/de-serialize one symbol node. */ if (!xdr_reference (xdrs, (caddr_t *)ppSymLink, sizeof (WTX_SYMBOL), xdr_WTX_SYMBOL)) return (FALSE); /* * point to next node, if we are freeing buffers, use the node * whose address was saved prior calling xdr_reference(). */ ppSymLink = & ((*ppSymLink)->next); } } return (TRUE); }/********************************************************************************* xdr_LD_M_SECTION - object module section desciptor**/bool_t xdr_LD_M_SECTION ( XDR * xdrs, LD_M_SECTION * objp ) { if (!xdr_u_long (xdrs, (u_long *)&objp->flags)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->addr)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->length)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_LD_M_FILE_DESC - multiple section object file**/bool_t xdr_WTX_MSG_LD_M_FILE_DESC ( XDR * xdrs, WTX_MSG_LD_M_FILE_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->filename)) return (FALSE); if (!xdr_int (xdrs, &objp->loadFlag)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->moduleId)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->nSections)) return (FALSE); if (!xdr_array (xdrs, (char **) &objp->section, (u_int *) &objp->nSections, (WTX_MAX_SECTION_CNT * sizeof (LD_M_SECTION)), sizeof (LD_M_SECTION), xdr_LD_M_SECTION)) return (FALSE); if (!xdr_WTX_SYM_LIST (xdrs, &objp->undefSymList)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_MODULE_LIST - object module list**/bool_t xdr_WTX_MSG_MODULE_LIST ( XDR * xdrs, WTX_MSG_MODULE_LIST * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->numObjMod)) return (FALSE); if (!xdr_array (xdrs, (char **)&objp->modIdList, (u_int *)&objp->numObjMod, (WTX_MAX_MODULE_CNT * sizeof (u_int)), sizeof (u_int), xdr_u_long)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_OBJ_SEGMENT - object module segment**/bool_t xdr_OBJ_SEGMENT ( XDR * xdrs, OBJ_SEGMENT * objp ) { if (!xdr_u_long (xdrs, (u_long *)&objp->flags)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->addr)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->length)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->reserved1)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->reserved2)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MODULE_INFO - object module information**/bool_t xdr_WTX_MSG_MODULE_INFO ( XDR * xdrs, WTX_MSG_MODULE_INFO * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->moduleId)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->moduleName)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->format)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->group)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->nSegments)) return (FALSE); if (!xdr_int (xdrs, &objp->loadFlag)) return (FALSE); if (!xdr_array (xdrs, (char **)&objp->segment, (u_int *)&objp->nSegments, (WTX_MAX_OBJ_SEG_CNT * sizeof (OBJ_SEGMENT)), sizeof (OBJ_SEGMENT), xdr_OBJ_SEGMENT)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_MOD_NAME_OR_ID - object module name or identifier**/bool_t xdr_WTX_MSG_MOD_NAME_OR_ID ( XDR * xdrs, WTX_MSG_MOD_NAME_OR_ID * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->moduleId)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->filename)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SYM_LIST - symbol list message**/bool_t xdr_WTX_MSG_SYM_LIST ( XDR * xdrs, WTX_MSG_SYM_LIST * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WTX_SYM_LIST (xdrs, &objp->symList)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->moreToCome)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SYM_MATCH_DESC - symbol matching information**/bool_t xdr_WTX_MSG_SYM_MATCH_DESC ( XDR * xdrs, WTX_MSG_SYM_MATCH_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->symTblId)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->matchString)) return (FALSE); if (!xdr_TGT_ADDR_T (xdrs, &objp->adrs)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->stringToMatch)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->byModuleName)) return (FALSE); /* check if we were given a module name or a module Identifier */ if (objp->byModuleName) { if (!xdr_WRAPSTRING (xdrs, &objp->module.moduleName)) return (FALSE); } else { if (!xdr_u_long (xdrs, (u_long *)&objp->module.moduleId)) return (FALSE); } if (!xdr_bool (xdrs, (bool_t *)&objp->listUnknownSym)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->giveMeNext)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SYM_TBL_INFO - symbol table information**/bool_t xdr_WTX_MSG_SYM_TBL_INFO ( XDR * xdrs, WTX_MSG_SYM_TBL_INFO * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->symTblId)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->symNum)) return (FALSE); if (!xdr_bool (xdrs, (bool_t *)&objp->sameNameOk)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_EVENT_DESC - WTX event descriptor**/bool_t xdr_WTX_EVENT_DESC ( XDR * xdrs, WTX_EVENT_DESC * objp ) { if (!xdr_WRAPSTRING (xdrs, &objp->event)) return (FALSE); if (!xdr_bytes (xdrs, (char **) &objp->addlData, (u_int *) &objp->addlDataLen, ~0)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_EVENT_DESC - WTX event descriptor**/bool_t xdr_WTX_MSG_EVENT_DESC ( XDR * xdrs, WTX_MSG_EVENT_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WTX_EVENT_DESC (xdrs, &objp->eventDesc)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_EVENT_REG_DESC - register for event descriptor**/bool_t xdr_WTX_MSG_EVENT_REG_DESC ( XDR * xdrs, WTX_MSG_EVENT_REG_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->evtRegExp)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_WDB_SERVICE_DESC - service descriptor **/bool_t xdr_WTX_WDB_SERVICE_DESC ( XDR * xdrs, WTX_WDB_SERVICE_DESC * objp ) { if (!xdr_u_int (xdrs, &objp->rpcNum)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->name)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->svcObjFile)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->initRtnName)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_WTX_SERVICE_DESC - service descriptor **/bool_t xdr_WTX_WTX_SERVICE_DESC ( XDR * xdrs, WTX_WTX_SERVICE_DESC * objp ) { if (!xdr_WRAPSTRING (xdrs, &objp->svcObjFile)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->svcProcName)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->inProcName)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->outProcName)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SERVICE_DESC - **/bool_t xdr_WTX_MSG_SERVICE_DESC ( XDR * xdrs, WTX_MSG_SERVICE_DESC * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_pointer (xdrs, (char **)&objp->pWtxServiceDesc, sizeof (WTX_WTX_SERVICE_DESC), xdr_WTX_WTX_SERVICE_DESC)) return (FALSE); if (!xdr_pointer (xdrs, (char **)&objp->pWdbServiceDesc, sizeof (WTX_WDB_SERVICE_DESC), xdr_WTX_WDB_SERVICE_DESC)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_SERVICE_LIST - list of protocol services**/bool_t xdr_WTX_MSG_SERVICE_LIST ( XDR * xdrs, WTX_MSG_SERVICE_LIST * objp ) { if (!xdr_WTX_CORE (xdrs, &objp->wtxCore)) return (FALSE); if (!xdr_u_long (xdrs, (u_long *)&objp->nServices)) return (FALSE); if (!xdr_array (xdrs, (char **)&objp->serviceDesc, (u_int *)&objp->nServices, (WTX_MAX_SERVICE_CNT * sizeof (WTX_WDB_SERVICE_DESC)), sizeof (WTX_WDB_SERVICE_DESC), xdr_WTX_WDB_SERVICE_DESC)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_CONSOLE_DESC - WTX console descriptor**/bool_t xdr_WTX_CONSOLE_DESC ( XDR * xdrs, WTX_CONSOLE_DESC * objp ) { if (!xdr_int (xdrs, &objp->fdIn)) return (FALSE); if (!xdr_int (xdrs, &objp->fdOut)) return (FALSE); if (!xdr_int (xdrs, &objp->pid)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->name)) return (FALSE); if (!xdr_WRAPSTRING (xdrs, &objp->display)) return (FALSE); return (TRUE); }/********************************************************************************* xdr_WTX_MSG_CONSOLE_DESC - WTX console descriptor message**/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -