summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/gdb/vx-share/xdr_ptrace.h
blob: 0ff57a98c335ea9c9a8ed338cac12ba9cf16f00c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* xdr_ptrace.h - xdr header for remote ptrace structures */

/*  Copyright 1992, 1998 Free Software Foundation, Inc.

    This code was donated by Wind River Systems, Inc. */

/*
modification history
--------------------
01b,25may91,maf  now uses counted bytes struct to transfer registers;
		   removed references to old xdr_regs functions.
		 removed includes of "xdr_regs.h" and "reg.h".
01a,05jun90,llk  extracted from xdr_ptrace.h.
*/


/*
 *  Counted byte structure used by READ/WRITE TEXT/DATA
 *  and GET/SET REGS/FPREGS
 */
struct c_bytes {
	u_int	len;
	caddr_t	bytes;
};
typedef struct c_bytes C_bytes;

/*
 * enum for discriminated union ptrace_info
 */
enum ptype {
	NOINFO = 0,		/* no additional infomation	*/
	DATA = 1		/* c_bytes */
};
typedef enum ptype ptype;

/*
 * discrimnated union for passing additional data to be 
 * written to the debugged process.
 */
struct ptrace_info {
	ptype	ttype;
	caddr_t	more_data;	
};
typedef struct ptrace_info Ptrace_info;

/*
 * structure passed to server on all remote ptrace calls
 */
struct rptrace {
	int 	pid;
	int 	data;
	int 	addr;	/* FIX! this really should be caddr_t or something */
	Ptrace_info	info;
};
typedef struct rptrace Rptrace;

/*
 * structure returned by server on all remote ptrace calls
 */
/* This used to have a field called errno, but that fails on hosts which
   define errno to be a macro, so it was changed to errno_num.  */
struct ptrace_return {
	int status;
	int errno_num;
	Ptrace_info	info;
};
typedef struct ptrace_return Ptrace_return;

bool_t xdr_c_bytes();
bool_t xdr_ptrace_info();
bool_t xdr_rptrace();
bool_t xdr_ptrace_return();