* gdbarch.sh: Added new gdbarch struct
[deliverable/binutils-gdb.git] / gdb / regset.h
CommitLineData
54c84734
MK
1/* Manage register sets.
2
9b254dd1 3 Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
54c84734
MK
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
54c84734
MK
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
54c84734
MK
19
20#ifndef REGSET_H
21#define REGSET_H 1
22
23struct gdbarch;
24struct regcache;
25
17ea7499
CES
26/* Data structure for the supported register notes in a core file. */
27struct core_regset_section
28{
29 const char *sect_name;
30 int size;
31};
32
54c84734 33/* Data structure describing a register set. */
9ea75c57 34
be07a590
JB
35typedef void (supply_regset_ftype) (const struct regset *, struct regcache *,
36 int, const void *, size_t);
37typedef void (collect_regset_ftype) (const struct regset *,
38 const struct regcache *,
2c34abbe 39 int, void *, size_t);
54c84734
MK
40
41struct regset
42{
43 /* Data pointer for private use by the methods below, presumably
44 providing some sort of description of the register set. */
368702b1 45 const void *descr;
54c84734 46
be07a590
JB
47 /* Function supplying values in a register set to a register cache. */
48 supply_regset_ftype *supply_regset;
49
50 /* Function collecting values in a register set from a register cache. */
51 collect_regset_ftype *collect_regset;
368702b1
MK
52
53 /* Architecture associated with the register set. */
54 struct gdbarch *arch;
54c84734
MK
55};
56
9ea75c57
MK
57/* Allocate a fresh 'struct regset' whose supply_regset function is
58 SUPPLY_REGSET, and whose collect_regset function is COLLECT_REGSET.
59 If the regset has no collect_regset function, pass NULL for
60 COLLECT_REGSET.
be07a590 61
617a4cba 62 The object returned is allocated on ARCH's obstack. */
9ea75c57 63
617a4cba 64extern struct regset *regset_alloc (struct gdbarch *arch,
617a4cba
JB
65 supply_regset_ftype *supply_regset,
66 collect_regset_ftype *collect_regset);
be07a590 67
54c84734 68#endif /* regset.h */
This page took 0.449134 seconds and 4 git commands to generate.