📄 xdr_rdb.c
字号:
/* xdr_rdb.c - xdr routines for Remote Debug interface to VxWorks *//* Copyright 1992, 1993 Free Software Foundation, Inc. This code was donated by Wind River Systems, Inc. *//*modification history--------------------01a,21mar90,llk created using modification 01d of xdr_dbx.c.*//*DESCRIPTIONThis module contains the eXternal Data Representation (XDR) routinesfor the RDB interface for VxWorks.*/#include "defs.h"#include "vxWorks.h"#include <rpc/rpc.h>#include "xdr_rdb.h"/* forward declarations */bool_txdr_arg_type(xdrs, objp) XDR *xdrs; arg_type *objp;{ if (!xdr_enum(xdrs, (enum_t *)objp)) { return (FALSE); } return (TRUE);}bool_txdr_arg_value(xdrs, objp) XDR *xdrs; arg_value *objp;{ if (!xdr_arg_type(xdrs, &objp->type)) { return (FALSE); } switch (objp->type) { case T_BYTE: if (!xdr_char(xdrs, &objp->arg_value_u.v_byte)) { return (FALSE); } break; case T_WORD: if (!xdr_short(xdrs, &objp->arg_value_u.v_word)) { return (FALSE); } break; case T_INT: if (!xdr_int(xdrs, &objp->arg_value_u.v_int)) { return (FALSE); } break; case T_FLOAT: if (!xdr_float(xdrs, &objp->arg_value_u.v_fp)) { return (FALSE); } break; case T_DOUBLE: if (!xdr_double(xdrs, &objp->arg_value_u.v_dp)) { return (FALSE); } break; case T_UNKNOWN: break; } return (TRUE);}bool_txdr_func_call(xdrs, objp) XDR *xdrs; func_call *objp;{ if (!xdr_int(xdrs, &objp->func_addr)) { return (FALSE); } if (!xdr_array(xdrs, (char **)&objp->args.args_val, (u_int *)&objp->args.args_len, MAX_FUNC_ARGS, sizeof(arg_value), xdr_arg_value)) { return (FALSE); } return (TRUE);}bool_txdr_arg_one(xdrs, objp) XDR *xdrs; arg_one *objp;{ if (!xdr_string(xdrs, objp, MAX_ARG_LEN)) { return (FALSE); } return (TRUE);}bool_txdr_arg_array(xdrs, objp) XDR *xdrs; arg_array *objp;{ if (!xdr_array(xdrs, (char **)&objp->arg_array_val, (u_int *)&objp->arg_array_len, MAX_ARG_CNT, sizeof(arg_one), xdr_arg_one)) { return (FALSE); } return (TRUE);}/*********************************************************************** xdr_EVENT_TYPE -**/bool_t xdr_EVENT_TYPE(xdrs, objp) XDR *xdrs; EVENT_TYPE *objp; { if (!xdr_enum (xdrs, (enum_t *) objp)) return (FALSE); return (TRUE); }/*********************************************************************** xdr_RDB_EVENT -**/bool_t xdr_RDB_EVENT (xdrs, objp) XDR *xdrs; RDB_EVENT *objp; { if (!xdr_int (xdrs, &objp->status)) return (FALSE); if (!xdr_int (xdrs, &objp->taskId)) return (FALSE); if (!xdr_EVENT_TYPE (xdrs, &objp->eventType)) return (FALSE); if (!xdr_int (xdrs, &objp->sigType)) return (FALSE); return (TRUE); } /*********************************************************************** xdr_TASK_START -**/bool_txdr_TASK_START (xdrs, objp) XDR *xdrs; TASK_START *objp; { if (!xdr_int (xdrs, &objp->status)) return (FALSE); if (!xdr_int (xdrs, &objp->pid)) return (FALSE); return (TRUE); }/*********************************************************************** xdr_SYMBOL_ADDR -**/bool_txdr_SYMBOL_ADDR (xdrs, objp) XDR *xdrs; SYMBOL_ADDR *objp; { if (!xdr_int (xdrs, &objp->status)) return (FALSE); if (!xdr_u_int (xdrs, &objp->addr)) return (FALSE); return (TRUE); }/*********************************************************************** xdr_SOURCE_STEP -**/bool_txdr_SOURCE_STEP (xdrs, objp) XDR *xdrs; SOURCE_STEP *objp; { if (!xdr_int (xdrs, &objp->taskId)) return (FALSE); if (!xdr_u_int (xdrs, &objp->startAddr)) return (FALSE); if (!xdr_u_int (xdrs, &objp->endAddr)) return (FALSE); return (TRUE); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -