* xcoffexec.c (exec_ops): child_attach and child_create_inferior
[deliverable/binutils-gdb.git] / gdb / vx-share / xdr_rdb.c
CommitLineData
dd3b648e
RP
1/* xdr_rdb.c - xdr routines for Remote Debug interface to VxWorks */
2
3/*
4modification history
5--------------------
601a,21mar90,llk created using modification 01d of xdr_dbx.c.
7*/
8
9/*
10DESCRIPTION
11This module contains the eXternal Data Representation (XDR) routines
12for 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
21bool_t
22xdr_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
32bool_t
33xdr_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
72bool_t
73xdr_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
86bool_t
87xdr_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
100bool_t
101xdr_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
117bool_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
133bool_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
155bool_t
156xdr_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
175bool_t
176xdr_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
194bool_t
195xdr_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.079216 seconds and 4 git commands to generate.