1 /* xdr_rdb.h - xdr for additional rdb structures */
2 
3 /* Copyright 1992 Free Software Foundation, Inc.
4 
5    This code was donated by Wind River Systems, Inc. */
6 
7 /*
8 modification history
9 --------------------
10 01c,25may91,maf  rolled RDBVERS for VxGDB 1.0 version.
11 01b,12apr91,maf  rolled RDBVERS.
12 01a,09jan91,maf  created using v1a of xdr_rdb.h for 4.0.2 VxWorks 68k.
13 		 added struct SOURCE_STEP.
14 */
15 
16 #ifndef INCxdrrdbh
17 #define INCxdrrdbh
18 
19 enum arg_type {
20         T_UNKNOWN = 0,
21         T_BYTE = 1,
22         T_WORD = 2,
23         T_INT = 3,
24         T_FLOAT = 4,
25         T_DOUBLE = 5
26 };
27 typedef enum arg_type arg_type;
28 bool_t xdr_arg_type();
29 
30 
31 struct arg_value {
32         arg_type type;
33         union {
34                 char v_byte;
35                 short v_word;
36                 int v_int;
37                 float v_fp;
38                 double v_dp;
39         } arg_value_u;
40 };
41 typedef struct arg_value arg_value;
42 bool_t xdr_arg_value();
43 
44 struct func_call {
45         int func_addr;
46         struct {
47                 u_int args_len;
48                 arg_value *args_val;
49         } args;
50 };
51 typedef struct func_call func_call;
52 bool_t xdr_func_call();
53 
54 
55 typedef char *arg_one;
56 bool_t xdr_arg_one();
57 
58 
59 typedef struct {
60         u_int arg_array_len;
61         arg_one *arg_array_val;
62 } arg_array;
63 bool_t xdr_arg_array();
64 
65 
66 /*
67  * Structures used to pass structures required for
68  * process control but not part of the standard ptrace interface
69  */
70 
71 /*
72  * arg_info is used to pass arguments into process start
73  */
74 struct arg_info {
75 	int rargc;
76 	char **rargv;
77 };
78 typedef struct arg_info Arg_info;
79 
80 
81 enum EVENT_TYPE {
82         EVENT_BREAK = 0,
83         EVENT_STOP = 1,
84         EVENT_EXIT = 2,
85         EVENT_BUS_ERR = 3,
86         EVENT_SUSPEND = 4,
87         EVENT_ZERO_DIV = 5,
88         EVENT_SIGNAL = 6,
89         EVENT_START = 7
90 };
91 typedef enum EVENT_TYPE EVENT_TYPE;
92 
93 
94 struct RDB_EVENT {
95 	int status;
96 	int taskId;
97         EVENT_TYPE eventType;
98         int sigType;
99 };
100 typedef struct RDB_EVENT RDB_EVENT;
101 
102 
103 struct TASK_START {
104         int status;
105         int pid;
106 };
107 typedef struct TASK_START TASK_START;
108 
109 
110 struct SYMBOL_ADDR {
111         int status;
112         u_int addr;
113 };
114 typedef struct SYMBOL_ADDR SYMBOL_ADDR;
115 
116 struct SOURCE_STEP {
117 	int taskId;
118 	u_int startAddr;
119 	u_int endAddr;
120 };
121 typedef struct SOURCE_STEP SOURCE_STEP;
122 
123 #define MAX_ARG_CNT 10
124 #define MAX_FUNC_ARGS 100
125 #define MAX_ARG_LEN   100
126 
127 
128 bool_t xdr_arg_info();
129 bool_t xdr_EVENT_TYPE();
130 bool_t xdr_RDB_EVENT();
131 bool_t xdr_TASK_START();
132 bool_t xdr_SYMBOL_ADDR();
133 bool_t xdr_SOURCE_STEP();
134 
135 #define RDBPROG (u_long) 0x44444444
136 #define RDBVERS (u_long) 3
137 #endif	INCxdrrdbh
138