/* Manage register sets.
- Copyright 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003-2017 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 regcache;
/* 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
{
- /* Data pointer for private use by the methods below, presumably
- providing some sort of description of the register set. */
- const void *descr;
+ /* Pointer to a "register map", for private use by the methods
+ below. Typically describes how the regset's registers are
+ arranged in the buffer collected to or supplied from. */
+ const void *regmap;
/* Function supplying values in a register set to a register cache. */
supply_regset_ftype *supply_regset;
/* Function collecting values in a register set from a register cache. */
collect_regset_ftype *collect_regset;
-};
+ unsigned flags;
+};
-/* 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.
-
- The object returned is allocated using xmalloc. */
-extern struct regset *regset_xmalloc (void *descr,
- supply_regset_ftype *supply_regset,
- collect_regset_ftype *collect_regset);
+/* Values for a regset's 'flags' field. */
+#define REGSET_VARIABLE_SIZE 1 /* Accept a larger regset section size
+ in a core file without warning. */
#endif /* regset.h */