GDB (API)
/home/stan/gdb/src/gdb/reggroups.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines