static void tui_reg_next_command (char *arg, int from_tty) { if (TUI_DATA_WIN != 0) { struct reggroup *group = TUI_DATA_WIN->detail.data_display_info.current_group; group = reggroup_next (current_gdbarch, group); if (group == 0) group = reggroup_next (current_gdbarch, 0); if (group) tui_show_registers (group); } }
static int gdb_reggroup (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj **objv) { struct reggroup *group; char *groupname; int regnum, num; if (objc != 1) { Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo group groupname"); return TCL_ERROR; } groupname = Tcl_GetStringFromObj (objv[0], NULL); if (groupname == NULL) { gdbtk_set_result (interp, "could not read groupname"); return TCL_ERROR; } for (group = reggroup_next (get_current_arch (), NULL); group != NULL; group = reggroup_next (get_current_arch (), group)) { if (strcmp (groupname, reggroup_name (group)) == 0) break; } if (group == NULL) return TCL_ERROR; num = (gdbarch_num_regs (get_current_arch ()) + gdbarch_num_pseudo_regs (get_current_arch ())); for (regnum = 0; regnum < num; regnum++) { if (gdbarch_register_reggroup_p (get_current_arch (), regnum, group)) Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum)); } return TCL_OK; }
static int gdb_reggrouplist (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj **objv) { struct reggroup *group; int i = 0; if (objc != 0) { Tcl_WrongNumArgs (interp, 0, objv, "gdb_reginfo grouplist"); return TCL_ERROR; } for (group = reggroup_next (get_current_arch (), NULL); group != NULL; group = reggroup_next (get_current_arch (), group)) { if (reggroup_type (group) == USER_REGGROUP) Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewStringObj (reggroup_name (group), -1)); } return TCL_OK; }