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