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