Commit | Line | Data |
---|---|---|
c906108c SS |
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 |