diff options
Diffstat (limited to 'gdb/tdesc.h')
-rwxr-xr-x | gdb/tdesc.h | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/gdb/tdesc.h b/gdb/tdesc.h deleted file mode 100755 index 3936330..0000000 --- a/gdb/tdesc.h +++ /dev/null @@ -1,329 +0,0 @@ -/* This file has been modified by Data General Corporation, November 1989. */ - -#ifndef _tdesc_h -#define _tdesc_h -#ifdef __STDC__ -#define _ARGS(x) x -#else -#define _ARGS(x) () -#endif - -/* - This file provides an abstract interface to "tdesc" information. - It is designed to be used in a uniform manner by several kinds - of debuggers: - (1) code in live debugged process (e.g., a traceback routine) - (2) a separate-process debugger debugging a live process - (3) a separate-process debugger debugging a memory dump - - Dcontext model notes - * captures machine context - * partial: excludes memory - * frames - * kinds - * make one for starters, chain in reverse order to previous ones - * representation: pointer to opaque - * alloc/free protocol - - Overall model - * access functions - * handle - * error handling -*/ - - - -typedef int dc_boolean_t; /* range 0 .. 1 */ -#define DC_FALSE 0 -#define DC_TRUE 1 - - -typedef int dc_tristate_t; /* range 0 .. 2 */ -#define DC_NO 0 -#define DC_YES 1 -#define DC_MAYBE 2 - - -#define DC_MII_PRECEDING_TDESC_END (1<<0) -#define DC_MII_FOLLOWING_TDESC_START (1<<1) - -#define DC_MIO_ENTRY_POINT (1<< 0) -#define DC_MIO_PROLOGUE_END (1<< 1) -#define DC_MIO_EPILOGUE_START (1<< 2) -#define DC_MIO_IMPLICIT_PROLOGUE_END (1<<16) -#define DC_MIO_LITERAL_ENTRY_POINT (1<<17) -#define DC_MIO_LITERAL_EPILOGUE_START (1<<18) - - -/* - A word is 32 bits of information. In memory, a word is word-aligned. - - A common and important use of word_t is to represent values in the - target process, including (byte) addresses in the target process. - In this case, C arithmetic can be used to simulate machine address - arithmetic on the target. (Unsigned arithmetic is actually modulus - arithmetic.) -*/ -typedef unsigned int dc_word_t; - - -/*----------------*/ - - -/* The exactness of locations may not be certainly known. */ -typedef dc_tristate_t dc_exactness_t; - - -/* - The model includes five kinds of contexts. Because each context - has an associated region and frame, these describe region kinds - and frame kinds as well. - [more description needed] - Currently, only call contexts exist. -*/ - -typedef int dc_kind_t; /* range 0 .. 4 */ -#define DC_CALL_KIND 0 -#define DC_SAVE_KIND 1 -#define DC_EXCEPTION_KIND 2 -#define DC_PROTECTION_KIND 3 -#define DC_SPECIAL_KIND 4 -#define DC_NUM_KINDS 5 - - -typedef struct dc_debug_info { - unsigned int protocol; /* 1 for this structure */ - dc_word_t tdesc_ptr; - unsigned int text_words_count; - dc_word_t text_words_ptr; - unsigned int data_words_count; - dc_word_t data_words_ptr; -} dc_debug_info_t; - - -typedef struct dc_mstate { - dc_word_t reg[32]; /* general registers */ - dc_word_t xip; - dc_word_t nip; - dc_word_t fip; - dc_word_t fpsr; - dc_word_t fpcr; - dc_word_t psr; -} dc_mstate_t; - - - -#if 0 - - void error_fcn (env, continuable, message) - dc_word_t env; /* environment (arbitrary datum) */ - boolean_t continuable; /* whether error function may return */ - char *message; /* string (no trailing newline) */ - - /* In the future, we probably want the error_fcn to be: */ - void error_fcn (env, continuable, code, ...) - dc_word_t env; /* environment (arbitrary datum) */ - boolean_t continuable; /* whether error function may return */ - int code; /* error code */ - ... /* parameters to message associated - with the code */ - - void read_fcn (env, memory, length, buffer) - dc_word_t env; /* environment (arbitrary datum) */ - dc_word_t memory; /* start address in image */ - int length; /* in bytes */ - char *buffer; /* start address of buffer */ - /* There are no alignment assumptions for the read function. */ - - void write_fcn (env, memory, length, buffer) - dc_word_t env; /* environment (arbitrary datum) */ - dc_word_t memory; /* start address in image */ - int length; /* in bytes */ - char *buffer; /* start address of buffer */ - /* There are no alignment assumptions for the write function. */ - /* The write function is optional. It must be provided if changes - to writable registers are to be made. */ - - void exec_fcn (env, mstate) - dc_word_t env; /* environment (arbitrary datum) */ - dc_mstate_t *mstate; /* machine state (read-write) */ - /* The execute function is optional. It would be used (in the future) - by the implementation of a procedurally specified tdesc mechanism. */ - -#endif - -/*----------------*/ - - -typedef struct dc_map_info_in { - dc_word_t flags; - dc_word_t preceding_tdesc_end; - dc_word_t following_tdesc_start; -} dc_map_info_in_t; - - -typedef struct dc_map_info_out { - dc_word_t flags; - dc_word_t entry_point; - dc_word_t prologue_end; - dc_word_t epilogue_start; -} dc_map_info_out_t; - - -typedef void *dc_handle_t; - -typedef void (*tdesc_error_fcn_type) _ARGS(( - dc_word_t env, /* environment (arbitrary datum) */ - dc_boolean_t continuable, /* whether error function may return */ - const char *message /* string (no trailing newline) */ -)); -typedef void (*tdesc_io_fcn_type) _ARGS(( - dc_word_t env, /* environment (arbitrary datum) */ - dc_word_t memory, /* start address in image */ - int length, /* in bytes */ - void *buffer /* start address of buffer */ -)); -typedef void (*tdesc_exec_fcn_type) _ARGS(( - dc_word_t env, /* environment (arbitrary datum) */ - dc_mstate_t *mstate /* machine state (read-write) */ -)); -typedef void (*tdesc_map_fcn_type) _ARGS(( - dc_word_t map_env, - dc_word_t loc, - dc_map_info_in_t map_info_in, - dc_map_info_out_t *map_info_out -)); - - -extern dc_handle_t dc_initiate _ARGS(( - dc_word_t debug_info_ptr, - tdesc_error_fcn_type error_fcn, - dc_word_t error_env, - tdesc_io_fcn_type read_fcn, - dc_word_t read_env, - tdesc_io_fcn_type write_fcn, /* NULL => absent */ - dc_word_t write_env, - tdesc_exec_fcn_type exec_fcn, /* NULL => absent */ - dc_word_t exec_env, - tdesc_map_fcn_type map_fcn, /* NULL => absent */ - dc_word_t map_env -)); -extern void dc_terminate _ARGS(( - dc_handle_t handle -)); - -typedef int dc_register_state_t; /* range 0 to 2 */ - -#define DC_INVALID 0 -#define DC_READABLE 1 -#define DC_WRITABLE 2 - -#define DC_NUM_REG 32 - -#define DC_AUX_LOC 0 -#define DC_AUX_SXIP 1 -#define DC_AUX_SNIP 2 -#define DC_AUX_SFIP 3 -#define DC_AUX_FPSR 4 -#define DC_AUX_FPCR 5 -#define DC_NUM_AUX 6 - - -typedef void *dc_dcontext_t; - -extern dc_dcontext_t dc_make_dcontext _ARGS(( - dc_handle_t handle, - dc_word_t reg_info[DC_NUM_REG], - dc_word_t reg_flags[2], - dc_word_t aux_info[DC_NUM_AUX], - dc_word_t aux_flags[2], - dc_exactness_t loc_exact, - dc_word_t psr_info, - dc_boolean_t psr_ind, - dc_word_t psr_flags[2] -)); -extern void dc_free_dcontext _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_register_state_t dc_location_state _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_exactness_t dc_location_exactness _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_word_t dc_location _ARGS(( - dc_dcontext_t dcontext -)); -extern void dc_set_location _ARGS(( - dc_dcontext_t dcontext, - dc_word_t value -)); -extern dc_register_state_t dc_general_register_state _ARGS(( - dc_dcontext_t dcontext, - int reg -)); -extern dc_word_t dc_general_register _ARGS(( - dc_dcontext_t dcontext, - int reg -)); -extern void dc_set_general_register _ARGS(( - dc_dcontext_t dcontext, - int reg, - dc_word_t value -)); -extern dc_register_state_t dc_auxiliary_register_state _ARGS(( - dc_dcontext_t dcontext, - int reg -)); -extern dc_word_t dc_auxiliary_register _ARGS(( - dc_dcontext_t dcontext, - int reg -)); -extern void dc_set_auxiliary_register _ARGS(( - dc_dcontext_t dcontext, - int reg, - dc_word_t value -)); -extern dc_register_state_t dc_psr_register_bit_state _ARGS(( - dc_dcontext_t dcontext, - int bit -)); -extern dc_word_t dc_psr_register _ARGS(( - dc_dcontext_t dcontext -)); -extern void dc_set_psr_register _ARGS(( - dc_dcontext_t dcontext, - dc_word_t mask, - dc_word_t value -)); -extern dc_word_t dc_frame_address _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_kind_t dc_context_kind _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_register_state_t dc_return_address_state _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_exactness_t dc_return_address_exactness _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_word_t dc_return_address _ARGS(( - dc_dcontext_t dcontext -)); -extern void dc_set_return_address _ARGS(( - dc_dcontext_t dcontext, - dc_word_t value -)); -extern void dc_get_exception_info(); -extern void dc_get_protection_info(); -extern void dc_get_special_info(); -extern dc_dcontext_t dc_previous_dcontext _ARGS(( - dc_dcontext_t dcontext -)); -extern dc_boolean_t dc_location_in_text_chunk _ARGS(( - dc_dcontext_t dcontext, - dc_word_t value -)); - -#endif |