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/*
8modification history
9--------------------
1001c,25may91,maf  rolled RDBVERS for VxGDB 1.0 version.
1101b,12apr91,maf  rolled RDBVERS.
1201a,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
19enum 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};
27typedef enum arg_type arg_type;
28bool_t xdr_arg_type();
29
30
31struct 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};
41typedef struct arg_value arg_value;
42bool_t xdr_arg_value();
43
44struct func_call {
45        int func_addr;
46        struct {
47                u_int args_len;
48                arg_value *args_val;
49        } args;
50};
51typedef struct func_call func_call;
52bool_t xdr_func_call();
53
54
55typedef char *arg_one;
56bool_t xdr_arg_one();
57
58
59typedef struct {
60        u_int arg_array_len;
61        arg_one *arg_array_val;
62} arg_array;
63bool_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 */
74struct arg_info {
75	int rargc;
76	char **rargv;
77};
78typedef struct arg_info Arg_info;
79
80
81enum 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};
91typedef enum EVENT_TYPE EVENT_TYPE;
92
93
94struct RDB_EVENT {
95	int status;
96	int taskId;
97        EVENT_TYPE eventType;
98        int sigType;
99};
100typedef struct RDB_EVENT RDB_EVENT;
101
102
103struct TASK_START {
104        int status;
105        int pid;
106};
107typedef struct TASK_START TASK_START;
108
109
110struct SYMBOL_ADDR {
111        int status;
112        u_int addr;
113};
114typedef struct SYMBOL_ADDR SYMBOL_ADDR;
115
116struct SOURCE_STEP {
117	int taskId;
118	u_int startAddr;
119	u_int endAddr;
120};
121typedef 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
128bool_t xdr_arg_info();
129bool_t xdr_EVENT_TYPE();
130bool_t xdr_RDB_EVENT();
131bool_t xdr_TASK_START();
132bool_t xdr_SYMBOL_ADDR();
133bool_t xdr_SOURCE_STEP();
134
135#define RDBPROG (u_long) 0x44444444
136#define RDBVERS (u_long) 3
137#endif	INCxdrrdbh
138