From b59ff9d5ff023638dba11477c822313178d14e4d Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sat, 2 Nov 2002 15:13:34 +0000 Subject: 2002-11-02 Andrew Cagney * reggroups.h, reggroups.c: New files. * regcache.c: Include "reggroups.h". (enum regcache_dump_what): Add `regcache_dump_groups'. (regcache_dump): Contract size of the "Type" column. When specified, dump the register's groups. (maintenance_print_register_groups): New function. (_initialize_regcache): Add command `maint print register-groups'. * Makefile.in (COMMON_OBS): Add reggroups.o (SFILES): Add reggroups.c. (reggroups_h): Define. (regcache.o, gdbarch.o): Update dependencies. (reggroups.o): Specify dependencies. * gdbarch.sh (register_reggroup_p): Add pure multi-arch method. Add opaque declaration for `struct reggroup' in generated .h file. Include "reggroups.h" in generated .c file. gdbarch.h, gdbarch.c: Re-generate. --- gdb/reggroups.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 gdb/reggroups.h (limited to 'gdb/reggroups.h') diff --git a/gdb/reggroups.h b/gdb/reggroups.h new file mode 100644 index 0000000..0088a85 --- /dev/null +++ b/gdb/reggroups.h @@ -0,0 +1,61 @@ +/* Register groupings for GDB, the GNU debugger. + + Copyright 2002 Free Software Foundation, Inc. + + Contributed by Red Hat. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef REGGROUPS_H +#define REGGROUPS_H + +struct gdbarch; +struct reggroup; + +enum reggroup_type { USER_REGGROUP, INTERNAL_REGGROUP }; + +/* Pre-defined, user visible, register groups. */ +extern struct reggroup *const general_reggroup; +extern struct reggroup *const float_reggroup; +extern struct reggroup *const system_reggroup; +extern struct reggroup *const vector_reggroup; +extern struct reggroup *const all_reggroup; + +/* Pre-defined, internal, register groups. */ +extern struct reggroup *const save_reggroup; +extern struct reggroup *const restore_reggroup; + +/* Create a new local register group. */ +extern struct reggroup *reggroup_new (const char *name, + enum reggroup_type type); + +/* Add a register group (with attribute values) to the pre-defined list. */ +extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group); + +/* Register group attributes. */ +extern const char *reggroup_name (struct reggroup *reggroup); +extern enum reggroup_type reggroup_type (struct reggroup *reggroup); + +/* The register groups for the current architecture. */ +extern struct reggroup *const *reggroups (struct gdbarch *gdbarch); + +/* Is REGNUM a member of REGGROUP? */ +extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum, + struct reggroup *reggroup); + +#endif -- cgit v1.1