(getopt): Allow full prototype when builind under FreeBSD.
[deliverable/binutils-gdb.git] / gdb / proc-service.c
index 3cebc632c0fc28a81ec8405732d184c1ab35d148..d7cd1aaf91b433626c6f824b403fdd0ad54591b6 100644 (file)
@@ -1,5 +1,6 @@
 /* <proc_service.h> implementation.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+
+   Copyright 1999, 2000, 2002 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -51,33 +52,11 @@ typedef size_t gdb_ps_size_t;
 
 /* Building process ids.  */
 
-#ifndef MERGEPID
-#define MERGEPID(PID, TID)     (((PID) & 0xffff) | ((TID) << 16))
-#endif
-
-#define BUILD_LWP(tid, pid)    MERGEPID (pid, tid)
+#define BUILD_LWP(lwp, pid)    ptid_build (pid, lwp, 0)
 \f
 
 /* Helper functions.  */
 
-static void
-restore_inferior_pid (void *arg)
-{
-  int *saved_pid_ptr = arg;
-  inferior_pid = *saved_pid_ptr;
-  xfree (arg);
-}
-
-static struct cleanup *
-save_inferior_pid (void)
-{
-  int *saved_pid_ptr;
-
-  saved_pid_ptr = xmalloc (sizeof (int));
-  *saved_pid_ptr = inferior_pid;
-  return make_cleanup (restore_inferior_pid, saved_pid_ptr);
-}
-
 /* Transfer LEN bytes of memory between BUF and address ADDR in the
    process specified by PH.  If WRITE, transfer them to the process,
    else transfer them from the process.  Returns PS_OK for success,
@@ -90,10 +69,10 @@ static ps_err_e
 ps_xfer_memory (const struct ps_prochandle *ph, paddr_t addr,
                char *buf, size_t len, int write)
 {
-  struct cleanup *old_chain = save_inferior_pid ();
+  struct cleanup *old_chain = save_inferior_ptid ();
   int ret;
 
-  inferior_pid = ph->pid;
+  inferior_ptid = pid_to_ptid (ph->pid);
 
   if (write)
     ret = target_write_memory (addr, buf, len);
@@ -250,9 +229,9 @@ ps_ptwrite (gdb_ps_prochandle_t ph, paddr_t addr,
 ps_err_e
 ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
 {
-  struct cleanup *old_chain = save_inferior_pid ();
+  struct cleanup *old_chain = save_inferior_ptid ();
 
-  inferior_pid = BUILD_LWP (lwpid, ph->pid);
+  inferior_ptid = BUILD_LWP (lwpid, ph->pid);
 
   target_fetch_registers (-1);
   fill_gregset ((gdb_gregset_t *) gregset, -1);
@@ -267,9 +246,9 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
 ps_err_e
 ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prgregset_t gregset)
 {
-  struct cleanup *old_chain = save_inferior_pid ();
+  struct cleanup *old_chain = save_inferior_ptid ();
 
-  inferior_pid = BUILD_LWP (lwpid, ph->pid);
+  inferior_ptid = BUILD_LWP (lwpid, ph->pid);
 
   /* FIXME: We should really make supply_gregset const-correct.  */
   supply_gregset ((gdb_gregset_t *) gregset);
@@ -286,9 +265,9 @@ ps_err_e
 ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
               gdb_prfpregset_t *fpregset)
 {
-  struct cleanup *old_chain = save_inferior_pid ();
+  struct cleanup *old_chain = save_inferior_ptid ();
 
-  inferior_pid = BUILD_LWP (lwpid, ph->pid);
+  inferior_ptid = BUILD_LWP (lwpid, ph->pid);
 
   target_fetch_registers (-1);
   fill_fpregset ((gdb_fpregset_t *) fpregset, -1);
@@ -304,9 +283,9 @@ ps_err_e
 ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
               const gdb_prfpregset_t *fpregset)
 {
-  struct cleanup *old_chain = save_inferior_pid ();
+  struct cleanup *old_chain = save_inferior_ptid ();
 
-  inferior_pid = BUILD_LWP (lwpid, ph->pid);
+  inferior_ptid = BUILD_LWP (lwpid, ph->pid);
 
   /* FIXME: We should really make supply_fpregset const-correct.  */
   supply_fpregset ((gdb_fpregset_t *) fpregset);
@@ -316,8 +295,8 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
   return PS_OK;
 }
 
-/* Return overall process id of the target PH.
-   Special for Linux -- not used on Solaris.  */
+/* Return overall process id of the target PH.  Special for GNU/Linux
+   -- not used on Solaris.  */
 
 pid_t
 ps_getpid (gdb_ps_prochandle_t ph)
This page took 0.024875 seconds and 4 git commands to generate.