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