daily update
[deliverable/binutils-gdb.git] / gdb / vx-share / xdr_ptrace.c
1 /* xdr_ptrace.c - xdr routines for remote ptrace calls */
2
3 /* Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1998
4 Free Software Foundation, Inc.
5
6 This code was donated by Wind River Systems, Inc. */
7
8 /*
9 modification history
10 --------------------
11 01b,25may91,maf now uses counted bytes struct to transfer registers.
12 removed xdr_regs_ptr (), xdr_fp_status_ptr (), and
13 xdr_fpa_regs_ptr ().
14 01a,05jun90,llk extracted from xdr_ptrace.h, version 01c.
15 */
16
17 #include "defs.h"
18 #include "vxWorks.h"
19 #include <rpc/rpc.h>
20 #include "xdr_ptrace.h"
21
22 #define MAX_LEN 32000
23
24 /********************************************************************
25 *
26 * xdr_c_bytes -
27 *
28 * xdr routine for counted bytes
29 *
30 */
31 bool_t xdr_c_bytes(xdrs,objp)
32 XDR *xdrs;
33 C_bytes *objp;
34 {
35 return(xdr_bytes(xdrs, &objp->bytes, (u_int *) &objp->len, MAX_LEN));
36 } /* xdr_c_bytes */
37
38 /********************************************************************
39 *
40 * xdr_c_bytes_ptr -
41 *
42 * xdr routine for counted bytes branch of ptrace_info
43 *
44 */
45
46 LOCAL bool_t xdr_c_bytes_ptr(xdrs,objp)
47 XDR *xdrs;
48 C_bytes **objp;
49 {
50 return(xdr_pointer(xdrs, (char **) objp, sizeof(C_bytes), xdr_c_bytes));
51 } /* xdr_c_bytes_ptr */
52
53 /********************************************************************
54 *
55 * xdr_ptrace_info -
56 *
57 * xdr routine for discriminated union ptrace_info
58 *
59 */
60
61 bool_t xdr_ptrace_info(xdrs,objp)
62 XDR *xdrs;
63 Ptrace_info *objp;
64 {
65 static struct xdr_discrim choices[] =
66 {
67 { (int) DATA, xdr_c_bytes_ptr },
68 { __dontcare__, NULL }
69 };
70
71 return(xdr_union(xdrs, (enum_t *) &objp->ttype,
72 (char *) &objp->more_data, choices, xdr_void));
73 } /* xdr_ptrace_info */
74
75 /********************************************************************
76 *
77 * xdr_rptrace -
78 *
79 * xdr routine for remote ptrace data into server
80 *
81 */
82
83 bool_t xdr_rptrace(xdrs,objp)
84 XDR *xdrs;
85 Rptrace *objp;
86 {
87 if (! xdr_int(xdrs, &objp->pid))
88 return(FALSE);
89 if (! xdr_int(xdrs, &objp->data))
90 return(FALSE);
91 if (! xdr_int(xdrs, &objp->addr))
92 return(FALSE);
93 if (! xdr_ptrace_info(xdrs, &objp->info))
94 return(FALSE);
95
96 return(TRUE);
97 } /* xdr_rptrace */
98
99 /********************************************************************
100 *
101 * xdr_ptrace_return -
102 *
103 * xdr routine for remote ptrace data returned by server
104 *
105 */
106
107 bool_t xdr_ptrace_return(xdrs, objp)
108 XDR *xdrs;
109 Ptrace_return *objp;
110 {
111 if (! xdr_int(xdrs, &objp->status))
112 return(FALSE);
113 if (! xdr_int(xdrs, &objp->errno_num))
114 return(FALSE);
115 if (! xdr_ptrace_info(xdrs, &objp->info))
116 return(FALSE);
117
118 return(TRUE);
119 } /* xdr_ptrace_return */
This page took 0.034083 seconds and 4 git commands to generate.