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