2013-02-04 Tristan Gingold <gingold@adacore.com>
[deliverable/binutils-gdb.git] / gdb / regset.h
CommitLineData
54c84734
MK
1/* Manage register sets.
2
28e7fd62 3 Copyright (C) 2003-2013 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;
1b1818e4 31 const char *human_name;
17ea7499
CES
32};
33
54c84734 34/* Data structure describing a register set. */
9ea75c57 35
be07a590
JB
36typedef void (supply_regset_ftype) (const struct regset *, struct regcache *,
37 int, const void *, size_t);
38typedef void (collect_regset_ftype) (const struct regset *,
39 const struct regcache *,
2c34abbe 40 int, void *, size_t);
54c84734
MK
41
42struct regset
43{
44 /* Data pointer for private use by the methods below, presumably
45 providing some sort of description of the register set. */
368702b1 46 const void *descr;
54c84734 47
be07a590
JB
48 /* Function supplying values in a register set to a register cache. */
49 supply_regset_ftype *supply_regset;
50
51 /* Function collecting values in a register set from a register cache. */
52 collect_regset_ftype *collect_regset;
368702b1
MK
53
54 /* Architecture associated with the register set. */
55 struct gdbarch *arch;
54c84734
MK
56};
57
9ea75c57
MK
58/* Allocate a fresh 'struct regset' whose supply_regset function is
59 SUPPLY_REGSET, and whose collect_regset function is COLLECT_REGSET.
60 If the regset has no collect_regset function, pass NULL for
61 COLLECT_REGSET.
be07a590 62
617a4cba 63 The object returned is allocated on ARCH's obstack. */
9ea75c57 64
617a4cba 65extern struct regset *regset_alloc (struct gdbarch *arch,
617a4cba
JB
66 supply_regset_ftype *supply_regset,
67 collect_regset_ftype *collect_regset);
be07a590 68
54c84734 69#endif /* regset.h */
This page took 0.987848 seconds and 4 git commands to generate.