* gdbserver/{remote-gutils.c remote-server.c Makefile.in
[deliverable/binutils-gdb.git] / gdb / remote-vx.c
index 74a2e9f32a9864b9623b2616bffc935ad53a6408..97605a91ccaf2ada60ff2fae9180b319b3d34a35 100644 (file)
@@ -26,14 +26,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "gdbcore.h"
 #include "command.h"
 #include "symtab.h"
-#include "symfile.h"           /* for struct complaint */
+#include "complaints.h"
 
 #include <string.h>
 #include <errno.h>
 #include <signal.h>
 #include <fcntl.h>
 #include <sys/types.h>
-#include <sys/time.h>
 #include <sys/socket.h>
 #define malloc bogon_malloc    /* Sun claims "char *malloc()" not void * */
 #define free bogon_free                /* Sun claims "int free()" not void */
@@ -49,7 +48,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "vx-share/xdr_ld.h"
 #include "vx-share/xdr_rdb.h"
 #include "vx-share/dbgRpcLib.h"
-#include "vx-share/reg.h"
 
 #include <symtab.h>
 
@@ -388,7 +386,7 @@ vx_read_register (regno)
   ptrace_in.pid = inferior_pid;
   ptrace_out.info.more_data = (caddr_t) &out_data;
 #ifndef I80960
-  out_data.len   = 18 * REGISTER_RAW_SIZE (0);         /* FIXME 68k hack */
+  out_data.len   = 18 * REGISTER_RAW_SIZE (0);         /* FIXME m68k hack */
 #else
   out_data.len = (16 + 16 + 3) * REGISTER_RAW_SIZE (0);
 #endif
@@ -508,7 +506,7 @@ vx_write_register (regno)
 
   in_data.len = (16 + 16 + 3) * sizeof (REGISTER_TYPE);
 
-#else  /* not 960 -- assume 68k -- FIXME */
+#else  /* not 960 -- assume m68k -- FIXME */
 
   in_data.len = 18 * sizeof (REGISTER_TYPE);
 
@@ -538,7 +536,7 @@ vx_write_register (regno)
       in_data.bytes = &registers[REGISTER_BYTE (FP0_REGNUM)];
       in_data.len = 4 * REGISTER_RAW_SIZE (FP0_REGNUM);
 #endif
-#else  /* not 960 -- assume 68k -- FIXME */
+#else  /* not 960 -- assume m68k -- FIXME */
 
       in_data.bytes = &registers[REGISTER_BYTE (FP0_REGNUM)];
       in_data.len = (8 * REGISTER_RAW_SIZE (FP0_REGNUM)
@@ -811,7 +809,7 @@ vx_lookup_symbol (name, pAddr)
   status = net_clnt_call (VX_SYMBOL_INQ, xdr_wrapstring, &name,
                          xdr_SYMBOL_ADDR, &symbolAddr);
   if (status != RPC_SUCCESS) {
-      complain (&cant_contact_target, 0);
+      complain (&cant_contact_target);
       return -1;
   }
 
@@ -845,15 +843,23 @@ net_connect (host)
 {
   struct sockaddr_in destAddr;
   struct hostent *destHost;
+  unsigned long addr;
+  
+  /* Get the internet address for the given host.  Allow a numeric
+     IP address or a hostname.  */
 
-  /* get the internet address for the given host */
-
-  if ((destHost = (struct hostent *) gethostbyname (host)) == NULL)
-      error ("Invalid hostname.  Couldn't find remote host address.");
+  addr = inet_addr (host);
+  if (addr == -1)
+    {
+      destHost = (struct hostent *) gethostbyname (host);
+      if (destHost == NULL)
+       error ("Invalid hostname.  Couldn't find remote host address.");
+      addr = * (unsigned long *) destHost->h_addr;
+    }
 
   bzero (&destAddr, sizeof (destAddr));
 
-  destAddr.sin_addr.s_addr = * (u_long *) destHost->h_addr;
+  destAddr.sin_addr.s_addr = addr;
   destAddr.sin_family      = AF_INET;
   destAddr.sin_port        = 0;        /* set to actual port that remote
                                   ptrace is listening on.  */
@@ -1232,14 +1238,15 @@ vx_kill ()
 
   status = net_ptrace_clnt_call (PTRACE_KILL, &ptrace_in, &ptrace_out);
   if (status == -1)
-    error (rpcerr);
-  if (ptrace_out.status == -1)
+    warning (rpcerr);
+  else if (ptrace_out.status == -1)
     {
       errno = ptrace_out.errno;
       perror_with_name ("Killing VxWorks process");
     }
 
-  /* If it gives good status, the process is *gone*, no events remain.  */
+  /* If it gives good status, the process is *gone*, no events remain.
+     If the kill failed, assume the process is gone anyhow.  */
   inferior_pid = 0;
   pop_target ();       /* go back to non-executing VxWorks connection */
 }
This page took 0.024129 seconds and 4 git commands to generate.