aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.h
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2002-05-09 13:53:36 +0000
committerMark Kettenis <kettenis@gnu.org>2002-05-09 13:53:36 +0000
commit3ce1502b874a327cac9143b69c6912856deaaa28 (patch)
tree900d6b6239725841747c02b3f0b5701502ddd3c2 /gdb/i386-tdep.h
parentcc8a6dd09b7219289b0ceac611fc095fcde68153 (diff)
downloadgdb-3ce1502b874a327cac9143b69c6912856deaaa28.zip
gdb-3ce1502b874a327cac9143b69c6912856deaaa28.tar.gz
gdb-3ce1502b874a327cac9143b69c6912856deaaa28.tar.bz2
* i386-tdep.h (i386_abi): New enum.
(struct gdbarch_tdep): Replace os_ident member with abi. (i386_gdbarch_register_os_abi): New prototype. * i386-tdep.c (i386_abi_names): New array. (process_note_abi_tag_sections): Removed. (process_note_sections): New function. (i386_elf_abi_from_note, i386_elf_abi): New functions. (struct i386_abi_handler): New struct. (i386_abi_handler_list): New variable. (i386_gdbarch_register_os_abi): New function. (i386_gdbarch_init): Adapt for the changes given above.
Diffstat (limited to 'gdb/i386-tdep.h')
-rw-r--r--gdb/i386-tdep.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index a990adf..0bdbb05 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -40,11 +40,27 @@
differs and is determined by the num_xmm_regs member of `struct
gdbarch_tdep'. */
+/* ABI variants that we know about. */
+enum i386_abi
+{
+ I386_ABI_UNKNOWN = 0,
+
+ /* ELF */
+ I386_ABI_SVR4, /* This is the default. */
+ I386_ABI_NETBSD,
+ I386_ABI_LINUX,
+ I386_ABI_HURD,
+ I386_ABI_SOLARIS,
+ I386_ABI_FREEBSD,
+
+ I386_ABI_INVALID = -1
+};
+
/* i386 architecture specific information. */
struct gdbarch_tdep
{
- /* OS/ABI. */
- int os_ident;
+ /* ABI. */
+ enum i386_abi abi;
/* Number of SSE registers. */
int num_xmm_regs;
@@ -113,4 +129,8 @@ struct gdbarch_tdep
#define IS_FPU_CTRL_REGNUM(n) FPC_REGNUM_P (n)
#define IS_SSE_REGNUM(n) SSE_REGNUM_P (n)
+void i386_gdbarch_register_os_abi (enum i386_abi,
+ void (*init_abi)(struct gdbarch_info,
+ struct gdbarch *));
+
#endif /* i386-tdep.h */