diff options
author | Mark Kettenis <kettenis@gnu.org> | 2002-05-09 13:53:36 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2002-05-09 13:53:36 +0000 |
commit | 9c77e47cdf8b2a655c621618ef7ec5c973133d66 (patch) | |
tree | dfd474ffdb9447c897e669d26c10b61b3b595865 /gdb/i386-tdep.h | |
parent | ad5b76cbb41e2dc4577b36471d4eff3b8eb87cac (diff) | |
download | gdb-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.h | 24 |
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 */ |