Automatic date update in version.in
[deliverable/binutils-gdb.git] / include / dis-asm.h
index ebc26048a2c82b9f632bfc7232b68445c879b9b2..6f1801df98d01cd69c9e2daf66138424539e7dc7 100644 (file)
@@ -1,6 +1,6 @@
 /* Interface between the opcode library and its callers.
 
-   Copyright (C) 1999-2015 Free Software Foundation, Inc.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
    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
@@ -210,7 +210,7 @@ typedef struct disassemble_info
   bfd_vma target2;             /* Second target address for dref2 */
 
   /* Command line options specific to the target disassembler.  */
-  char * disassembler_options;
+  const char *disassembler_options;
 
   /* If non-zero then try not disassemble beyond this address, even if
      there are values left in the buffer.  This address is the address
@@ -222,6 +222,16 @@ typedef struct disassemble_info
 
 } disassemble_info;
 
+/* This struct is used to pass information about valid disassembler options
+   and their descriptions from the target to the generic GDB functions that
+   set and display them.  */
+
+typedef struct
+{
+  const char **name;
+  const char **description;
+} disasm_options_t;
+
 \f
 /* Standard disassemblers.  Disassemble one instruction at the given
    target address.  Return number of octets processed.  */
@@ -263,6 +273,7 @@ extern int print_insn_little_arm    (bfd_vma, disassemble_info *);
 extern int print_insn_little_mips      (bfd_vma, disassemble_info *);
 extern int print_insn_little_nios2     (bfd_vma, disassemble_info *);
 extern int print_insn_little_powerpc   (bfd_vma, disassemble_info *);
+extern int print_insn_riscv            (bfd_vma, disassemble_info *);
 extern int print_insn_little_score      (bfd_vma, disassemble_info *); 
 extern int print_insn_lm32             (bfd_vma, disassemble_info *);
 extern int print_insn_m32c             (bfd_vma, disassemble_info *);
@@ -288,6 +299,7 @@ extern int print_insn_ns32k         (bfd_vma, disassemble_info *);
 extern int print_insn_or1k             (bfd_vma, disassemble_info *);
 extern int print_insn_pdp11            (bfd_vma, disassemble_info *);
 extern int print_insn_pj               (bfd_vma, disassemble_info *);
+extern int print_insn_pru              (bfd_vma, disassemble_info *);
 extern int print_insn_rs6000           (bfd_vma, disassemble_info *);
 extern int print_insn_s390             (bfd_vma, disassemble_info *);
 extern int print_insn_sh               (bfd_vma, disassemble_info *);
@@ -306,6 +318,7 @@ extern int print_insn_v850          (bfd_vma, disassemble_info *);
 extern int print_insn_vax              (bfd_vma, disassemble_info *);
 extern int print_insn_visium           (bfd_vma, disassemble_info *);
 extern int print_insn_w65              (bfd_vma, disassemble_info *);
+extern int print_insn_wasm32           (bfd_vma, disassemble_info *);
 extern int print_insn_xc16x            (bfd_vma, disassemble_info *);
 extern int print_insn_xgate             (bfd_vma, disassemble_info *);
 extern int print_insn_xstormy16                (bfd_vma, disassemble_info *);
@@ -319,7 +332,7 @@ extern int print_insn_rl78_g10              (bfd_vma, disassemble_info *);
 extern int print_insn_rl78_g13         (bfd_vma, disassemble_info *);
 extern int print_insn_rl78_g14         (bfd_vma, disassemble_info *);
 
-extern disassembler_ftype arc_get_disassembler (void *);
+extern disassembler_ftype arc_get_disassembler (bfd *);
 extern disassembler_ftype cris_get_disassembler (bfd *);
 extern disassembler_ftype rl78_get_disassembler (bfd *);
 
@@ -327,15 +340,19 @@ extern void print_aarch64_disassembler_options (FILE *);
 extern void print_i386_disassembler_options (FILE *);
 extern void print_mips_disassembler_options (FILE *);
 extern void print_ppc_disassembler_options (FILE *);
+extern void print_riscv_disassembler_options (FILE *);
 extern void print_arm_disassembler_options (FILE *);
-extern void parse_arm_disassembler_option (char *);
+extern void print_arc_disassembler_options (FILE *);
 extern void print_s390_disassembler_options (FILE *);
-extern int  get_arm_regname_num_options (void);
-extern int  set_arm_regname_option (int);
-extern int  get_arm_regnames (int, const char **, const char **, const char *const **);
+extern void print_wasm32_disassembler_options (FILE *);
 extern bfd_boolean aarch64_symbol_is_valid (asymbol *, struct disassemble_info *);
 extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *);
 extern void disassemble_init_powerpc (struct disassemble_info *);
+extern void disassemble_init_s390 (struct disassemble_info *);
+extern void disassemble_init_wasm32 (struct disassemble_info *);
+extern const disasm_options_t *disassembler_options_powerpc (void);
+extern const disasm_options_t *disassembler_options_arm (void);
+extern const disasm_options_t *disassembler_options_s390 (void);
 
 /* Fetch the disassembler for a given BFD, if that support is available.  */
 extern disassembler_ftype disassembler (bfd *);
@@ -347,6 +364,29 @@ extern void disassemble_init_for_target (struct disassemble_info * dinfo);
 /* Document any target specific options available from the disassembler.  */
 extern void disassembler_usage (FILE *);
 
+/* Remove whitespace and consecutive commas.  */
+extern char *remove_whitespace_and_extra_commas (char *);
+
+/* Like STRCMP, but treat ',' the same as '\0' so that we match
+   strings like "foobar" against "foobar,xxyyzz,...".  */
+extern int disassembler_options_cmp (const char *, const char *);
+
+/* A helper function for FOR_EACH_DISASSEMBLER_OPTION.  */
+static inline const char *
+next_disassembler_option (const char *options)
+{
+  const char *opt = strchr (options, ',');
+  if (opt != NULL)
+    opt++;
+  return opt;
+}
+
+/* A macro for iterating over each comma separated option in OPTIONS.  */
+#define FOR_EACH_DISASSEMBLER_OPTION(OPT, OPTIONS) \
+  for ((OPT) = (OPTIONS); \
+       (OPT) != NULL; \
+       (OPT) = next_disassembler_option (OPT))
+
 \f
 /* This block of definitions is for particular callers who read instructions
    into a buffer before calling the instruction decoder.  */
This page took 0.03072 seconds and 4 git commands to generate.