* elf64-alpha.c (elf64_alpha_check_relocs): Only put maybe_dynamic
[binutils-gdb.git] / gdb / alpha-tdep.h
index b5e721830cf0185f53a3694f55fb68658529b4b1..cea232b502cc95dcc7c3f4a7d3f389be1c4c3180 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef ALPHA_TDEP_H
 #define ALPHA_TDEP_H
 
+#include "osabi.h"
+
 /* Say how long (ordinary) registers are.  This is a piece of bogosity
    used in push_word and a few other places;  REGISTER_RAW_SIZE is the
    real way to know how big a register is.  */
    pointer, the value of localoff is obtained from the PDR.  */
 #define ALPHA_NUM_ARG_REGS   6
 
-/* ABI variants that we know about.  If you add to this enum, please
-   update the table of names in alpha-tdep.c.  */
-enum alpha_abi
-{
-  ALPHA_ABI_UNKNOWN = 0,
-  ALPHA_ABI_OSF1,
-  ALPHA_ABI_LINUX,
-  ALPHA_ABI_FREEBSD,
-  ALPHA_ABI_NETBSD,
-
-  ALPHA_ABI_INVALID    /* Keep this last. */
-};
-
 /* Target-dependent structure in gdbarch.  */
 struct gdbarch_tdep
 {
-  enum alpha_abi alpha_abi;    /* OS/ABI of inferior.  */
-  const char *abi_name;                /* Name of the above.  */
+  enum gdb_osabi osabi;                /* OS/ABI of inferior.  */
 
   CORE_ADDR vm_min_address;    /* used by heuristic_proc_start */
+
+  /* If PC is inside a dynamically-generated signal trampoline function
+     (i.e. one copied onto the user stack at run-time), return how many
+     bytes PC is beyond the start of that function.  Otherwise, return -1.  */
+  LONGEST (*dynamic_sigtramp_offset) (CORE_ADDR);
+
+  /* If FRAME refers to a sigtramp frame, return the address of the next
+     frame.  */
+  CORE_ADDR (*skip_sigtramp_frame) (struct frame_info *, CORE_ADDR);
+
+  /* Translate a signal handler frame into the address of the sigcontext
+     structure for that signal handler.  */
+  CORE_ADDR (*sigcontext_addr) (struct frame_info *);
+
+  int jb_pc;                   /* Offset to PC value in jump buffer.
+                                  If htis is negative, longjmp support
+                                  will be disabled.  */
+  size_t jb_elt_size;          /* And the size of each entry in the buf. */
 };
 
+void alpha_software_single_step (enum target_signal, int);
+
 #endif /* ALPHA_TDEP_H */