Phase 1 of the ptid_t changes.
[deliverable/binutils-gdb.git] / gdb / lynx-nat.c
index 28ef6b6cb6e5e31a1aebd7f22de4cc83d4423630..e76406f69cc40d8a71542d37eb1621093881d290 100644 (file)
@@ -287,8 +287,8 @@ fetch_inferior_registers (int regno)
       int i;
 
       errno = 0;
-      retval = ptrace (PTRACE_GETREGS, inferior_pid, (PTRACE_ARG3_TYPE) & ec,
-                      0);
+      retval = ptrace (PTRACE_GETREGS, PIDGET (inferior_ptid),
+                       (PTRACE_ARG3_TYPE) & ec, 0);
       if (errno)
        perror_with_name ("ptrace(PTRACE_GETREGS)");
 
@@ -340,8 +340,8 @@ fetch_inferior_registers (int regno)
       int i;
 
       errno = 0;
-      retval = ptrace (PTRACE_GETFPREGS, inferior_pid, (PTRACE_ARG3_TYPE) & fc,
-                      0);
+      retval = ptrace (PTRACE_GETFPREGS, PIDGET (inferior_ptid),
+                       (PTRACE_ARG3_TYPE) & fc, 0);
       if (errno)
        perror_with_name ("ptrace(PTRACE_GETFPREGS)");
 
@@ -396,8 +396,8 @@ store_inferior_registers (int regno)
              8 * REGISTER_RAW_SIZE (O0_REGNUM));
 
       errno = 0;
-      retval = ptrace (PTRACE_SETREGS, inferior_pid, (PTRACE_ARG3_TYPE) & ec,
-                      0);
+      retval = ptrace (PTRACE_SETREGS, PIDGET (inferior_ptid),
+                       (PTRACE_ARG3_TYPE) & ec, 0);
       if (errno)
        perror_with_name ("ptrace(PTRACE_SETREGS)");
     }
@@ -444,8 +444,8 @@ store_inferior_registers (int regno)
 
 /* We read fcontext first so that we can get good values for fq_t... */
       errno = 0;
-      retval = ptrace (PTRACE_GETFPREGS, inferior_pid, (PTRACE_ARG3_TYPE) & fc,
-                      0);
+      retval = ptrace (PTRACE_GETFPREGS, PIDGET (inferior_ptid),
+                       (PTRACE_ARG3_TYPE) & fc, 0);
       if (errno)
        perror_with_name ("ptrace(PTRACE_GETFPREGS)");
 
@@ -455,8 +455,8 @@ store_inferior_registers (int regno)
       fc.fsr = read_register (FPS_REGNUM);
 
       errno = 0;
-      retval = ptrace (PTRACE_SETFPREGS, inferior_pid, (PTRACE_ARG3_TYPE) & fc,
-                      0);
+      retval = ptrace (PTRACE_SETFPREGS, PIDGET (inferior_ptid),
+                       (PTRACE_ARG3_TYPE) & fc, 0);
       if (errno)
        perror_with_name ("ptrace(PTRACE_SETFPREGS)");
     }
@@ -508,7 +508,7 @@ fetch_inferior_registers (int regno)
   else
     reglo = reghi = regno;
 
-  ecp = registers_addr (inferior_pid);
+  ecp = registers_addr (PIDGET (inferior_ptid));
 
   for (regno = reglo; regno <= reghi; regno++)
     {
@@ -524,7 +524,7 @@ fetch_inferior_registers (int regno)
          unsigned int reg;
 
          errno = 0;
-         reg = ptrace (ptrace_fun, inferior_pid,
+         reg = ptrace (ptrace_fun, PIDGET (inferior_ptid),
                        (PTRACE_ARG3_TYPE) (ecp + regmap[regno] + i), 0);
          if (errno)
            perror_with_name ("ptrace(PTRACE_PEEKUSP)");
@@ -559,7 +559,7 @@ store_inferior_registers (int regno)
   else
     reglo = reghi = regno;
 
-  ecp = registers_addr (inferior_pid);
+  ecp = registers_addr (PIDGET (inferior_ptid));
 
   for (regno = reglo; regno <= reghi; regno++)
     {
@@ -579,7 +579,7 @@ store_inferior_registers (int regno)
          reg = *(unsigned int *) &registers[REGISTER_BYTE (regno) + i];
 
          errno = 0;
-         ptrace (ptrace_fun, inferior_pid,
+         ptrace (ptrace_fun, PIDGET (inferior_ptid),
                  (PTRACE_ARG3_TYPE) (ecp + regmap[regno] + i), reg);
          if (errno)
            perror_with_name ("ptrace(PTRACE_POKEUSP)");
@@ -591,12 +591,13 @@ store_inferior_registers (int regno)
 /* Wait for child to do something.  Return pid of child, or -1 in case
    of error; store status through argument pointer OURSTATUS.  */
 
-int
-child_wait (int pid, struct target_waitstatus *ourstatus)
+ptid_t
+child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
 {
   int save_errno;
   int thread;
   union wait status;
+  int pid;
 
   while (1)
     {
@@ -622,7 +623,7 @@ child_wait (int pid, struct target_waitstatus *ourstatus)
          return -1;
        }
 
-      if (pid != PIDGET (inferior_pid))                /* Some other process?!? */
+      if (pid != PIDGET (inferior_ptid))       /* Some other process?!? */
        continue;
 
       thread = status.w_tid;   /* Get thread id from status */
@@ -630,26 +631,27 @@ child_wait (int pid, struct target_waitstatus *ourstatus)
       /* Initial thread value can only be acquired via wait, so we have to
          resort to this hack.  */
 
-      if (TIDGET (inferior_pid) == 0 && thread != 0)
+      if (TIDGET (inferior_ptid) == 0 && thread != 0)
        {
-         inferior_pid = BUILDPID (inferior_pid, thread);
-         add_thread (inferior_pid);
+         inferior_ptid = MERGEPID (PIDGET (inferior_ptid), thread);
+         add_thread (inferior_ptid);
        }
 
-      pid = BUILDPID (pid, thread);
+      ptid = BUILDPID (pid, thread);
 
       /* We've become a single threaded process again.  */
       if (thread == 0)
-       inferior_pid = pid;
+       inferior_ptid = ptid;
 
       /* Check for thread creation.  */
       if (WIFSTOPPED (status)
          && WSTOPSIG (status) == SIGTRAP
-         && !in_thread_list (pid))
+         && !in_thread_list (ptid))
        {
          int realsig;
 
-         realsig = ptrace (PTRACE_GETTRACESIG, pid, (PTRACE_ARG3_TYPE) 0, 0);
+         realsig = ptrace (PTRACE_GETTRACESIG, PIDGET (ptid),
+                           (PTRACE_ARG3_TYPE) 0, 0);
 
          if (realsig == SIGNEWTHREAD)
            {
@@ -657,7 +659,7 @@ child_wait (int pid, struct target_waitstatus *ourstatus)
                 realsig -- the code in wait_for_inferior expects SIGTRAP. */
              ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
              ourstatus->value.sig = TARGET_SIGNAL_0;
-             return pid;
+             return ptid;
            }
          else
            error ("Signal for unknown thread was not SIGNEWTHREAD");
@@ -666,15 +668,16 @@ child_wait (int pid, struct target_waitstatus *ourstatus)
       /* Check for thread termination.  */
       else if (WIFSTOPPED (status)
               && WSTOPSIG (status) == SIGTRAP
-              && in_thread_list (pid))
+              && in_thread_list (ptid))
        {
          int realsig;
 
-         realsig = ptrace (PTRACE_GETTRACESIG, pid, (PTRACE_ARG3_TYPE) 0, 0);
+         realsig = ptrace (PTRACE_GETTRACESIG, PIDGET (ptid),
+                           (PTRACE_ARG3_TYPE) 0, 0);
 
          if (realsig == SIGTHREADEXIT)
            {
-             ptrace (PTRACE_CONT, PIDGET (pid), (PTRACE_ARG3_TYPE) 0, 0);
+             ptrace (PTRACE_CONT, PIDGET (ptid), (PTRACE_ARG3_TYPE) 0, 0);
              continue;
            }
        }
@@ -705,14 +708,16 @@ child_wait (int pid, struct target_waitstatus *ourstatus)
       store_waitstatus (ourstatus, status.w_status);
 #endif
 
-      return pid;
+      return ptid;
     }
 }
 
 /* Return nonzero if the given thread is still alive.  */
 int
-child_thread_alive (int pid)
+child_thread_alive (ptid_t ptid)
 {
+  int pid = PIDGET (ptid);
+
   /* Arggh.  Apparently pthread_kill only works for threads within
      the process that calls pthread_kill.
 
@@ -730,9 +735,10 @@ child_thread_alive (int pid)
    If SIGNAL is nonzero, give it that signal.  */
 
 void
-child_resume (int pid, int step, enum target_signal signal)
+child_resume (ptid_t ptid, int step, enum target_signal signal)
 {
   int func;
+  int pid = PIDGET (ptid);
 
   errno = 0;
 
@@ -740,7 +746,7 @@ child_resume (int pid, int step, enum target_signal signal)
      we only want to step/continue a single thread.  */
   if (pid == -1)
     {
-      pid = inferior_pid;
+      pid = PIDGET (inferior_ptid);
       func = step ? PTRACE_SINGLESTEP : PTRACE_CONT;
     }
   else
@@ -766,11 +772,11 @@ child_resume (int pid, int step, enum target_signal signal)
    buffer.  */
 
 char *
-child_pid_to_str (int pid)
+child_pid_to_str (ptid_t ptid)
 {
   static char buf[40];
 
-  sprintf (buf, "process %d thread %d", PIDGET (pid), TIDGET (pid));
+  sprintf (buf, "process %d thread %d", PIDGET (ptid), TIDGET (ptid));
 
   return buf;
 }
This page took 0.029417 seconds and 4 git commands to generate.