From 022c98ab88317728d2f77fc1b3726bf1717dacff Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Sat, 29 Mar 2014 09:39:44 +0000 Subject: [PATCH] M68K: Migrate from 'regset_from_core_section' to 'iterate_over_regset_sections' For m68k BSD and GNU/Linux targets, no longer define the gdbarch method 'regset_from_core_section', but the iterator method instead. gdb/ChangeLog: * m68kbsd-tdep.c (m68kbsd_regset_from_core_section): Remove. (m68kbsd_iterate_over_regset_sections): New. (m68kbsd_init_abi): Adjust gdbarch initialization. * m68klinux-tdep.c (m68k_linux_regset_from_core_section): Remove. (m68k_linux_iterate_over_regset_sections): New. (m68k_linux_init_abi): Adjust gdbarch initialization. --- gdb/ChangeLog | 9 +++++++++ gdb/m68kbsd-tdep.c | 24 ++++++++++-------------- gdb/m68klinux-tdep.c | 27 ++++++++++----------------- 3 files changed, 29 insertions(+), 31 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9b822b4..d68ecbb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2014-09-30 Andreas Arnez + * m68kbsd-tdep.c (m68kbsd_regset_from_core_section): Remove. + (m68kbsd_iterate_over_regset_sections): New. + (m68kbsd_init_abi): Adjust gdbarch initialization. + * m68klinux-tdep.c (m68k_linux_regset_from_core_section): Remove. + (m68k_linux_iterate_over_regset_sections): New. + (m68k_linux_init_abi): Adjust gdbarch initialization. + +2014-09-30 Andreas Arnez + * m32r-linux-tdep.c (M32R_LINUX_GREGS_SIZE): New macro. (m32r_linux_regset_from_core_section): Remove. (m32r_linux_iterate_over_regset_sections): New. diff --git a/gdb/m68kbsd-tdep.c b/gdb/m68kbsd-tdep.c index 6ce12b8..a329eab 100644 --- a/gdb/m68kbsd-tdep.c +++ b/gdb/m68kbsd-tdep.c @@ -114,20 +114,16 @@ static const struct regset m68kbsd_fpregset = m68kbsd_supply_fpregset }; -/* Return the appropriate register set for the core section identified - by SECT_NAME and SECT_SIZE. */ +/* Iterate over core file register note sections. */ -static const struct regset * -m68kbsd_regset_from_core_section (struct gdbarch *gdbarch, - const char *sect_name, size_t sect_size) +static void +m68kbsd_iterate_over_regset_sections (struct gdbarch *gdbarch, + iterate_over_regset_sections_cb *cb, + void *cb_data, + const struct regcache *regcache) { - if (strcmp (sect_name, ".reg") == 0 && sect_size >= M68KBSD_SIZEOF_GREGS) - return &m68kbsd_gregset; - - if (strcmp (sect_name, ".reg2") == 0 && sect_size >= M68KBSD_SIZEOF_FPREGS) - return &m68kbsd_fpregset; - - return NULL; + cb (".reg", M68KBSD_SIZEOF_GREGS, &m68kbsd_gregset, NULL, cb_data); + cb (".reg2", M68KBSD_SIZEOF_FPREGS, &m68kbsd_fpregset, NULL, cb_data); } @@ -195,8 +191,8 @@ m68kbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_decr_pc_after_break (gdbarch, 2); - set_gdbarch_regset_from_core_section - (gdbarch, m68kbsd_regset_from_core_section); + set_gdbarch_iterate_over_regset_sections + (gdbarch, m68kbsd_iterate_over_regset_sections); } /* OpenBSD and NetBSD a.out. */ diff --git a/gdb/m68klinux-tdep.c b/gdb/m68klinux-tdep.c index ae2da9a..61e3cda 100644 --- a/gdb/m68klinux-tdep.c +++ b/gdb/m68klinux-tdep.c @@ -369,23 +369,16 @@ static const struct regset m68k_linux_fpregset = regcache_supply_regset, regcache_collect_regset }; -/* Return the appropriate register set for the core section identified - by SECT_NAME and SECT_SIZE. */ +/* Iterate over core file register note sections. */ -static const struct regset * -m68k_linux_regset_from_core_section (struct gdbarch *gdbarch, - const char *sect_name, - size_t sect_size) +static void +m68k_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, + iterate_over_regset_sections_cb *cb, + void *cb_data, + const struct regcache *regcache) { - if (strcmp (sect_name, ".reg") == 0 - && sect_size >= M68K_LINUX_GREGS_SIZE) - return &m68k_linux_gregset; - - if (strcmp (sect_name, ".reg2") == 0 - && sect_size >= M68K_LINUX_FPREGS_SIZE) - return &m68k_linux_fpregset; - - return NULL; + cb (".reg", M68K_LINUX_GREGS_SIZE, &m68k_linux_gregset, NULL, cb_data); + cb (".reg2", M68K_LINUX_FPREGS_SIZE, &m68k_linux_fpregset, NULL, cb_data); } static void @@ -423,8 +416,8 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); /* Core file support. */ - set_gdbarch_regset_from_core_section - (gdbarch, m68k_linux_regset_from_core_section); + set_gdbarch_iterate_over_regset_sections + (gdbarch, m68k_linux_iterate_over_regset_sections); /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, -- 2.7.4