GDB (API)
|
00001 /* Register groupings for GDB, the GNU debugger. 00002 00003 Copyright (C) 2002-2013 Free Software Foundation, Inc. 00004 00005 Contributed by Red Hat. 00006 00007 This file is part of GDB. 00008 00009 This program is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation; either version 3 of the License, or 00012 (at your option) any later version. 00013 00014 This program is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU General Public License for more details. 00018 00019 You should have received a copy of the GNU General Public License 00020 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00021 00022 #ifndef REGGROUPS_H 00023 #define REGGROUPS_H 00024 00025 struct gdbarch; 00026 struct reggroup; 00027 00028 enum reggroup_type { USER_REGGROUP, INTERNAL_REGGROUP }; 00029 00030 /* Pre-defined, user visible, register groups. */ 00031 extern struct reggroup *const general_reggroup; 00032 extern struct reggroup *const float_reggroup; 00033 extern struct reggroup *const system_reggroup; 00034 extern struct reggroup *const vector_reggroup; 00035 extern struct reggroup *const all_reggroup; 00036 00037 /* Pre-defined, internal, register groups. */ 00038 extern struct reggroup *const save_reggroup; 00039 extern struct reggroup *const restore_reggroup; 00040 00041 /* Create a new local register group. */ 00042 extern struct reggroup *reggroup_new (const char *name, 00043 enum reggroup_type type); 00044 00045 /* Add a register group (with attribute values) to the pre-defined list. */ 00046 extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group); 00047 00048 /* Register group attributes. */ 00049 extern const char *reggroup_name (struct reggroup *reggroup); 00050 extern enum reggroup_type reggroup_type (struct reggroup *reggroup); 00051 00052 /* Interator for the architecture's register groups. Pass in NULL, 00053 returns the first group. Pass in a group, returns the next group, 00054 or NULL when the last group is reached. */ 00055 extern struct reggroup *reggroup_next (struct gdbarch *gdbarch, 00056 struct reggroup *last); 00057 00058 /* Is REGNUM a member of REGGROUP? */ 00059 extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum, 00060 struct reggroup *reggroup); 00061 00062 #endif