aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbarch.h
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1999-04-16 01:34:07 +0000
committerStan Shebs <shebs@codesourcery.com>1999-04-16 01:34:07 +0000
commit071ea11e85eb9d529cc5eb3d35f6247466a21b99 (patch)
tree5deda65b8d7b04d1f4cbc534c3206d328e1267ec /gdb/gdbarch.h
parent1730ec6b1848f0f32154277f788fb29f88d8475b (diff)
downloadgdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.zip
gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.gz
gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.bz2
Initial creation of sourceware repository
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r--gdb/gdbarch.h298
1 files changed, 0 insertions, 298 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
deleted file mode 100644
index 566f84a..0000000
--- a/gdb/gdbarch.h
+++ /dev/null
@@ -1,298 +0,0 @@
-/* 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
-
-/* start-sanitize-carp start-sanitize-vr4xxx */
-
-#ifndef GDB_MULTI_ARCH
-#define GDB_MULTI_ARCH 0
-#endif
-
-extern struct gdbarch *current_gdbarch;
-
-
-/* When GDB_MULTI_ARCH override any earlier definitions of the
- below. */
-
-extern const struct bfd_arch_info *gdbarch_bfd_arch_info PARAMS ((struct gdbarch*));
-#if GDB_MULTI_ARCH
-#undef TARGET_ARCHITECTURE
-#define TARGET_ARCHITECTURE (gdbarch_bfd_arch_info (current_gdbarch))
-#endif
-
-extern int gdbarch_byte_order PARAMS ((struct gdbarch*));
-#if GDB_MULTI_ARCH
-#undef TARGET_BYTE_ORDER
-#define TARGET_BYTE_ORDER (gdbarch_byte_order (current_gdbarch))
-#endif
-
-extern int gdbarch_long_bit PARAMS ((struct gdbarch*));
-extern void set_gdbarch_long_bit PARAMS ((struct gdbarch*, int));
-#if GDB_MULTI_ARCH
-#undef TARGET_LONG_BIT
-#define TARGET_LONG_BIT (gdbarch_long_bit (current_gdbarch))
-#endif
-
-extern int gdbarch_long_long_bit PARAMS ((struct gdbarch*));
-extern void set_gdbarch_long_long_bit PARAMS ((struct gdbarch*, int));
-#if GDB_MULTI_ARCH
-#undef TARGET_LONG_LONG_BIT
-#define TARGET_LONG_LONG_BIT (gdbarch_long_long_bit (current_gdbarch))
-#endif
-
-extern int gdbarch_ptr_bit PARAMS ((struct gdbarch*));
-extern void set_gdbarch_ptr_bit PARAMS ((struct gdbarch*, int));
-#if GDB_MULTI_ARCH
-#undef TARGET_PTR_BIT
-#define TARGET_PTR_BIT (gdbarch_ptr_bit (current_gdbarch))
-#endif
-
-extern struct gdbarch_tdep *gdbarch_tdep PARAMS ((struct gdbarch*));
-
-
-/* Mechanism for co-ordinating the selection of a specific
- architecture.
-
- GDB targets (*-tdep.c) can register an interest in a specific
- architecture. Other GDB components can register a need to maintain
- per-architecture data.
-
- The mechanisms below ensures that only a loose connection between
- the set-architecture command and the various GDB components exists.
- Each component can independantly register their need to maintain
- architecture specific data with gdbarch.
-
- Pragmatics:
-
- Previously, a single TARGET_ARCHITECTURE_HOOK was provided. It
- didn't scale.
-
- The more traditional mega-struct containing architecture specific
- data for all the various GDB components was also considered. Since
- GDB is built from a variable number of (fairly independant)
- components this global aproach was considered non-applicable. */
-
-
-/* Register a new architectural family with GDB.
-
- Register support for the specified architecture with GDB. When
- ever gdbarch determines that this architecture has been selected,
- the specifed INIT function is called.
-
- INIT takes two parameters: INFO which contains the information
- available to gdbarch about the (possibly new) architecture; ARCHES
- which is a list of the previously created ``struct gdbarch'' for
- this architecture. When possible, and when no other value was
- provided, INFO is initialized using either the ABFD or the current
- GDBARCH.
-
- The INIT function shall return any of: NULL indicating that it
- doesn't reconize the selected architecture; an existing ``struct
- gdbarch'' from the ARCHES list (indicating that the new
- architecture is just a synonym for an earlier architecture); create
- and then return a new ``struct gdbarch'' for this new architecture
- (using gdbarch_alloc()). */
-
-struct gdbarch_list
-{
- struct gdbarch *gdbarch;
- struct gdbarch_list *next;
-};
-
-struct gdbarch_info
-{
- /* Default: bfd_arch_unknown. */
- enum bfd_architecture bfd_architecture;
-
- /* Default: NULL */
- const struct bfd_arch_info *bfd_arch_info;
-
- /* Default: 0 */
- int byte_order;
-
- /* Default: NULL */
- bfd *abfd;
-
- /* Default: NULL */
- struct gdbarch_tdep_info *tdep_info;
-};
-
-typedef struct gdbarch *(gdbarch_init_ftype) PARAMS ((struct gdbarch_info info, struct gdbarch_list *arches));
-
-extern void register_gdbarch_init PARAMS ((enum bfd_architecture, gdbarch_init_ftype *));
-
-/* Helper function. Search ARCHES for a gdbarch that matches
- information provided by INFO. */
-
-extern struct gdbarch_list *gdbarch_list_lookup_by_info PARAMS ((struct gdbarch_list *arches, const struct gdbarch_info *info));
-
-/* Helper function. Create a preliminary ``struct gdbarch''. Perform
- basic initialization using values from the INFO structure. */
-
-extern struct gdbarch *gdbarch_alloc PARAMS ((const struct gdbarch_info *, struct gdbarch_tdep *));
-
-/* Helper function. Force the updating of the current architecture.
- Used by targets that have added their own target specific
- architecture manipulation commands. */
-
-extern int gdbarch_update PARAMS ((struct gdbarch_info));
-
-
-
-/* Register per-architecture data-pointer.
-
- Reserve space for a per-architecture data-pointer. An identifier
- for the reserved data-pointer is returned. That identifer should
- be saved in a local static.
-
- When a new architecture is selected, INIT() is called. When a
- previous architecture is re-selected, the per-architecture
- data-pointer for that previous architecture is restored (INIT() is
- not called).
-
- INIT() shall return the initial value for the per-architecture
- data-pointer for the current architecture.
-
- Multiple registrarants for any architecture are allowed (and
- strongly encouraged). */
-
-typedef void *(gdbarch_data_ftype) PARAMS ((void));
-extern struct gdbarch_data *register_gdbarch_data PARAMS ((gdbarch_data_ftype *init));
-
-
-/* Return the value of the per-architecture data-pointer for the
- current architecture. */
-
-extern void *gdbarch_data PARAMS ((struct gdbarch_data*));
-
-
-/* Register per-architecture memory region.
-
- For legacy code, provide a memory-region swap mechanism.
- Per-architecture memory blocks are created, these being swapped
- whenever the architecture is changed. For a new architecture, the
- memory region is initialized with zero (0) and the INIT function is
- called.
-
- Memory regions are swapped / initialized in the order that they are
- registered. NULL DATA and/or INIT values can be specified. */
-
-typedef void (gdbarch_swap_ftype) PARAMS ((void));
-extern void register_gdbarch_swap PARAMS ((void *data, unsigned long size, gdbarch_swap_ftype *init));
-
-
-/* end-sanitize-carp end-sanitize-vr4xxx */
-
-/* The target-system-dependant byte order is dynamic */
-
-/* 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;
-#ifndef TARGET_ARCHITECTURE_AUTO
-#define TARGET_ARCHITECTURE_AUTO (target_architecture_auto + 0)
-#endif
-
-extern const struct bfd_arch_info *target_architecture;
-#ifndef TARGET_ARCHITECTURE
-#define TARGET_ARCHITECTURE (target_architecture + 0)
-#endif
-
-/* 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 struct bfd_arch_info *));
-
-
-
-/* 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));
-
-
-/* gdbarch trace variable */
-extern int gdbarch_debug;
-
-#endif