diff options
Diffstat (limited to 'gdb/i386-linux-tdep.h')
-rw-r--r-- | gdb/i386-linux-tdep.h | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h index de98256..8a1a244 100644 --- a/gdb/i386-linux-tdep.h +++ b/gdb/i386-linux-tdep.h @@ -21,20 +21,29 @@ #define GDB_I386_LINUX_TDEP_H #include "gdbsupport/x86-xstate.h" +#include "i386-tdep.h" -/* The Linux kernel pretends there is an additional "orig_eax" - register. Since GDB needs access to that register to be able to - properly restart system calls when necessary (see - i386-linux-tdep.c) we need our own versions of a number of - functions that deal with GDB's register cache. */ +/* Additional register numbers for i386 Linux, these are in addition to + the register numbers found in 'enum i386_regnum', see i386-tdep.h. */ -/* Register number for the "orig_eax" pseudo-register. If this - pseudo-register contains a value >= 0 it is interpreted as the - system call number that the kernel is supposed to restart. */ -#define I386_LINUX_ORIG_EAX_REGNUM (I386_PKRU_REGNUM + 1) +enum i386_linux_regnum +{ + /* STOP! The values in this enum are numbered after the values in the + enum i386_regnum. New entries should be placed after the ORIG_EAX + entry. */ -/* Total number of registers for GNU/Linux. */ -#define I386_LINUX_NUM_REGS (I386_LINUX_ORIG_EAX_REGNUM + 1) + /* Register number for the "orig_eax" pseudo-register. GDB needs access + to this register to be able to properly restart system calls when + necessary (see i386-linux-tdep.c). If this pseudo-register contains a + value >= 0 it is interpreted as the system call number that the kernel + is supposed to restart. */ + I386_LINUX_ORIG_EAX_REGNUM = I386_NUM_REGS, + + /* Total number of registers for GNU/Linux. */ + I386_LINUX_NUM_REGS + + /* STOP! Add new entries before I386_LINUX_NUM_REGS. */ +}; /* Read the XSAVE extended state xcr0 value from the ABFD core file. If it appears to be valid, return it and fill LAYOUT with values @@ -47,6 +56,7 @@ extern uint64_t i386_linux_core_read_xsave_info (bfd *abfd, /* Implement the core_read_x86_xsave_layout gdbarch method. */ extern bool i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch, + bfd &cbfd, x86_xsave_layout &layout); extern int i386_linux_gregset_reg_offset[]; |