Re: RFA: use constructor to build 'struct regset' objects

kettenis
2004-05-19T08:36:00Z

From: Jim Blandy <jimb@redhat.com>
Date: 18 May 2004 23:11:06 -0500

How's this:

2004-05-17 Jim Blandy <jimb@redhat.com>

Use a constructor function to create regset structures.
* regset.h (supply_regset_ftype, fill_regset_ftype): New typedefs.
(struct regset): Use supply_regset_ftype. Add new
'fill_regset' member.
(regset_xmalloc): New declaration.
* regset.c: New file.
* am64-tdep.c (amd64_regset_from_core_section): Use
regset_xmalloc to construct regset structures.
* amd64obsd-tdep.c (amd64obsd_regset_from_core_section): Same.
* i386-tdep.c (i386_regset_from_core_section): Same.
* i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Same.
* i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Same.
* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Same.
* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Same.
* sparc64obsd-tdep.c (sparc64obsd_init_abi): Same.
* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Same.
* Makefile.in (COMMON_OBS): Add regset.o.
(regset.o): New rule.

Could you use collect_regset instead of fill_regset. I deliberately
added regcache_raw_collect instead of regcache_raw_fill. Oh, and your
prototype for fill_regset_ftype is wrong. Should be:

typedef void (collect_regset_ftype) (const struct regsecache *,
const struct regcache *,
int, void *, size_t);

(watch the `const').

Consider a patch with those changes pre-approved.

Mark