aboutsummaryrefslogtreecommitdiff
path: root/gdb/tdesc.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/tdesc.h')
-rwxr-xr-xgdb/tdesc.h329
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