* alpha-tdep.c (alpha_register_name): New function.
[deliverable/binutils-gdb.git] / gdb / tui / tuiRegs.c
index b78b9bc873cd62914cbedf8834f25a1516279299..f93d2b912cc1938445c1735d0127812733a98abc 100644 (file)
@@ -1,10 +1,23 @@
+/* TUI display registers in window.
+   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Contributed by Hewlett-Packard Company.
 
-/*
-** tuiRegs.c
-**         This module contains functions to support display of registers
-**         in the data window.
-*/
+   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.  */
 
 #include "defs.h"
 #include "tui.h"
@@ -17,7 +30,9 @@
 #include "target.h"
 #include "tuiLayout.h"
 #include "tuiWin.h"
-
+#include "tuiDataWin.h"
+#include "tuiGeneralWin.h"
+#include "tui-file.h"
 
 /*****************************************
 ** LOCAL DEFINITIONS                    **
@@ -30,9 +45,9 @@
 #define SINGLE_FLOAT_LABEL_FMT      "%6.6s: "
 #define SINGLE_FLOAT_VALUE_WIDTH    25 /* min of 8 but may be in sci notation */
 
-#define SINGLE_LABEL_WIDTH    10
+#define SINGLE_LABEL_WIDTH    16
 #define SINGLE_LABEL_FMT      "%10.10s: "
-#define SINGLE_VALUE_WIDTH    14/* minimum of 8 but may be in sci notation */
+#define SINGLE_VALUE_WIDTH    20 /* minimum of 8 but may be in sci notation */
 
 /* In the code HP gave Cygnus, this was actually a function call to a
    PA-specific function, which was supposed to determine whether the
 ** STATIC LOCAL FUNCTIONS FORWARD DECLS    **
 ******************************************/
 static TuiStatus _tuiSetRegsContent
-  PARAMS ((int, int, struct frame_info *,
-          TuiRegisterDisplayType, int));
-static char *_tuiRegisterName PARAMS ((int));
-static TuiStatus _tuiGetRegisterRawValue
-  PARAMS ((int, char *, struct frame_info *));
+  (int, int, struct frame_info *, TuiRegisterDisplayType, int);
+static char *_tuiRegisterName (int);
+static TuiStatus _tuiGetRegisterRawValue (int, char *, struct frame_info *);
 static void _tuiSetRegisterElement
-  PARAMS ((int, struct frame_info *,
-          TuiDataElementPtr, int));
-static void _tuiDisplayRegister
-  PARAMS ((int, TuiGenWinInfoPtr, enum precision_type));
+  (int, struct frame_info *, TuiDataElementPtr, int);
+static void _tuiDisplayRegister (int, TuiGenWinInfoPtr, enum precision_type);
 static void _tuiRegisterFormat
-  PARAMS ((char *, int, int, TuiDataElementPtr,
-          enum precision_type));
-static TuiStatus _tuiSetGeneralRegsContent PARAMS ((int));
-static TuiStatus _tuiSetSpecialRegsContent PARAMS ((int));
-static TuiStatus _tuiSetGeneralAndSpecialRegsContent PARAMS ((int));
-static TuiStatus _tuiSetFloatRegsContent PARAMS ((TuiRegisterDisplayType, int));
+  (char *, int, int, TuiDataElementPtr, enum precision_type);
+static TuiStatus _tuiSetGeneralRegsContent (int);
+static TuiStatus _tuiSetSpecialRegsContent (int);
+static TuiStatus _tuiSetGeneralAndSpecialRegsContent (int);
+static TuiStatus _tuiSetFloatRegsContent (TuiRegisterDisplayType, int);
 static int _tuiRegValueHasChanged
-  PARAMS ((TuiDataElementPtr, struct frame_info *,
-          char *));
-static void _tuiShowFloat_command PARAMS ((char *, int));
-static void _tuiShowGeneral_command PARAMS ((char *, int));
-static void _tuiShowSpecial_command PARAMS ((char *, int));
-static void _tui_vShowRegisters_commandSupport PARAMS ((va_list));
-static void _tuiToggleFloatRegs_command PARAMS ((char *, int));
-static void _tuiScrollRegsForward_command PARAMS ((char *, int));
-static void _tuiScrollRegsBackward_command PARAMS ((char *, int));
-static void _tui_vShowRegisters_commandSupport PARAMS ((va_list));
+  (TuiDataElementPtr, struct frame_info *, char *);
+static void _tuiShowFloat_command (char *, int);
+static void _tuiShowGeneral_command (char *, int);
+static void _tuiShowSpecial_command (char *, int);
+static void _tui_vShowRegisters_commandSupport (TuiRegisterDisplayType);
+static void _tuiToggleFloatRegs_command (char *, int);
+static void _tuiScrollRegsForward_command (char *, int);
+static void _tuiScrollRegsBackward_command (char *, int);
 
 
 
@@ -86,16 +94,12 @@ static void _tui_vShowRegisters_commandSupport PARAMS ((va_list));
 ******************************************/
 
 /*
-** tuiLastRegsLineNo()
-**        Answer the number of the last line in the regs display.
-**        If there are no registers (-1) is returned.
-*/
+   ** tuiLastRegsLineNo()
+   **        Answer the number of the last line in the regs display.
+   **        If there are no registers (-1) is returned.
+ */
 int
-#ifdef __STDC__
 tuiLastRegsLineNo (void)
-#else
-tuiLastRegsLineNo ()
-#endif
 {
   register int numLines = (-1);
 
@@ -112,19 +116,13 @@ tuiLastRegsLineNo ()
 
 
 /*
-** tuiLineFromRegElementNo()
-**        Answer the line number that the register element at elementNo is
-**        on.  If elementNo is greater than the number of register elements
-**        there are, -1 is returned.
-*/
+   ** tuiLineFromRegElementNo()
+   **        Answer the line number that the register element at elementNo is
+   **        on.  If elementNo is greater than the number of register elements
+   **        there are, -1 is returned.
+ */
 int
-#ifdef __STDC__
-tuiLineFromRegElementNo (
-                         int elementNo)
-#else
-tuiLineFromRegElementNo (elementNo)
-     int elementNo;
-#endif
+tuiLineFromRegElementNo (int elementNo)
 {
   if (elementNo < dataWin->detail.dataDisplayInfo.regsContentCount)
     {
@@ -148,18 +146,12 @@ tuiLineFromRegElementNo (elementNo)
 
 
 /*
-** tuiFirstRegElementNoInLine()
-**        Answer the index of the first element in lineNo.  If lineNo is
-**        past the register area (-1) is returned.
-*/
+   ** tuiFirstRegElementNoInLine()
+   **        Answer the index of the first element in lineNo.  If lineNo is
+   **        past the register area (-1) is returned.
+ */
 int
-#ifdef __STDC__
-tuiFirstRegElementNoInLine (
-                            int lineNo)
-#else
-tuiFirstRegElementNoInLine (lineNo)
-     int lineNo;
-#endif
+tuiFirstRegElementNoInLine (int lineNo)
 {
   if ((lineNo * dataWin->detail.dataDisplayInfo.regsColumnCount)
       <= dataWin->detail.dataDisplayInfo.regsContentCount)
@@ -172,18 +164,12 @@ tuiFirstRegElementNoInLine (lineNo)
 
 
 /*
-** tuiLastRegElementNoInLine()
-**        Answer the index of the last element in lineNo.  If lineNo is past
-**        the register area (-1) is returned.
-*/
+   ** tuiLastRegElementNoInLine()
+   **        Answer the index of the last element in lineNo.  If lineNo is past
+   **        the register area (-1) is returned.
+ */
 int
-#ifdef __STDC__
-tuiLastRegElementNoInLine (
-                           int lineNo)
-#else
-tuiLastRegElementNoInLine (lineNo)
-     int lineNo;
-#endif
+tuiLastRegElementNoInLine (int lineNo)
 {
   if ((lineNo * dataWin->detail.dataDisplayInfo.regsColumnCount) <=
       dataWin->detail.dataDisplayInfo.regsContentCount)
@@ -195,18 +181,12 @@ tuiLastRegElementNoInLine (lineNo)
 
 
 /*
-** tuiCalculateRegsColumnCount
-**        Calculate the number of columns that should be used to display
-**        the registers.
-*/
+   ** tuiCalculateRegsColumnCount
+   **        Calculate the number of columns that should be used to display
+   **        the registers.
+ */
 int
-#ifdef __STDC__
-tuiCalculateRegsColumnCount (
-                             TuiRegisterDisplayType dpyType)
-#else
-tuiCalculateRegsColumnCount (dpyType)
-     TuiRegisterDisplayType dpyType;
-#endif
+tuiCalculateRegsColumnCount (TuiRegisterDisplayType dpyType)
 {
   int colCount, colWidth;
 
@@ -226,19 +206,13 @@ tuiCalculateRegsColumnCount (dpyType)
 
 
 /*
-** tuiShowRegisters().
-**        Show the registers int the data window as indicated by dpyType.
-**        If there is any other registers being displayed, then they are
-**        cleared.  What registers are displayed is dependent upon dpyType.
-*/
+   ** tuiShowRegisters().
+   **        Show the registers int the data window as indicated by dpyType.
+   **        If there is any other registers being displayed, then they are
+   **        cleared.  What registers are displayed is dependent upon dpyType.
+ */
 void
-#ifdef __STDC__
-tuiShowRegisters (
-                  TuiRegisterDisplayType dpyType)
-#else
-tuiShowRegisters (dpyType)
-     TuiRegisterDisplayType dpyType;
-#endif
+tuiShowRegisters (TuiRegisterDisplayType dpyType)
 {
   TuiStatus ret = TUI_FAILURE;
   int refreshValuesOnly = FALSE;
@@ -304,20 +278,14 @@ tuiShowRegisters (dpyType)
 
 
 /*
-** tuiDisplayRegistersFrom().
-**        Function to display the registers in the content from
-**        'startElementNo' until the end of the register content or the
-**        end of the display height.  No checking for displaying past
-**        the end of the registers is done here.
-*/
+   ** tuiDisplayRegistersFrom().
+   **        Function to display the registers in the content from
+   **        'startElementNo' until the end of the register content or the
+   **        end of the display height.  No checking for displaying past
+   **        the end of the registers is done here.
+ */
 void
-#ifdef __STDC__
-tuiDisplayRegistersFrom (
-                         int startElementNo)
-#else
-tuiDisplayRegistersFrom (startElementNo)
-     int startElementNo;
-#endif
+tuiDisplayRegistersFrom (int startElementNo)
 {
   if (dataWin->detail.dataDisplayInfo.regsContent != (TuiWinContent) NULL &&
       dataWin->detail.dataDisplayInfo.regsContentCount > 0)
@@ -351,8 +319,8 @@ tuiDisplayRegistersFrom (startElementNo)
        }
       itemWinWidth = valueCharsWide + labelWidth;
       /*
-        ** Now create each data "sub" window, and write the display into it.
-        */
+         ** Now create each data "sub" window, and write the display into it.
+       */
       curY = 1;
       while (i < dataWin->detail.dataDisplayInfo.regsContentCount &&
             curY <= dataWin->generic.viewportHeight)
@@ -364,7 +332,7 @@ tuiDisplayRegistersFrom (startElementNo)
              TuiGenWinInfoPtr dataItemWin;
              TuiDataElementPtr dataElementPtr;
 
-             /* create the window if necessary*/
+             /* create the window if necessary */
              dataItemWin = &dataWin->detail.dataDisplayInfo.
                regsContent[i]->whichElement.dataWindow;
              dataElementPtr = &((TuiWinElementPtr)
@@ -377,11 +345,14 @@ tuiDisplayRegistersFrom (startElementNo)
                  dataItemWin->origin.x = (itemWinWidth * j) + 1;
                  dataItemWin->origin.y = curY;
                  makeWindow (dataItemWin, DONT_BOX_WINDOW);
+                  scrollok (dataItemWin->handle, FALSE);
                }
+              touchwin (dataItemWin->handle);
+
              /*
-                ** Get the printable representation of the register
-                ** and display it
-                */
+                ** Get the printable representation of the register
+                ** and display it
+              */
              _tuiDisplayRegister (
                            dataElementPtr->itemNo, dataItemWin, precision);
              i++;              /* next register */
@@ -395,23 +366,15 @@ tuiDisplayRegistersFrom (startElementNo)
 
 
 /*
-** tuiDisplayRegElementAtLine().
-**        Function to display the registers in the content from
-**        'startElementNo' on 'startLineNo' until the end of the
-**        register content or the end of the display height.
-**        This function checks that we won't display off the end
-**        of the register display.
-*/
+   ** tuiDisplayRegElementAtLine().
+   **        Function to display the registers in the content from
+   **        'startElementNo' on 'startLineNo' until the end of the
+   **        register content or the end of the display height.
+   **        This function checks that we won't display off the end
+   **        of the register display.
+ */
 void
-#ifdef __STDC__
-tuiDisplayRegElementAtLine (
-                            int startElementNo,
-                            int startLineNo)
-#else
-tuiDisplayRegElementAtLine (startElementNo, startLineNo)
-     int startElementNo;
-     int startLineNo;
-#endif
+tuiDisplayRegElementAtLine (int startElementNo, int startLineNo)
 {
   if (dataWin->detail.dataDisplayInfo.regsContent != (TuiWinContent) NULL &&
       dataWin->detail.dataDisplayInfo.regsContentCount > 0)
@@ -427,10 +390,10 @@ tuiDisplayRegElementAtLine (startElementNo, startLineNo)
          if (firstLineOnLastPage < 0)
            firstLineOnLastPage = 0;
          /*
-            ** If there is no other data displayed except registers,
-            ** and the elementNo causes us to scroll past the end of the
-            ** registers, adjust what element to really start the display at.
-            */
+            ** If there is no other data displayed except registers,
+            ** and the elementNo causes us to scroll past the end of the
+            ** registers, adjust what element to really start the display at.
+          */
          if (dataWin->detail.dataDisplayInfo.dataContentCount <= 0 &&
              startLineNo > firstLineOnLastPage)
            elementNo = tuiFirstRegElementNoInLine (firstLineOnLastPage);
@@ -444,21 +407,13 @@ tuiDisplayRegElementAtLine (startElementNo, startLineNo)
 
 
 /*
-** tuiDisplayRegistersFromLine().
-**        Function to display the registers starting at line lineNo in
-**        the data window.  Answers the line number that the display
-**        actually started from.  If nothing is displayed (-1) is returned.
-*/
+   ** tuiDisplayRegistersFromLine().
+   **        Function to display the registers starting at line lineNo in
+   **        the data window.  Answers the line number that the display
+   **        actually started from.  If nothing is displayed (-1) is returned.
+ */
 int
-#ifdef __STDC__
-tuiDisplayRegistersFromLine (
-                             int lineNo,
-                             int forceDisplay)
-#else
-tuiDisplayRegistersFromLine (lineNo, forceDisplay)
-     int lineNo;
-     int forceDisplay;
-#endif
+tuiDisplayRegistersFromLine (int lineNo, int forceDisplay)
 {
   int elementNo;
 
@@ -470,9 +425,9 @@ tuiDisplayRegistersFromLine (lineNo, forceDisplay)
        line = 0;
       else if (forceDisplay)
        {                       /*
-            ** If we must display regs (forceDisplay is true), then make
-            ** sure that we don't display off the end of the registers.
-            */
+                                  ** If we must display regs (forceDisplay is true), then make
+                                  ** sure that we don't display off the end of the registers.
+                                */
          if (lineNo >= tuiLastRegsLineNo ())
            {
              if ((line = tuiLineFromRegElementNo (
@@ -499,19 +454,13 @@ tuiDisplayRegistersFromLine (lineNo, forceDisplay)
 
 
 /*
-** tuiCheckRegisterValues()
-**        This function check all displayed registers for changes in
-**        values, given a particular frame.  If the values have changed,
-**        they are updated with the new value and highlighted.
-*/
+   ** tuiCheckRegisterValues()
+   **        This function check all displayed registers for changes in
+   **        values, given a particular frame.  If the values have changed,
+   **        they are updated with the new value and highlighted.
+ */
 void
-#ifdef __STDC__
-tuiCheckRegisterValues (
-                        struct frame_info *frame)
-#else
-tuiCheckRegisterValues (frame)
-     struct frame_info *frame;
-#endif
+tuiCheckRegisterValues (struct frame_info *frame)
 {
   if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
     {
@@ -539,7 +488,10 @@ tuiCheckRegisterValues (frame)
                _tuiRegValueHasChanged (dataElementPtr, frame, &rawBuf[0]);
              if (dataElementPtr->highlight)
                {
-                 for (j = 0; j < MAX_REGISTER_RAW_SIZE; j++)
+                  int size;
+
+                  size = REGISTER_RAW_SIZE (dataElementPtr->itemNo);
+                 for (j = 0; j < size; j++)
                    ((char *) dataElementPtr->value)[j] = rawBuf[j];
                  _tuiDisplayRegister (
                                        dataElementPtr->itemNo,
@@ -566,14 +518,10 @@ tuiCheckRegisterValues (frame)
 
 
 /*
-** tuiToggleFloatRegs().
-*/
+   ** tuiToggleFloatRegs().
+ */
 void
-#ifdef __STDC__
 tuiToggleFloatRegs (void)
-#else
-tuiToggleFloatRegs ()
-#endif
 {
   TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
 
@@ -592,9 +540,9 @@ tuiToggleFloatRegs ()
 
 
 void
-_initialize_tuiRegs ()
+_initialize_tuiRegs (void)
 {
-  if (tui_version && xdb_commands)
+  if (xdb_commands)
     {
       add_com ("fr", class_tui, _tuiShowFloat_command,
               "Display only floating point registers\n");
@@ -615,9 +563,7 @@ _initialize_tuiRegs ()
 registers.\n",
               &togglelist);
     }
-
-  return;
-}                              /* _initialize_tuiRegs */
+}
 
 
 /*****************************************
@@ -626,73 +572,90 @@ registers.\n",
 
 
 /*
-** _tuiRegisterName().
-**        Return the register name.
-*/
+   ** _tuiRegisterName().
+   **        Return the register name.
+ */
 static char *
-#ifdef __STDC__
-_tuiRegisterName (
-                  int regNum)
-#else
-_tuiRegisterName (regNum)
-     int regNum;
-#endif
+_tuiRegisterName (int regNum)
 {
-  if (reg_names[regNum] != (char *) NULL && *(reg_names[regNum]) != (char) 0)
-    return reg_names[regNum];
-  else
-    return ((char *) NULL);
-}                              /* tuiGetRegisterName */
+  return REGISTER_NAME (regNum);
+}
+extern int pagination_enabled;
 
+static void
+tui_restore_gdbout (void *ui)
+{
+  ui_file_delete (gdb_stdout);
+  gdb_stdout = (struct ui_file*) ui;
+  pagination_enabled = 1;
+}
 
 /*
-** _tuiRegisterFormat
-**        Function to format the register name and value into a buffer,
-**        suitable for printing or display
-*/
+   ** _tuiRegisterFormat
+   **        Function to format the register name and value into a buffer,
+   **        suitable for printing or display
+ */
 static void
-#ifdef __STDC__
-_tuiRegisterFormat (
-                    char *buf,
-                    int bufLen,
-                    int regNum,
-                    TuiDataElementPtr dataElement,
-                    enum precision_type precision)
-#else
-_tuiRegisterFormat (buf, bufLen, regNum, dataElement, precision)
-     char *buf;
-     int bufLen;
-     int regNum;
-     TuiDataElementPtr dataElement;
-     enum precision_type precision;
-#endif
+_tuiRegisterFormat (char *buf, int bufLen, int regNum,
+                    TuiDataElementPtr dataElement,
+                    enum precision_type precision)
 {
-  char tmpBuf[15];
-  char *fmt;
-  GDB_FILE *stream;
+  struct ui_file *stream;
+  struct ui_file *old_stdout;
+  char *name;
+  struct cleanup *cleanups;
+  char *p;
+  int pos;
+
+  name = REGISTER_NAME (regNum);
+  if (name == 0)
+    {
+      strcpy (buf, "");
+      return;
+    }
+  
+  pagination_enabled = 0;
+  old_stdout = gdb_stdout;
+  stream = tui_sfileopen (bufLen);
+  gdb_stdout = stream;
+  cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
+  do_registers_info (regNum, 0);
+
+  /* Save formatted output in the buffer.  */
+  p = tui_file_get_strbuf (stream);
+  pos = 0;
+  while (*p && *p == *name++ && bufLen)
+    {
+      *buf++ = *p++;
+      bufLen--;
+      pos++;
+    }
+  while (*p == ' ')
+    p++;
+  while (pos < 8 && bufLen)
+    {
+      *buf++ = ' ';
+      bufLen--;
+      pos++;
+    }
+  strncpy (buf, p, bufLen);
 
-  stream = gdb_file_init_astring(bufLen);
-  pa_do_strcat_registers_info (regNum, 0, stream, precision);
-  strcpy (buf, gdb_file_get_strbuf(stream));
-  gdb_file_deallocate(&stream);
+  /* Remove the possible \n.  */
+  p = strchr (buf, '\n');
+  if (p)
+    *p = 0;
 
-  return;
-}                              /* _tuiRegisterFormat */
+  do_cleanups (cleanups);
+}
 
 
 #define NUM_GENERAL_REGS    32
 /*
-** _tuiSetGeneralRegsContent().
-**      Set the content of the data window to consist of the general registers.
-*/
+   ** _tuiSetGeneralRegsContent().
+   **      Set the content of the data window to consist of the general registers.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiSetGeneralRegsContent (
-                           int refreshValuesOnly)
-#else
-_tuiSetGeneralRegsContent (refreshValuesOnly)
-     int refreshValuesOnly;
-#endif
+_tuiSetGeneralRegsContent (int refreshValuesOnly)
 {
   return (_tuiSetRegsContent (0,
                              NUM_GENERAL_REGS - 1,
@@ -703,19 +666,18 @@ _tuiSetGeneralRegsContent (refreshValuesOnly)
 }                              /* _tuiSetGeneralRegsContent */
 
 
+#ifndef PCOQ_HEAD_REGNUM
+#define START_SPECIAL_REGS  0
+#else
 #define START_SPECIAL_REGS    PCOQ_HEAD_REGNUM
+#endif
+
 /*
-** _tuiSetSpecialRegsContent().
-**      Set the content of the data window to consist of the special registers.
-*/
+   ** _tuiSetSpecialRegsContent().
+   **      Set the content of the data window to consist of the special registers.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiSetSpecialRegsContent (
-                           int refreshValuesOnly)
-#else
-_tuiSetSpecialRegsContent (refreshValuesOnly)
-     int refreshValuesOnly;
-#endif
+_tuiSetSpecialRegsContent (int refreshValuesOnly)
 {
   TuiStatus ret = TUI_FAILURE;
   int i, endRegNum;
@@ -723,7 +685,7 @@ _tuiSetSpecialRegsContent (refreshValuesOnly)
   endRegNum = FP0_REGNUM - 1;
 #if 0
   endRegNum = (-1);
-  for (i = START_SPECIAL_REGS; (i < ARCH_NUM_REGS && endRegNum < 0); i++)
+  for (i = START_SPECIAL_REGS; (i < NUM_REGS && endRegNum < 0); i++)
     if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) == TYPE_CODE_FLT)
       endRegNum = i - 1;
 #endif
@@ -738,17 +700,11 @@ _tuiSetSpecialRegsContent (refreshValuesOnly)
 
 
 /*
-** _tuiSetGeneralAndSpecialRegsContent().
-**      Set the content of the data window to consist of the special registers.
-*/
+   ** _tuiSetGeneralAndSpecialRegsContent().
+   **      Set the content of the data window to consist of the special registers.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiSetGeneralAndSpecialRegsContent (
-                                     int refreshValuesOnly)
-#else
-_tuiSetGeneralAndSpecialRegsContent (refreshValuesOnly)
-     int refreshValuesOnly;
-#endif
+_tuiSetGeneralAndSpecialRegsContent (int refreshValuesOnly)
 {
   TuiStatus ret = TUI_FAILURE;
   int i, endRegNum = (-1);
@@ -756,7 +712,7 @@ _tuiSetGeneralAndSpecialRegsContent (refreshValuesOnly)
   endRegNum = FP0_REGNUM - 1;
 #if 0
   endRegNum = (-1);
-  for (i = 0; (i < ARCH_NUM_REGS && endRegNum < 0); i++)
+  for (i = 0; (i < NUM_REGS && endRegNum < 0); i++)
     if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) == TYPE_CODE_FLT)
       endRegNum = i - 1;
 #endif
@@ -767,19 +723,11 @@ _tuiSetGeneralAndSpecialRegsContent (refreshValuesOnly)
 }                              /* _tuiSetGeneralAndSpecialRegsContent */
 
 /*
-** _tuiSetFloatRegsContent().
-**        Set the content of the data window to consist of the float registers.
-*/
+   ** _tuiSetFloatRegsContent().
+   **        Set the content of the data window to consist of the float registers.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiSetFloatRegsContent (
-                         TuiRegisterDisplayType dpyType,
-                         int refreshValuesOnly)
-#else
-_tuiSetFloatRegsContent (dpyType, refreshValuesOnly)
-     TuiRegisterDisplayType dpyType;
-     int refreshValuesOnly;
-#endif
+_tuiSetFloatRegsContent (TuiRegisterDisplayType dpyType, int refreshValuesOnly)
 {
   TuiStatus ret = TUI_FAILURE;
   int i, startRegNum;
@@ -787,12 +735,12 @@ _tuiSetFloatRegsContent (dpyType, refreshValuesOnly)
   startRegNum = FP0_REGNUM;
 #if 0
   startRegNum = (-1);
-  for (i = ARCH_NUM_REGS - 1; (i >= 0 && startRegNum < 0); i--)
+  for (i = NUM_REGS - 1; (i >= 0 && startRegNum < 0); i--)
     if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (i)) != TYPE_CODE_FLT)
       startRegNum = i + 1;
 #endif
   ret = _tuiSetRegsContent (startRegNum,
-                           ARCH_NUM_REGS - 1,
+                           NUM_REGS - 1,
                            selected_frame,
                            dpyType,
                            refreshValuesOnly);
@@ -802,22 +750,14 @@ _tuiSetFloatRegsContent (dpyType, refreshValuesOnly)
 
 
 /*
-** _tuiRegValueHasChanged().
-**        Answer TRUE if the register's value has changed, FALSE otherwise.
-**        If TRUE, newValue is filled in with the new value.
-*/
+   ** _tuiRegValueHasChanged().
+   **        Answer TRUE if the register's value has changed, FALSE otherwise.
+   **        If TRUE, newValue is filled in with the new value.
+ */
 static int
-#ifdef __STDC__
-_tuiRegValueHasChanged (
-                        TuiDataElementPtr dataElement,
-                        struct frame_info *frame,
-                        char *newValue)
-#else
-_tuiRegValueHasChanged (dataElement, frame, newValue)
-     TuiDataElementPtr dataElement;
-     struct frame_info *frame;
-     char *newValue;
-#endif
+_tuiRegValueHasChanged (TuiDataElementPtr dataElement,
+                        struct frame_info *frame,
+                        char *newValue)
 {
   int hasChanged = FALSE;
 
@@ -830,11 +770,13 @@ _tuiRegValueHasChanged (dataElement, frame, newValue)
       if (_tuiGetRegisterRawValue (
                         dataElement->itemNo, rawBuf, frame) == TUI_SUCCESS)
        {
-         for (i = 0; (i < MAX_REGISTER_RAW_SIZE && !hasChanged); i++)
+          int size = REGISTER_RAW_SIZE (dataElement->itemNo);
+          
+         for (i = 0; (i < size && !hasChanged); i++)
            hasChanged = (((char *) dataElement->value)[i] != rawBuf[i]);
          if (hasChanged && newValue != (char *) NULL)
            {
-             for (i = 0; (i < MAX_REGISTER_RAW_SIZE); i++)
+             for (i = 0; i < size; i++)
                newValue[i] = rawBuf[i];
            }
        }
@@ -845,54 +787,37 @@ _tuiRegValueHasChanged (dataElement, frame, newValue)
 
 
 /*
-** _tuiGetRegisterRawValue().
-**        Get the register raw value.  The raw value is returned in regValue.
-*/
+   ** _tuiGetRegisterRawValue().
+   **        Get the register raw value.  The raw value is returned in regValue.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiGetRegisterRawValue (
-                         int regNum,
-                         char *regValue,
-                         struct frame_info *frame)
-#else
-_tuiGetRegisterRawValue (regNum, regValue, frame)
-     int regNum;
-     char *regValue;
-     struct frame_info *frame;
-#endif
+_tuiGetRegisterRawValue (int regNum, char *regValue, struct frame_info *frame)
 {
   TuiStatus ret = TUI_FAILURE;
 
   if (target_has_registers)
     {
-      read_relative_register_raw_bytes_for_frame (regNum, regValue, frame);
-      ret = TUI_SUCCESS;
+      int opt;
+      
+      get_saved_register (regValue, &opt, (CORE_ADDR*) NULL, frame,
+                         regNum, (enum lval_type*) NULL);
+      if (register_cached (regNum) >= 0)
+       ret = TUI_SUCCESS;
     }
-
   return ret;
 }                              /* _tuiGetRegisterRawValue */
 
 
 
 /*
-** _tuiSetRegisterElement().
-**       Function to initialize a data element with the input and
-**       the register value.
-*/
+   ** _tuiSetRegisterElement().
+   **       Function to initialize a data element with the input and
+   **       the register value.
+ */
 static void
-#ifdef __STDC__
-_tuiSetRegisterElement (
-                        int regNum,
-                        struct frame_info *frame,
-                        TuiDataElementPtr dataElement,
-                        int refreshValueOnly)
-#else
-_tuiSetRegisterElement (regNum, frame, dataElement, refreshValueOnly)
-     int regNum;
-     struct frame_info *frame;
-     TuiDataElementPtr dataElement;
-     int refreshValueOnly;
-#endif
+_tuiSetRegisterElement (int regNum, struct frame_info *frame,
+                        TuiDataElementPtr dataElement,
+                        int refreshValueOnly)
 {
   if (dataElement != (TuiDataElementPtr) NULL)
     {
@@ -913,27 +838,16 @@ _tuiSetRegisterElement (regNum, frame, dataElement, refreshValueOnly)
 
 
 /*
-** _tuiSetRegsContent().
-**        Set the content of the data window to consist of the registers
-**        numbered from startRegNum to endRegNum.  Note that if
-**        refreshValuesOnly is TRUE, startRegNum and endRegNum are ignored.
-*/
+   ** _tuiSetRegsContent().
+   **        Set the content of the data window to consist of the registers
+   **        numbered from startRegNum to endRegNum.  Note that if
+   **        refreshValuesOnly is TRUE, startRegNum and endRegNum are ignored.
+ */
 static TuiStatus
-#ifdef __STDC__
-_tuiSetRegsContent (
-                    int startRegNum,
-                    int endRegNum,
-                    struct frame_info *frame,
-                    TuiRegisterDisplayType dpyType,
-                    int refreshValuesOnly)
-#else
-_tuiSetRegsContent (startRegNum, endRegNum, frame, dpyType, refreshValuesOnly)
-     int startRegNum;
-     int endRegNum;
-     struct frame_info *frame;
-     TuiRegisterDisplayType dpyType;
-     int refreshValuesOnly;
-#endif
+_tuiSetRegsContent (int startRegNum, int endRegNum,
+                    struct frame_info *frame,
+                    TuiRegisterDisplayType dpyType,
+                    int refreshValuesOnly)
 {
   TuiStatus ret = TUI_FAILURE;
   int numRegs = endRegNum - startRegNum + 1;
@@ -967,8 +881,8 @@ _tuiSetRegsContent (startRegNum, endRegNum, frame, dpyType, refreshValuesOnly)
          dataWin->detail.dataDisplayInfo.regsContentCount = numRegs;
        }
       /*
-        ** Now set the register names and values
-        */
+         ** Now set the register names and values
+       */
       for (i = startRegNum; (i <= endRegNum); i++)
        {
          TuiGenWinInfoPtr dataItemWin;
@@ -1002,26 +916,19 @@ _tuiSetRegsContent (startRegNum, endRegNum, frame, dpyType, refreshValuesOnly)
 
 
 /*
-** _tuiDisplayRegister().
-**        Function to display a register in a window.  If hilite is TRUE,
-**        than the value will be displayed in reverse video
-*/
+   ** _tuiDisplayRegister().
+   **        Function to display a register in a window.  If hilite is TRUE,
+   **        than the value will be displayed in reverse video
+ */
 static void
-#ifdef __STDC__
-_tuiDisplayRegister (
-                     int regNum,
-                     TuiGenWinInfoPtr winInfo, /* the data item window */
-                     enum precision_type precision)
-#else
-_tuiDisplayRegister (regNum, winInfo, precision)
-     int regNum;
-     TuiGenWinInfoPtr winInfo; /* the data item window */
-     enum precision_type precision;
-#endif
+_tuiDisplayRegister (int regNum,
+                     TuiGenWinInfoPtr winInfo,         /* the data item window */
+                     enum precision_type precision)
 {
   if (winInfo->handle != (WINDOW *) NULL)
     {
-      char buf[100];
+      int i;
+      char buf[40];
       int valueCharsWide, labelWidth;
       TuiDataElementPtr dataElementPtr = &((TuiWinContent)
                                    winInfo->content)[0]->whichElement.data;
@@ -1053,10 +960,13 @@ _tuiDisplayRegister (regNum, winInfo, precision)
                          regNum,
                          dataElementPtr,
                          precision);
+
       if (dataElementPtr->highlight)
        wstandout (winInfo->handle);
 
-      werase (winInfo->handle);
+      wmove (winInfo->handle, 0, 0);
+      for (i = 1; i < winInfo->width; i++)
+        waddch (winInfo->handle, ' ');
       wmove (winInfo->handle, 0, 0);
       waddstr (winInfo->handle, buf);
 
@@ -1069,15 +979,8 @@ _tuiDisplayRegister (regNum, winInfo, precision)
 
 
 static void
-#ifdef __STDC__
-_tui_vShowRegisters_commandSupport (
-                                    va_list args)
-#else
-_tui_vShowRegisters_commandSupport (args)
-     va_list args;
-#endif
+_tui_vShowRegisters_commandSupport (TuiRegisterDisplayType dpyType)
 {
-  TuiRegisterDisplayType dpyType = va_arg (args, TuiRegisterDisplayType);
 
   if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
     {                          /* Data window already displayed, show the registers */
@@ -1092,75 +995,36 @@ _tui_vShowRegisters_commandSupport (args)
 
 
 static void
-#ifdef __STDC__
-_tuiShowFloat_command (
-                       char *arg,
-                       int fromTTY)
-#else
-_tuiShowFloat_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiShowFloat_command (char *arg, int fromTTY)
 {
   if (m_winPtrIsNull (dataWin) || !dataWin->generic.isVisible ||
       (dataWin->detail.dataDisplayInfo.regsDisplayType != TUI_SFLOAT_REGS &&
        dataWin->detail.dataDisplayInfo.regsDisplayType != TUI_DFLOAT_REGS))
-    tuiDo ((TuiOpaqueFuncPtr) _tui_vShowRegisters_commandSupport,
-          (tuiLayoutDef ())->floatRegsDisplayType);
+    _tui_vShowRegisters_commandSupport ((tuiLayoutDef ())->floatRegsDisplayType);
 
   return;
 }                              /* _tuiShowFloat_command */
 
 
 static void
-#ifdef __STDC__
-_tuiShowGeneral_command (
-                         char *arg,
-                         int fromTTY)
-#else
-_tuiShowGeneral_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiShowGeneral_command (char *arg, int fromTTY)
 {
-  tuiDo ((TuiOpaqueFuncPtr) _tui_vShowRegisters_commandSupport,
-        TUI_GENERAL_REGS);
-
-  return;
-}                              /* _tuiShowGeneral_command */
+  _tui_vShowRegisters_commandSupport (TUI_GENERAL_REGS);
+}
 
 
 static void
-#ifdef __STDC__
-_tuiShowSpecial_command (
-                         char *arg,
-                         int fromTTY)
-#else
-_tuiShowSpecial_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiShowSpecial_command (char *arg, int fromTTY)
 {
-  tuiDo ((TuiOpaqueFuncPtr) _tui_vShowRegisters_commandSupport,
-        TUI_SPECIAL_REGS);
-
-  return;
-}                              /* _tuiShowSpecial_command */
+  _tui_vShowRegisters_commandSupport (TUI_SPECIAL_REGS);
+}
 
 
 static void
-#ifdef __STDC__
-_tuiToggleFloatRegs_command (
-                             char *arg,
-                             int fromTTY)
-#else
-_tuiToggleFloatRegs_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiToggleFloatRegs_command (char *arg, int fromTTY)
 {
   if (m_winPtrNotNull (dataWin) && dataWin->generic.isVisible)
-    tuiDo ((TuiOpaqueFuncPtr) tuiToggleFloatRegs);
+    tuiToggleFloatRegs ();
   else
     {
       TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
@@ -1177,34 +1041,14 @@ _tuiToggleFloatRegs_command (arg, fromTTY)
 
 
 static void
-#ifdef __STDC__
-_tuiScrollRegsForward_command (
-                               char *arg,
-                               int fromTTY)
-#else
-_tuiScrollRegsForward_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiScrollRegsForward_command (char *arg, int fromTTY)
 {
-  tuiDo ((TuiOpaqueFuncPtr) tui_vScroll, FORWARD_SCROLL, dataWin, 1);
-
-  return;
-}                              /* _tuiScrollRegsForward_command */
+  tui_scroll (FORWARD_SCROLL, dataWin, 1);
+}
 
 
 static void
-#ifdef __STDC__
-_tuiScrollRegsBackward_command (
-                                char *arg,
-                                int fromTTY)
-#else
-_tuiScrollRegsBackward_command (arg, fromTTY)
-     char *arg;
-     int fromTTY;
-#endif
+_tuiScrollRegsBackward_command (char *arg, int fromTTY)
 {
-  tuiDo ((TuiOpaqueFuncPtr) tui_vScroll, BACKWARD_SCROLL, dataWin, 1);
-
-  return;
-}                              /* _tuiScrollRegsBackward_command */
+  tui_scroll (BACKWARD_SCROLL, dataWin, 1);
+}
This page took 0.037546 seconds and 4 git commands to generate.