diff options
author | Andrew Cagney <cagney@redhat.com> | 1998-12-14 02:37:16 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1998-12-14 02:37:16 +0000 |
commit | f7e85b1bc11e564d356933c447070a55ff5fa56d (patch) | |
tree | 676c86e49ebbc3c02e29a16a41cfb7a6ab77138b /gdb/gdbarch.h | |
parent | aaa3c096db1beebb67015bc8711cf908f7f2559b (diff) | |
download | gdb-f7e85b1bc11e564d356933c447070a55ff5fa56d.zip gdb-f7e85b1bc11e564d356933c447070a55ff5fa56d.tar.gz gdb-f7e85b1bc11e564d356933c447070a55ff5fa56d.tar.bz2 |
CARP:
Consolidate the semi-dynamic target system dependant GDB parameters
moving them all into a new file.
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r-- | gdb/gdbarch.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h new file mode 100644 index 0000000..1c93bb3 --- /dev/null +++ b/gdb/gdbarch.h @@ -0,0 +1,109 @@ +/* Architecture commands for GDB, the GNU debugger. + Copyright 1998, Free Software Foundation, Inc. + +This file is part of GDB. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef GDBARCH_H +#define GDBARCH_H + + +/* The target-system-dependant byte order is dynmaic */ + +/* TARGET_BYTE_ORDER_SELECTABLE_P determines if the target endianness + is selectable at runtime. The user can use the `set endian' + command to change it. TARGET_BYTE_ORDER_AUTO is nonzero when + target_byte_order should be auto-detected (from the program image + say). */ + +#ifndef TARGET_BYTE_ORDER_SELECTABLE_P +/* compat - Catch old targets that define TARGET_BYTE_ORDER_SLECTABLE + when they should have defined TARGET_BYTE_ORDER_SELECTABLE_P 1 */ +#ifdef TARGET_BYTE_ORDER_SELECTABLE +#define TARGET_BYTE_ORDER_SELECTABLE_P 1 +#else +#define TARGET_BYTE_ORDER_SELECTABLE_P 0 +#endif +#endif + +extern int target_byte_order; +#ifdef TARGET_BYTE_ORDER_SELECTABLE +/* compat - Catch old targets that define TARGET_BYTE_ORDER_SELECTABLE + and expect defs.h to re-define TARGET_BYTE_ORDER. */ +#undef TARGET_BYTE_ORDER +#endif +#ifndef TARGET_BYTE_ORDER +#define TARGET_BYTE_ORDER (target_byte_order + 0) +#endif + +extern int target_byte_order_auto; +#ifndef TARGET_BYTE_ORDER_AUTO +#define TARGET_BYTE_ORDER_AUTO (target_byte_order_auto + 0) +#endif + + + +/* The target-system-dependant BFD architecture is dynamic */ + +extern int target_architecture_auto; +#define TARGET_ARCHITECTURE_AUTO (target_architecture_auto + 0) + +extern const bfd_arch_info_type *target_architecture; +#define TARGET_ARCHITECTURE (target_architecture + 0) + +/* Notify the target dependant backend of a change to the selected + architecture. A zero return status indicates that the target did + not like the change. */ + +extern int (*target_architecture_hook) PARAMS ((const bfd_arch_info_type *)); + + + +/* The target-system-dependant disassembler is semi-dynamic */ + +#include "dis-asm.h" /* Get defs for disassemble_info */ + +extern int dis_asm_read_memory PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, + int len, disassemble_info *info)); + +extern void dis_asm_memory_error PARAMS ((int status, bfd_vma memaddr, + disassemble_info *info)); + +extern void dis_asm_print_address PARAMS ((bfd_vma addr, + disassemble_info *info)); + +extern int (*tm_print_insn) PARAMS ((bfd_vma, disassemble_info*)); +extern disassemble_info tm_print_insn_info; +#ifndef TARGET_PRINT_INSN +#define TARGET_PRINT_INSN(vma, info) (*tm_print_insn) (vma, info) +#endif +#ifndef TARGET_PRINT_INSN_INFO +#define TARGET_PRINT_INSN_INFO (&tm_print_insn_info) +#endif + + + +/* Set the dynamic target-system-dependant parameters (architecture, + byte-order, ...) using information found in the BFD */ + +extern void set_gdbarch_from_file PARAMS ((bfd *)); + +/* Explicitly set the dynamic target-system-dependant parameters based + on bfd_architecture and machine. */ + +extern void set_architecture_from_arch_mach PARAMS ((enum bfd_architecture, unsigned long)); + +#endif |