summaryrefslogtreecommitdiff
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
commit9c77e47cdf8b2a655c621618ef7ec5c973133d66 (patch)
treedfd474ffdb9447c897e669d26c10b61b3b595865 /gdb/i386-tdep.h
parentad5b76cbb41e2dc4577b36471d4eff3b8eb87cac (diff)
downloadgdb-9c77e47cdf8b2a655c621618ef7ec5c973133d66.tar.gz
* 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 a990adf0d66..0bdbb057e2f 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 */