* d10v-dis.c: Fix formatting.
[deliverable/binutils-gdb.git] / gdb / symm-nat.c
index d1ad8637c06c606c19e5ce11c9046979869d62a9..844e91589be035b7ba09ba6d0b7e4efb5b086a0a 100644 (file)
@@ -1,5 +1,7 @@
 /* Sequent Symmetry host interface, for GDB when running under Unix.
-   Copyright 1986, 1987, 1989, 1991, 1992, 1994 Free Software Foundation, Inc.
+   Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1999, 2000,
+   2001
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +28,7 @@
 #include "inferior.h"
 #include "symtab.h"
 #include "target.h"
+#include "regcache.h"
 
 /* FIXME: What is the _INKERNEL define for?  */
 #define _INKERNEL
@@ -53,8 +56,7 @@
 #include "gdbcore.h"
 
 void
-store_inferior_registers (regno)
-     int regno;
+store_inferior_registers (int regno)
 {
   struct pt_regset regs;
   int i;
@@ -64,7 +66,7 @@ store_inferior_registers (regno)
      might cause problems when calling functions in the inferior.
      At least fpu_control and fpa_pcr (probably more) should be added 
      to the registers array to solve this properly.  */
-  mptrace (XPT_RREGS, inferior_pid, (PTRACE_ARG3_TYPE) & regs, 0);
+  mptrace (XPT_RREGS, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) & regs, 0);
 
   regs.pr_eax = *(int *) &registers[REGISTER_BYTE (0)];
   regs.pr_ebx = *(int *) &registers[REGISTER_BYTE (5)];
@@ -89,19 +91,18 @@ store_inferior_registers (regno)
   memcpy (regs.pr_fpu.fpu_stack[5], &registers[REGISTER_BYTE (ST5_REGNUM)], 10);
   memcpy (regs.pr_fpu.fpu_stack[6], &registers[REGISTER_BYTE (ST6_REGNUM)], 10);
   memcpy (regs.pr_fpu.fpu_stack[7], &registers[REGISTER_BYTE (ST7_REGNUM)], 10);
-  mptrace (XPT_WREGS, inferior_pid, (PTRACE_ARG3_TYPE) & regs, 0);
+  mptrace (XPT_WREGS, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) & regs, 0);
 }
 
 void
-fetch_inferior_registers (regno)
-     int regno;
+fetch_inferior_registers (int regno)
 {
   int i;
   struct pt_regset regs;
 
   registers_fetched ();
 
-  mptrace (XPT_RREGS, inferior_pid, (PTRACE_ARG3_TYPE) & regs, 0);
+  mptrace (XPT_RREGS, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) & regs, 0);
   *(int *) &registers[REGISTER_BYTE (EAX_REGNUM)] = regs.pr_eax;
   *(int *) &registers[REGISTER_BYTE (EBX_REGNUM)] = regs.pr_ebx;
   *(int *) &registers[REGISTER_BYTE (ECX_REGNUM)] = regs.pr_ecx;
@@ -129,8 +130,7 @@ fetch_inferior_registers (regno)
 \f
 /* FIXME:  This should be merged with i387-tdep.c as well. */
 static
-print_fpu_status (ep)
-     struct pt_regset ep;
+print_fpu_status (struct pt_regset ep)
 {
   int i;
   int bothstatus;
@@ -199,9 +199,7 @@ print_fpu_status (ep)
 }
 
 
-print_1167_control_word (pcr)
-     unsigned int pcr;
-
+print_1167_control_word (unsigned int pcr)
 {
   int pcr_tmp;
 
@@ -318,9 +316,7 @@ print_1167_control_word (pcr)
   printf_unfiltered ("\n");
 }
 
-print_1167_regs (regs)
-     long regs[FPA_NREGS];
-
+print_1167_regs (long regs[FPA_NREGS])
 {
   int i;
 
@@ -355,9 +351,7 @@ print_1167_regs (regs)
     }
 }
 
-print_fpa_status (ep)
-     struct pt_regset ep;
-
+print_fpa_status (struct pt_regset ep)
 {
 
   printf_unfiltered ("WTL 1167:");
@@ -374,14 +368,14 @@ print_fpa_status (ep)
 }
 
 #if 0                          /* disabled because it doesn't go through the target vector.  */
-i386_float_info ()
+i386_float_info (void)
 {
   char ubuf[UPAGES * NBPG];
   struct pt_regset regset;
 
   if (have_inferior_p ())
     {
-      PTRACE_READ_REGS (inferior_pid, (PTRACE_ARG3_TYPE) & regset);
+      PTRACE_READ_REGS (PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) & regset);
     }
   else
     {
@@ -408,8 +402,7 @@ static volatile int got_sigchld;
 /*ARGSUSED */
 /* This will eventually be more interesting. */
 void
-sigchld_handler (signo)
-     int signo;
+sigchld_handler (int signo)
 {
   got_sigchld++;
 }
@@ -431,10 +424,8 @@ sigchld_handler (signo)
 /*
  * Thanks to XPT_MPDEBUGGER, we have to mange child_wait().
  */
-int
-child_wait (pid, status)
-     int pid;
-     struct target_waitstatus *status;
+ptid_t
+child_wait (ptid_t ptid, struct target_waitstatus *status)
 {
   int save_errno, rv, xvaloff, saoff, sa_hand;
   struct pt_stop pt;
@@ -446,6 +437,7 @@ child_wait (pid, status)
 #ifdef SVR4_SHARED_LIBS                /* use this to distinguish ptx 2 vs ptx 4 */
   prstatus_t pstatus;
 #endif
+  int pid = PIDGET (ptid);
 
   do
     {
@@ -473,7 +465,7 @@ child_wait (pid, status)
 
       pid = pt.ps_pid;
 
-      if (pid != inferior_pid)
+      if (pid != PIDGET (inferior_ptid))
        {
          /* NOTE: the mystery fork in csh/tcsh needs to be ignored.
           * We should not return new children for the initial run
@@ -543,7 +535,8 @@ child_wait (pid, status)
            }
          break;
        case PTS_WATCHPT_HIT:
-         fatal ("PTS_WATCHPT_HIT\n");
+         internal_error (__FILE__, __LINE__,
+                         "PTS_WATCHPT_HIT\n");
          break;
        default:
          /* stopped by signal */
@@ -585,9 +578,9 @@ child_wait (pid, status)
        }
 
     }
-  while (pid != inferior_pid); /* Some other child died or stopped */
+  while (pid != PIDGET (inferior_ptid));       /* Some other child died or stopped */
 
-  return pid;
+  return pid_to_ptid (pid);
 }
 #else /* !ATTACH_DETACH */
 /*
@@ -595,12 +588,12 @@ child_wait (pid, status)
  * the MPDEBUGGER child_wait() works properly.  This will go away when
  * that is fixed.
  */
-child_wait (pid, ourstatus)
-     int pid;
-     struct target_waitstatus *ourstatus;
+ptid_t
+child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
 {
   int save_errno;
   int status;
+  int pid = PIDGET (ptid);
 
   do
     {
@@ -615,12 +608,12 @@ child_wait (pid, ourstatus)
                   safe_strerror (save_errno));
          ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
          ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
-         return -1;
+         return pid_to_ptid (-1);
        }
     }
-  while (pid != inferior_pid); /* Some other child died or stopped */
+  while (pid != PIDGET (inferior_ptid));       /* Some other child died or stopped */
   store_waitstatus (ourstatus, status);
-  return pid;
+  return pid_to_ptid (pid);
 }
 #endif /* ATTACH_DETACH */
 \f
@@ -630,19 +623,13 @@ child_wait (pid, ourstatus)
    It exists so that all calls to ptrace are isolated in this 
    machine-dependent file. */
 int
-call_ptrace (request, pid, addr, data)
-     int request, pid;
-     PTRACE_ARG3_TYPE addr;
-     int data;
+call_ptrace (int request, int pid, PTRACE_ARG3_TYPE addr, int data)
 {
   return ptrace (request, pid, addr, data);
 }
 
 int
-call_mptrace (request, pid, addr, data)
-     int request, pid;
-     PTRACE_ARG3_TYPE addr;
-     int data;
+call_mptrace (int request, int pid, PTRACE_ARG3_TYPE addr, int data)
 {
   return mptrace (request, pid, addr, data);
 }
@@ -655,20 +642,20 @@ call_mptrace (request, pid, addr, data)
 #endif
 
 void
-kill_inferior ()
+kill_inferior (void)
 {
-  if (inferior_pid == 0)
+  if (ptid_equal (inferior_ptid, null_ptid))
     return;
 
   /* For MPDEBUGGER, don't use PT_KILL, since the child will stop
      again with a PTS_EXIT.  Just hit him with SIGKILL (so he stops)
      and detach. */
 
-  kill (inferior_pid, SIGKILL);
+  kill (PIDGET (inferior_ptid), SIGKILL);
 #ifdef ATTACH_DETACH
   detach (SIGKILL);
 #else /* ATTACH_DETACH */
-  ptrace (PT_KILL, inferior_pid, 0, 0);
+  ptrace (PT_KILL, PIDGET (inferior_ptid), 0, 0);
   wait ((int *) NULL);
 #endif /* ATTACH_DETACH */
   target_mourn_inferior ();
@@ -679,15 +666,14 @@ kill_inferior ()
    If SIGNAL is nonzero, give it that signal.  */
 
 void
-child_resume (pid, step, signal)
-     int pid;
-     int step;
-     enum target_signal signal;
+child_resume (ptid_t ptid, int step, enum target_signal signal)
 {
+  int pid = PIDGET (ptid);
+
   errno = 0;
 
   if (pid == -1)
-    pid = inferior_pid;
+    pid = PIDGET (inferior_ptid);
 
   /* An address of (PTRACE_ARG3_TYPE)1 tells ptrace to continue from where
      it was.  (If GDB wanted it to start some other way, we have already
@@ -710,8 +696,7 @@ child_resume (pid, step, signal)
 #ifdef ATTACH_DETACH
 /* Start debugging the process whose number is PID.  */
 int
-attach (pid)
-     int pid;
+attach (int pid)
 {
   sigset_t set;
   int rv;
@@ -731,12 +716,11 @@ attach (pid)
 }
 
 void
-detach (signo)
-     int signo;
+detach (int signo)
 {
   int rv;
 
-  rv = mptrace (XPT_UNDEBUG, inferior_pid, 1, signo);
+  rv = mptrace (XPT_UNDEBUG, PIDGET (inferior_ptid), 1, signo);
   if (-1 == rv)
     {
       error ("mptrace(XPT_UNDEBUG): %s", safe_strerror (errno));
@@ -760,7 +744,7 @@ detach (signo)
 
 /* Copy LEN bytes to or from inferior's memory starting at MEMADDR
    to debugger memory starting at MYADDR.   Copy to inferior if
-   WRITE is nonzero.
+   WRITE is nonzero.  TARGET is ignored.
 
    Returns the length copied, which is either the LEN argument or zero.
    This xfer function does not do partial moves, since child_ops
@@ -768,12 +752,9 @@ detach (signo)
    anyway.  */
 
 int
-child_xfer_memory (memaddr, myaddr, len, write, target)
-     CORE_ADDR memaddr;
-     char *myaddr;
-     int len;
-     int write;
-     struct target_ops *target;        /* ignored */
+child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+                  struct mem_attrib *attrib,
+                  struct target_ops *target)
 {
   register int i;
   /* Round starting address down to longword boundary.  */
@@ -793,14 +774,14 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       if (addr != memaddr || len < (int) sizeof (PTRACE_XFER_TYPE))
        {
          /* Need part of initial word -- fetch it.  */
-         buffer[0] = ptrace (PT_RTEXT, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+         buffer[0] = ptrace (PT_RTEXT, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) addr,
                              0);
        }
 
       if (count > 1)           /* FIXME, avoid if even boundary */
        {
          buffer[count - 1]
-           = ptrace (PT_RTEXT, inferior_pid,
+           = ptrace (PT_RTEXT, PIDGET (inferior_ptid),
                      ((PTRACE_ARG3_TYPE)
                       (addr + (count - 1) * sizeof (PTRACE_XFER_TYPE))),
                      0);
@@ -817,14 +798,14 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (PTRACE_XFER_TYPE))
        {
          errno = 0;
-         ptrace (PT_WDATA, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+         ptrace (PT_WDATA, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) addr,
                  buffer[i]);
          if (errno)
            {
              /* Using the appropriate one (I or D) is necessary for
                 Gould NP1, at least.  */
              errno = 0;
-             ptrace (PT_WTEXT, inferior_pid, (PTRACE_ARG3_TYPE) addr,
+             ptrace (PT_WTEXT, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) addr,
                      buffer[i]);
            }
          if (errno)
@@ -837,7 +818,7 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
       for (i = 0; i < count; i++, addr += sizeof (PTRACE_XFER_TYPE))
        {
          errno = 0;
-         buffer[i] = ptrace (PT_RTEXT, inferior_pid,
+         buffer[i] = ptrace (PT_RTEXT, PIDGET (inferior_ptid),
                              (PTRACE_ARG3_TYPE) addr, 0);
          if (errno)
            return 0;
@@ -854,7 +835,7 @@ child_xfer_memory (memaddr, myaddr, len, write, target)
 
 
 void
-_initialize_symm_nat ()
+_initialize_symm_nat (void)
 {
 #ifdef ATTACH_DETACH
 /*
@@ -873,8 +854,9 @@ _initialize_symm_nat ()
   rv = mptrace (XPT_MPDEBUGGER, 0, 0, 0);
   if (-1 == rv)
     {
-      fatal ("_initialize_symm_nat(): mptrace(XPT_MPDEBUGGER): %s",
-            safe_strerror (errno));
+      internal_error (__FILE__, __LINE__,
+                     "_initialize_symm_nat(): mptrace(XPT_MPDEBUGGER): %s",
+                     safe_strerror (errno));
     }
 
   /*
@@ -891,14 +873,16 @@ _initialize_symm_nat ()
   rv = sigaddset (&set, SIGCHLD);
   if (-1 == rv)
     {
-      fatal ("_initialize_symm_nat(): sigaddset(SIGCHLD): %s",
-            safe_strerror (errno));
+      internal_error (__FILE__, __LINE__,
+                     "_initialize_symm_nat(): sigaddset(SIGCHLD): %s",
+                     safe_strerror (errno));
     }
   rv = sigprocmask (SIG_BLOCK, &set, (sigset_t *) NULL);
   if (-1 == rv)
     {
-      fatal ("_initialize_symm_nat(): sigprocmask(SIG_BLOCK): %s",
-            safe_strerror (errno));
+      internal_error (__FILE__, __LINE__,
+                     "_initialize_symm_nat(): sigprocmask(SIG_BLOCK): %s",
+                     safe_strerror (errno));
     }
 
   sact.sa_handler = sigchld_handler;
@@ -907,8 +891,9 @@ _initialize_symm_nat ()
   rv = sigaction (SIGCHLD, &sact, (struct sigaction *) NULL);
   if (-1 == rv)
     {
-      fatal ("_initialize_symm_nat(): sigaction(SIGCHLD): %s",
-            safe_strerror (errno));
+      internal_error (__FILE__, __LINE__,
+                     "_initialize_symm_nat(): sigaction(SIGCHLD): %s",
+                     safe_strerror (errno));
     }
 #endif
 }
This page took 0.033881 seconds and 4 git commands to generate.