* sim-base.h (sim_state_base): Move `magic' to end of struct.
[deliverable/binutils-gdb.git] / include / dis-asm.h
index ac8c724601c15813d47cb800d89bc50822fc77a2..a16ca00acea1d1088e31aeafdaad31863f2fb386 100644 (file)
@@ -40,8 +40,22 @@ typedef struct disassemble_info {
   FILE *stream;
   PTR application_data;
 
-  /* For use by the disassembler.  */
-  int flags;
+  /* Target description.  We could replace this with a pointer to the bfd,
+     but that would require one.  There currently isn't any such requirement
+     so to avoid introducing one we record these explicitly.  */
+  /* The bfd_flavour.  This can be bfd_target_unknown_flavour.  */
+  enum bfd_flavour flavour;
+  /* The bfd_arch value.  */
+  enum bfd_architecture arch;
+  /* The bfd_mach value.  */
+  unsigned long mach;
+  /* Endianness (for bi-endian cpus).  Mono-endian cpus can ignore this.  */
+  enum bfd_endian endian;
+
+  /* For use by the disassembler.
+     The top 16 bits are reserved for public use (and are documented here).
+     The bottom 16 bits are for the internal use of the disassembler.  */
+  unsigned long flags;
   PTR private_data;
 
   /* Function used to get bytes to disassemble.  MEMADDR is the
@@ -101,12 +115,14 @@ extern int print_insn_z8001               PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_z8002            PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_h8300            PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_h8300h           PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_h8300s           PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_h8500            PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_alpha            PARAMS ((bfd_vma, disassemble_info*));
 /* start-sanitize-arc */
-extern int print_insn_arc              PARAMS ((bfd_vma, disassemble_info*));
+extern disassembler_ftype arc_get_disassembler PARAMS ((int, int));
 /* end-sanitize-arc */
-extern int print_insn_arm              PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_big_arm          PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_little_arm       PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_sparc            PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_big_a29k         PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_little_a29k      PARAMS ((bfd_vma, disassemble_info*));
@@ -114,12 +130,23 @@ extern int print_insn_i960                PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_sh               PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_shl              PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_hppa             PARAMS ((bfd_vma, disassemble_info*));
+/* start-sanitize-m32r */
+extern int print_insn_m32r             PARAMS ((bfd_vma, disassemble_info*));
+/* end-sanitize-m32r */
 extern int print_insn_m88k             PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_mn10200          PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_mn10300          PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_ns32k            PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_big_powerpc      PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_little_powerpc   PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_rs6000           PARAMS ((bfd_vma, disassemble_info*));
 extern int print_insn_w65              PARAMS ((bfd_vma, disassemble_info*));
+/* start-sanitize-d10v */
+extern int print_insn_d10v             PARAMS ((bfd_vma, disassemble_info*));
+/* end-sanitize-d10v */
+/* start-sanitize-v850 */
+extern int print_insn_v850             PARAMS ((bfd_vma, disassemble_info*));
+/* end-sanitize-v850 */
 
 /* Fetch the disassembler for a given BFD, if that support is available.  */
 extern disassembler_ftype disassembler PARAMS ((bfd *));
@@ -138,14 +165,28 @@ extern int buffer_read_memory
 extern void perror_memory PARAMS ((int, bfd_vma, struct disassemble_info *));
 
 
-/* Just print the address is hex.  This is included for completeness even
+/* Just print the address in hex.  This is included for completeness even
    though both GDB and objdump provide their own (to print symbolic
    addresses).  */
 extern void generic_print_address
   PARAMS ((bfd_vma, struct disassemble_info *));
 
-#define INIT_DISASSEMBLE_INFO(INFO, STREAM) \
-  (INFO).fprintf_func = (fprintf_ftype)fprintf, \
+/* Macro to initialize a disassemble_info struct.  This should be called
+   by all applications creating such a struct.  */
+#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \
+  (INFO).flavour = bfd_target_unknown_flavour, \
+  (INFO).arch = bfd_arch_unknown, \
+  (INFO).mach = 0, \
+  (INFO).endian = BFD_ENDIAN_UNKNOWN, \
+  INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC)
+
+/* Call this macro to initialize only the internal variables for the
+   disassembler.  Architecture dependent things such as byte order, or machine
+   variant are not touched by this macro.  This makes things much easier for
+   GDB which must initialize these things seperatly.  */
+
+#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
+  (INFO).fprintf_func = (FPRINTF_FUNC), \
   (INFO).stream = (STREAM), \
   (INFO).buffer = NULL, \
   (INFO).buffer_vma = 0, \
@@ -153,34 +194,7 @@ extern void generic_print_address
   (INFO).read_memory_func = buffer_read_memory, \
   (INFO).memory_error_func = perror_memory, \
   (INFO).print_address_func = generic_print_address, \
-  (INFO).insn_info_valid = 0
-
-
-
-\f
-/* This block of definitions is for calling the instruction decoders
-   from GDB.  */
-
-/* GDB--Like target_read_memory, but slightly different parameters.  */
-extern int
-dis_asm_read_memory PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, int len,
-                            disassemble_info *info));
-
-/* GDB--Like memory_error with slightly different parameters.  */
-extern void
-dis_asm_memory_error
-  PARAMS ((int status, bfd_vma memaddr, disassemble_info *info));
-
-/* GDB--Like print_address with slightly different parameters.  */
-extern void
-dis_asm_print_address PARAMS ((bfd_vma addr, disassemble_info *info));
-
-#define GDB_INIT_DISASSEMBLE_INFO(INFO, STREAM) \
-  (INFO).fprintf_func = (fprintf_ftype)fprintf_filtered, \
-  (INFO).stream = (STREAM), \
-  (INFO).read_memory_func = dis_asm_read_memory, \
-  (INFO).memory_error_func = dis_asm_memory_error, \
-  (INFO).print_address_func = dis_asm_print_address, \
+  (INFO).flags = 0, \
   (INFO).insn_info_valid = 0
 
 #endif /* ! defined (DIS_ASM_H) */
This page took 0.024597 seconds and 4 git commands to generate.