* v850-opc.c (v850_operands): Add V850_OPERAND_SIGNED flag
[deliverable/binutils-gdb.git] / gdb / remote-adapt.c
index ff07b4b6d7e3436014f798e5bb7afa7d88d48850..8fcb1f70ac981348f76eee52fdd3a2bea26fbd8e 100644 (file)
@@ -17,7 +17,7 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* This is like remote.c but is for an esoteric situation--
    having a 29k board attached to an Adapt inline monitor. 
@@ -30,7 +30,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
    7/91 o - Freeze mode tracing can be done on a 29050.  */
 
 #include "defs.h"
-#include <string.h>
+#include "gdb_string.h"
 #include "inferior.h"
 #include "wait.h"
 #include "value.h"
@@ -54,23 +54,13 @@ static void adapt_store_registers ();
 static void adapt_close ();
 static int  adapt_clear_breakpoints();
 
-/* 
- * Processor types. It is assumed that the adapt has the correct 
- * ROM for the given processor. 
- */
-#define TYPE_UNKNOWN   0
-#define TYPE_A29000    1
-#define TYPE_A29030    2
-#define TYPE_A29050    3
-static char *processor_name[] = { "Unknown", "A29000", "A29030", "A29050" };
-static int processor_type=TYPE_UNKNOWN;
-
 #define FREEZE_MODE    (read_register(CPS_REGNUM) && 0x400) 
-#define USE_SHADOW_PC   ((processor_type == TYPE_A29050) && FREEZE_MODE)
+#define USE_SHADOW_PC  ((processor_type == a29k_freeze_mode) && FREEZE_MODE)
 
 /* Can't seem to get binary coff working */
 #define ASCII_COFF             /* Adapt will be downloaded with ascii coff */
 
+/* FIXME: Replace with `set remotedebug'.  */
 #define LOG_FILE "adapt.log"
 #if defined (LOG_FILE)
 FILE *log_file=NULL;
@@ -417,7 +407,7 @@ adapt_create_inferior (execfile, args, env)
          expect_prompt ();
 #else
        insert_breakpoints ();  /* Needed to get correct instruction in cache */
-       proceed(entry_pt, -1, 0);
+       proceed(entry_pt, TARGET_SIGNAL_DEFAULT, 0);
 #endif
 
   } else {
@@ -494,7 +484,7 @@ erroid:
     error ("\
 Please include the name of the device for the serial port,\n\
 the baud rate, and the name of the program to run on the remote system.");
-  dev_name = (char*)malloc(p - name + 1);
+  dev_name = (char*)xmalloc(p - name + 1);
   strncpy (dev_name, name, p - name);
   dev_name[p - name] = '\0';
 
@@ -570,28 +560,12 @@ the baud rate, and the name of the program to run on the remote system.");
   /* Clear any break points */
   adapt_clear_breakpoints();
 
-  /* Determine the processor revision level */
-  prl = (unsigned int)read_register(CFG_REGNUM) >> 24;
-  if (prl == 0x03) { 
-       processor_type = TYPE_A29000;  
-  } else if ((prl&0xf0) == 0x40) {     /* 29030 = 0x4* */
-       processor_type = TYPE_A29030;  
-       fprintf_filtered(stderr,"WARNING: debugging of A29030 not tested.\n");
-  } else if ((prl&0xf0) == 0x20) {     /* 29050 = 0x2* */
-       processor_type = TYPE_A29050;  
-       fprintf_filtered(stderr,"WARNING: debugging of A29050 not tested.\n");
-  } else {
-       processor_type = TYPE_UNKNOWN;  
-       fprintf_filtered(stderr,"WARNING: processor type unknown.\n");
-  }
-
   /* Print out some stuff, letting the user now what's going on */
-  printf_filtered("Remote debugging on an %s connect to an Adapt via %s.\n",
-               processor_name[processor_type],dev_name);
+  printf_filtered("Connected to an Adapt via %s.\n", dev_name);
     /* FIXME: can this restriction be removed? */
   printf_filtered("Remote debugging using virtual addresses works only\n");
   printf_filtered("\twhen virtual addresses map 1:1 to physical addresses.\n"); 
-  if (processor_type != TYPE_A29050) {
+  if (processor_type != a29k_freeze_mode) {
        fprintf_filtered(stderr,
        "Freeze-mode debugging not available, and can only be done on an A29050.\n");
   }
@@ -676,7 +650,8 @@ adapt_detach (args,from_tty)
 
 void
 adapt_resume (pid, step, sig)
-     int pid, step, sig;
+     int pid, step;
+     enum target_signal sig;
 {
   if (step)    
     {
@@ -706,7 +681,7 @@ adapt_resume (pid, step, sig)
 
 int
 adapt_wait (status)
-     WAITTYPE *status;
+     struct target_waitstatus *status;
 {
   /* Strings to look for.  '?' means match any single character.  
      Note that with the algorithm we use, the initial character
@@ -731,11 +706,13 @@ adapt_wait (status)
   int old_timeout = timeout;
   int old_immediate_quit = immediate_quit;
 
-  WSETEXIT ((*status), 0);
+  status->kind = TARGET_WAITKIND_EXITED;
+  status->value.integer = 0;
 
   if (need_artificial_trap != 0)
     {
-      WSETSTOP ((*status), SIGTRAP);
+      status->kind = TARGET_WAITKIND_STOPPED;
+      status->value.sig = TARGET_SIGNAL_TRAP;
       need_artificial_trap--;
       return 0;
     }
@@ -776,9 +753,15 @@ adapt_wait (status)
   }
   expect_prompt ();
   if (*bp== '\0')
-    WSETSTOP ((*status), SIGTRAP);
+    {
+      status->kind = TARGET_WAITKIND_STOPPED;
+      status->value.sig = TARGET_SIGNAL_TRAP;
+    }
   else
-    WSETEXIT ((*status), 0);
+    {
+      status->kind = TARGET_WAITKIND_EXITED;
+      status->value.integer = 0;
+    }
   timeout = old_timeout;
   immediate_quit = old_immediate_quit;
   return 0;
@@ -1360,6 +1343,7 @@ struct target_ops adapt_ops = {
        adapt_mourn,            /* mourn_inferior FIXME */
        0, /* can_run */
        0, /* notice_signals */
+       0,                      /* to_stop */
        process_stratum, 0, /* next */
        1, 1, 1, 1, 1,  /* all mem, mem, stack, regs, exec */
        0,0,            /* Section pointers */
This page took 0.025195 seconds and 4 git commands to generate.