/* Manage register sets.
- Copyright 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef REGSET_H
#define REGSET_H 1
struct gdbarch;
struct regcache;
+/* Data structure for the supported register notes in a core file. */
+struct core_regset_section
+{
+ const char *sect_name;
+ int size;
+};
+
/* Data structure describing a register set. */
+
typedef void (supply_regset_ftype) (const struct regset *, struct regcache *,
int, const void *, size_t);
typedef void (collect_regset_ftype) (const struct regset *,
const struct regcache *,
- int, const void *, size_t);
+ int, void *, size_t);
struct regset
{
/* Function collecting values in a register set from a register cache. */
collect_regset_ftype *collect_regset;
-};
+ /* Architecture associated with the register set. */
+ struct gdbarch *arch;
+};
-/* Allocate a fresh 'struct regset' whose descr is DESCR, whose
- supply_regset function is SUPPLY_REGSET, and whose collect_regset
- function is COLLECT_REGSET. If the regset has no collect function,
- pass NULL for COLLECT_REGSET.
+/* Allocate a fresh 'struct regset' whose supply_regset function is
+ SUPPLY_REGSET, and whose collect_regset function is COLLECT_REGSET.
+ If the regset has no collect_regset function, pass NULL for
+ COLLECT_REGSET.
- The object returned is allocated using xmalloc. */
-extern struct regset *regset_xmalloc (const void *descr,
- supply_regset_ftype *supply_regset,
- collect_regset_ftype *collect_regset);
+ The object returned is allocated on ARCH's obstack. */
+extern struct regset *regset_alloc (struct gdbarch *arch,
+ supply_regset_ftype *supply_regset,
+ collect_regset_ftype *collect_regset);
#endif /* regset.h */