This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / gdb / vx-share / xdr_ptrace.c
CommitLineData
dd3b648e
RP
1/* xdr_ptrace.c - xdr routines for remote ptrace calls */
2
3/* Copyright 1984,1985,1986,1987,1988,1989 Wind River Systems, Inc. */
4/* extern char copyright_wind_river[]; static char *copyright=copyright_wind_river;*/
5
6/*
7modification history
8--------------------
901a,05jun90,llk extracted from xdr_ptrace.h, version 01c.
10*/
11
12#include <vxWorks.h>
13#include <rpc/rpc.h>
14#include <xdr_ptrace.h>
15
16#define MAX_LEN 32000
17
18/********************************************************************
19*
20* xdr_regs_ptr -
21*
22* xdr routine to get regs* branch of discriminated union ptrace_info
23*
24*/
25
26LOCAL bool_t xdr_regs_ptr(xdrs,objp)
27 XDR *xdrs;
28 struct regs **objp;
29 {
30 return (xdr_pointer(xdrs, (char **) objp, sizeof(struct regs), xdr_regs));
31 } /* xdr_regs_ptr */
32
33/********************************************************************
34*
35* xdr_fp_status_ptr -
36*
37* xdr routine for fp_status * branch of discrimanated union
38*
39*/
40
41LOCAL bool_t xdr_fp_status_ptr(xdrs,objp)
42 XDR *xdrs;
43 struct fp_status **objp;
44 {
45 return(xdr_pointer(xdrs, (char **) objp, sizeof(struct fp_status),
46 xdr_fp_status));
47 } /* xdr_fp_status_ptr */
48
49#ifndef I80960
50/********************************************************************
51*
52* xdr_fpa_regs_ptr -
53*
54* xdr routine for fpa_regs* branch of ptrace_info
55*
56*/
57
58LOCAL bool_t xdr_fpa_regs_ptr(xdrs,objp)
59 XDR *xdrs;
60 struct fpa_regs **objp;
61 {
62 if (! xdr_pointer(xdrs, (char **) objp, sizeof(struct fpa_regs),
63 xdr_fpa_regs))
64 return(FALSE);
65 else
66 return(TRUE);
67 } /* xdr_fpa_regs_ptr */
68#endif
69
70/********************************************************************
71*
72* xdr_c_bytes_ptr -
73*
74* xdr routine for counted bytes branch of ptrace_info
75*
76*/
77
78LOCAL bool_t xdr_c_bytes_ptr(xdrs,objp)
79 XDR *xdrs;
80 C_bytes **objp;
81 {
82 return(xdr_pointer(xdrs, (char **) objp, sizeof(C_bytes), xdr_c_bytes));
83 } /* xdr_c_bytes_ptr */
84
85/********************************************************************
86*
87* xdr_ptrace_info -
88*
89* xdr routine for discriminated union ptrace_info
90*
91*/
92
93bool_t xdr_ptrace_info(xdrs,objp)
94 XDR *xdrs;
95 Ptrace_info *objp;
96 {
97 static struct xdr_discrim choices[] =
98 {
99 { (int) REGS, xdr_regs_ptr },
100 { (int) FPREGS, xdr_fp_status_ptr },
101#ifndef I80960
102 { (int) FPAREGS, xdr_fpa_regs_ptr },
103#endif
104 { (int) DATA, xdr_c_bytes_ptr },
105 { __dontcare__, NULL }
106 };
107
108 return(xdr_union(xdrs, (enum_t *) &objp->ttype,
109 (char *) &objp->more_data, choices, xdr_void));
110 } /* xdr_ptrace_info */
111
112/********************************************************************
113*
114* xdr_rptrace -
115*
116* xdr routine for remote ptrace data into server
117*
118*/
119
120bool_t xdr_rptrace(xdrs,objp)
121 XDR *xdrs;
122 Rptrace *objp;
123 {
124 if (! xdr_int(xdrs, &objp->pid))
125 return(FALSE);
126 if (! xdr_int(xdrs, &objp->data))
127 return(FALSE);
128 if (! xdr_int(xdrs, &objp->addr))
129 return(FALSE);
130 if (! xdr_ptrace_info(xdrs, &objp->info))
131 return(FALSE);
132
133 return(TRUE);
134 } /* xdr_rptrace */
135
136/********************************************************************
137*
138* xdr_ptrace_return -
139*
140* xdr routine for remote ptrace data returned by server
141*
142*/
143
144bool_t xdr_ptrace_return(xdrs, objp)
145 XDR *xdrs;
146 Ptrace_return *objp;
147 {
148 if (! xdr_int(xdrs, &objp->status))
149 return(FALSE);
150 if (! xdr_int(xdrs, &objp->errno))
151 return(FALSE);
152 if (! xdr_ptrace_info(xdrs, &objp->info))
153 return(FALSE);
154
155 return(TRUE);
156 } /* xdr_ptrace_return */
157
158/********************************************************************
159*
160* xdr_c_bytes -
161*
162* xdr routine for counted bytes
163*
164*/
165bool_t xdr_c_bytes(xdrs,objp)
166 XDR *xdrs;
167 C_bytes *objp;
168 {
169 return(xdr_bytes(xdrs, &objp->bytes, (u_int *) &objp->len, MAX_LEN));
170 } /* xdr_c_bytes */
171
This page took 0.028062 seconds and 4 git commands to generate.