gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / reggroups.h
CommitLineData
b59ff9d5
AC
1/* Register groupings for GDB, the GNU debugger.
2
b811d2c2 3 Copyright (C) 2002-2020 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);
f7efd549
SH
44/* Create a new register group allocated onto the gdbarch obstack. */
45extern struct reggroup *reggroup_gdbarch_new (struct gdbarch *gdbarch,
46 const char *name,
47 enum reggroup_type type);
b59ff9d5
AC
48
49/* Add a register group (with attribute values) to the pre-defined list. */
50extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group);
51
52/* Register group attributes. */
53extern const char *reggroup_name (struct reggroup *reggroup);
54extern enum reggroup_type reggroup_type (struct reggroup *reggroup);
55
55b40027
AB
56/* Iterators for the architecture's register groups. Pass in NULL, returns
57 the first (for next), or last (for prev) group. Pass in a group,
58 returns the next or previous group, or NULL when either the end or the
59 beginning of the group list is reached. */
6c7d17ba
AC
60extern struct reggroup *reggroup_next (struct gdbarch *gdbarch,
61 struct reggroup *last);
55b40027
AB
62extern struct reggroup *reggroup_prev (struct gdbarch *gdbarch,
63 struct reggroup *curr);
f7efd549
SH
64/* Find a reggroup by name. */
65extern reggroup *reggroup_find (struct gdbarch *gdbarch, const char *name);
b59ff9d5
AC
66
67/* Is REGNUM a member of REGGROUP? */
68extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
69 struct reggroup *reggroup);
70
71#endif
This page took 1.684039 seconds and 4 git commands to generate.