1 /* Register groupings for GDB, the GNU debugger.
3 Copyright (C) 2002 Free Software Foundation, Inc.
5 Contributed by Red Hat.
7 This file is part of GDB.
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
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
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.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 Boston, MA 02110-1301, USA. */
30 enum reggroup_type
{ USER_REGGROUP
, INTERNAL_REGGROUP
};
32 /* Pre-defined, user visible, register groups. */
33 extern struct reggroup
*const general_reggroup
;
34 extern struct reggroup
*const float_reggroup
;
35 extern struct reggroup
*const system_reggroup
;
36 extern struct reggroup
*const vector_reggroup
;
37 extern struct reggroup
*const all_reggroup
;
39 /* Pre-defined, internal, register groups. */
40 extern struct reggroup
*const save_reggroup
;
41 extern struct reggroup
*const restore_reggroup
;
43 /* Create a new local register group. */
44 extern struct reggroup
*reggroup_new (const char *name
,
45 enum reggroup_type type
);
47 /* Add a register group (with attribute values) to the pre-defined list. */
48 extern void reggroup_add (struct gdbarch
*gdbarch
, struct reggroup
*group
);
50 /* Register group attributes. */
51 extern const char *reggroup_name (struct reggroup
*reggroup
);
52 extern enum reggroup_type
reggroup_type (struct reggroup
*reggroup
);
54 /* Interator for the architecture's register groups. Pass in NULL,
55 returns the first group. Pass in a group, returns the next group,
56 or NULL when the last group is reached. */
57 extern struct reggroup
*reggroup_next (struct gdbarch
*gdbarch
,
58 struct reggroup
*last
);
60 /* Is REGNUM a member of REGGROUP? */
61 extern int default_register_reggroup_p (struct gdbarch
*gdbarch
, int regnum
,
62 struct reggroup
*reggroup
);