]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/reggroups.h
run copyright.sh for 2011.
[thirdparty/binutils-gdb.git] / gdb / reggroups.h
CommitLineData
b59ff9d5
AC
1/* Register groupings for GDB, the GNU debugger.
2
7b6bb8da
JB
3 Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011
4 Free Software Foundation, Inc.
b59ff9d5
AC
5
6 Contributed by Red Hat.
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
b59ff9d5
AC
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
b59ff9d5
AC
22
23#ifndef REGGROUPS_H
24#define REGGROUPS_H
25
26struct gdbarch;
27struct reggroup;
28
29enum reggroup_type { USER_REGGROUP, INTERNAL_REGGROUP };
30
31/* Pre-defined, user visible, register groups. */
32extern struct reggroup *const general_reggroup;
33extern struct reggroup *const float_reggroup;
34extern struct reggroup *const system_reggroup;
35extern struct reggroup *const vector_reggroup;
36extern struct reggroup *const all_reggroup;
37
38/* Pre-defined, internal, register groups. */
39extern struct reggroup *const save_reggroup;
40extern struct reggroup *const restore_reggroup;
41
42/* Create a new local register group. */
43extern struct reggroup *reggroup_new (const char *name,
44 enum reggroup_type type);
45
46/* Add a register group (with attribute values) to the pre-defined list. */
47extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group);
48
49/* Register group attributes. */
50extern const char *reggroup_name (struct reggroup *reggroup);
51extern enum reggroup_type reggroup_type (struct reggroup *reggroup);
52
6c7d17ba
AC
53/* Interator for the architecture's register groups. Pass in NULL,
54 returns the first group. Pass in a group, returns the next group,
55 or NULL when the last group is reached. */
56extern struct reggroup *reggroup_next (struct gdbarch *gdbarch,
57 struct reggroup *last);
b59ff9d5
AC
58
59/* Is REGNUM a member of REGGROUP? */
60extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
61 struct reggroup *reggroup);
62
63#endif