* inftarg.c (child_create_inferior, child_attach,
[deliverable/binutils-gdb.git] / gdb / vx-share / xdr_rdb.c
1 /* xdr_rdb.c - xdr routines for Remote Debug interface to VxWorks */
2
3 /*
4 modification history
5 --------------------
6 01a,21mar90,llk created using modification 01d of xdr_dbx.c.
7 */
8
9 /*
10 DESCRIPTION
11 This module contains the eXternal Data Representation (XDR) routines
12 for the RDB interface for VxWorks.
13 */
14
15 #include "vxWorks.h"
16 #include <rpc/rpc.h>
17 #include "xdr_rdb.h"
18
19 /* forward declarations */
20
21 bool_t
22 xdr_arg_type(xdrs, objp)
23 XDR *xdrs;
24 arg_type *objp;
25 {
26 if (!xdr_enum(xdrs, (enum_t *)objp)) {
27 return (FALSE);
28 }
29 return (TRUE);
30 }
31
32 bool_t
33 xdr_arg_value(xdrs, objp)
34 XDR *xdrs;
35 arg_value *objp;
36 {
37 if (!xdr_arg_type(xdrs, &objp->type)) {
38 return (FALSE);
39 }
40 switch (objp->type) {
41 case T_BYTE:
42 if (!xdr_char(xdrs, &objp->arg_value_u.v_byte)) {
43 return (FALSE);
44 }
45 break;
46 case T_WORD:
47 if (!xdr_short(xdrs, &objp->arg_value_u.v_word)) {
48 return (FALSE);
49 }
50 break;
51 case T_INT:
52 if (!xdr_int(xdrs, &objp->arg_value_u.v_int)) {
53 return (FALSE);
54 }
55 break;
56 case T_FLOAT:
57 if (!xdr_float(xdrs, &objp->arg_value_u.v_fp)) {
58 return (FALSE);
59 }
60 break;
61 case T_DOUBLE:
62 if (!xdr_double(xdrs, &objp->arg_value_u.v_dp)) {
63 return (FALSE);
64 }
65 break;
66 case T_UNKNOWN:
67 break;
68 }
69 return (TRUE);
70 }
71
72 bool_t
73 xdr_func_call(xdrs, objp)
74 XDR *xdrs;
75 func_call *objp;
76 {
77 if (!xdr_int(xdrs, &objp->func_addr)) {
78 return (FALSE);
79 }
80 if (!xdr_array(xdrs, (char **)&objp->args.args_val, (u_int *)&objp->args.args_len, MAX_FUNC_ARGS, sizeof(arg_value), xdr_arg_value)) {
81 return (FALSE);
82 }
83 return (TRUE);
84 }
85
86 bool_t
87 xdr_arg_one(xdrs, objp)
88 XDR *xdrs;
89 arg_one *objp;
90 {
91 if (!xdr_string(xdrs, objp, MAX_ARG_LEN)) {
92 return (FALSE);
93 }
94 return (TRUE);
95 }
96
97
98
99
100 bool_t
101 xdr_arg_array(xdrs, objp)
102 XDR *xdrs;
103 arg_array *objp;
104 {
105 if (!xdr_array(xdrs, (char **)&objp->arg_array_val, (u_int *)&objp->arg_array_len, MAX_ARG_CNT, sizeof(arg_one), xdr_arg_one)) {
106 return (FALSE);
107 }
108 return (TRUE);
109 }
110
111 /*********************************************************************
112 *
113 * xdr_EVENT_TYPE -
114 *
115 */
116
117 bool_t xdr_EVENT_TYPE(xdrs, objp)
118 XDR *xdrs;
119 EVENT_TYPE *objp;
120
121 {
122 if (!xdr_enum (xdrs, (enum_t *) objp))
123 return (FALSE);
124 return (TRUE);
125 }
126
127 /*********************************************************************
128 *
129 * xdr_RDB_EVENT -
130 *
131 */
132
133 bool_t xdr_RDB_EVENT (xdrs, objp)
134 XDR *xdrs;
135 RDB_EVENT *objp;
136
137 {
138 if (!xdr_int (xdrs, &objp->status))
139 return (FALSE);
140 if (!xdr_int (xdrs, &objp->taskId))
141 return (FALSE);
142 if (!xdr_EVENT_TYPE (xdrs, &objp->eventType))
143 return (FALSE);
144 if (!xdr_int (xdrs, &objp->sigType))
145 return (FALSE);
146 return (TRUE);
147 }
148
149 /*********************************************************************
150 *
151 * xdr_TASK_START -
152 *
153 */
154
155 bool_t
156 xdr_TASK_START (xdrs, objp)
157 XDR *xdrs;
158 TASK_START *objp;
159
160 {
161 if (!xdr_int (xdrs, &objp->status))
162 return (FALSE);
163 if (!xdr_int (xdrs, &objp->pid))
164 return (FALSE);
165 return (TRUE);
166 }
167
168
169 /*********************************************************************
170 *
171 * xdr_SYMBOL_ADDR -
172 *
173 */
174
175 bool_t
176 xdr_SYMBOL_ADDR (xdrs, objp)
177 XDR *xdrs;
178 SYMBOL_ADDR *objp;
179
180 {
181 if (!xdr_int (xdrs, &objp->status))
182 return (FALSE);
183 if (!xdr_u_int (xdrs, &objp->addr))
184 return (FALSE);
185 return (TRUE);
186 }
187
188 /*********************************************************************
189 *
190 * xdr_SOURCE_STEP -
191 *
192 */
193
194 bool_t
195 xdr_SOURCE_STEP (xdrs, objp)
196 XDR *xdrs;
197 SOURCE_STEP *objp;
198
199 {
200 if (!xdr_int (xdrs, &objp->taskId))
201 return (FALSE);
202 if (!xdr_u_int (xdrs, &objp->startAddr))
203 return (FALSE);
204 if (!xdr_u_int (xdrs, &objp->endAddr))
205 return (FALSE);
206 return (TRUE);
207 }
This page took 0.033124 seconds and 4 git commands to generate.