133 lines
2.4 KiB
C
133 lines
2.4 KiB
C
/* xdr_rdb.h - xdr for additional rdb structures */
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01a,23may90,llk created using xdr_dbx.h.
|
|
added arg_array to replace arg_info. arg_info had
|
|
MAXNCMDARGS (= 100) as the max limit of char strings,
|
|
but it should be MAX_TASK_ARGS (= 10).
|
|
*/
|
|
|
|
#ifndef INCxdrrdbh
|
|
#define INCxdrrdbh
|
|
|
|
enum arg_type {
|
|
T_UNKNOWN = 0,
|
|
T_BYTE = 1,
|
|
T_WORD = 2,
|
|
T_INT = 3,
|
|
T_FLOAT = 4,
|
|
T_DOUBLE = 5,
|
|
};
|
|
typedef enum arg_type arg_type;
|
|
bool_t xdr_arg_type();
|
|
|
|
|
|
struct arg_value {
|
|
arg_type type;
|
|
union {
|
|
char v_byte;
|
|
short v_word;
|
|
int v_int;
|
|
float v_fp;
|
|
double v_dp;
|
|
} arg_value_u;
|
|
};
|
|
typedef struct arg_value arg_value;
|
|
bool_t xdr_arg_value();
|
|
|
|
struct func_call {
|
|
int func_addr;
|
|
struct {
|
|
u_int args_len;
|
|
arg_value *args_val;
|
|
} args;
|
|
};
|
|
typedef struct func_call func_call;
|
|
bool_t xdr_func_call();
|
|
|
|
|
|
typedef char *arg_one;
|
|
bool_t xdr_arg_one();
|
|
|
|
|
|
typedef struct {
|
|
u_int arg_array_len;
|
|
arg_one *arg_array_val;
|
|
} arg_array;
|
|
bool_t xdr_arg_array();
|
|
|
|
|
|
/*
|
|
* Structures used to pass structures required for
|
|
* process control but not part of the standard ptrace interface
|
|
*/
|
|
|
|
/*
|
|
* arg_info is used to pass arguments into process start
|
|
*/
|
|
struct arg_info {
|
|
int rargc;
|
|
char **rargv;
|
|
};
|
|
typedef struct arg_info Arg_info;
|
|
|
|
|
|
enum EVENT_TYPE {
|
|
EVENT_BREAK = 0,
|
|
EVENT_STOP = 1,
|
|
EVENT_EXIT = 2,
|
|
EVENT_BUS_ERR = 3,
|
|
EVENT_SUSPEND = 4,
|
|
EVENT_ZERO_DIV = 5,
|
|
EVENT_SIGNAL = 6,
|
|
EVENT_START = 7,
|
|
};
|
|
typedef enum EVENT_TYPE EVENT_TYPE;
|
|
|
|
|
|
struct RDB_EVENT {
|
|
int status;
|
|
int taskId;
|
|
EVENT_TYPE eventType;
|
|
int sigType;
|
|
};
|
|
typedef struct RDB_EVENT RDB_EVENT;
|
|
|
|
|
|
struct TASK_START {
|
|
int status;
|
|
int pid;
|
|
};
|
|
typedef struct TASK_START TASK_START;
|
|
|
|
|
|
struct SYMBOL_ADDR {
|
|
int status;
|
|
u_int addr;
|
|
};
|
|
typedef struct SYMBOL_ADDR SYMBOL_ADDR;
|
|
|
|
struct SOURCE_STEP {
|
|
int taskId;
|
|
u_int startAddr;
|
|
u_int endAddr;
|
|
};
|
|
typedef struct SOURCE_STEP SOURCE_STEP;
|
|
|
|
#define MAX_ARG_CNT 10
|
|
#define MAX_FUNC_ARGS 100
|
|
#define MAX_ARG_LEN 100
|
|
|
|
bool_t xdr_arg_info();
|
|
bool_t xdr_EVENT_TYPE();
|
|
bool_t xdr_RDB_EVENT();
|
|
bool_t xdr_TASK_START();
|
|
bool_t xdr_SYMBOL_ADDR();
|
|
bool_t xdr_SOURCE_STEP();
|
|
|
|
#define RDBPROG (u_long) 0x44444444
|
|
#define RDBVERS (u_long) 1
|
|
#endif INCxdrrdbh
|