GDBserver self tests
[deliverable/binutils-gdb.git] / gdb / reggroups.h
CommitLineData
b59ff9d5
AC
1/* Register groupings for GDB, the GNU debugger.
2
61baf725 3 Copyright (C) 2002-2017 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
55b40027
AB
52/* Iterators for the architecture's register groups. Pass in NULL, returns
53 the first (for next), or last (for prev) group. Pass in a group,
54 returns the next or previous group, or NULL when either the end or the
55 beginning of the group list is reached. */
6c7d17ba
AC
56extern struct reggroup *reggroup_next (struct gdbarch *gdbarch,
57 struct reggroup *last);
55b40027
AB
58extern struct reggroup *reggroup_prev (struct gdbarch *gdbarch,
59 struct reggroup *curr);
b59ff9d5
AC
60
61/* Is REGNUM a member of REGGROUP? */
62extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
63 struct reggroup *reggroup);
64
65#endif
This page took 1.336631 seconds and 4 git commands to generate.