Remove ptid_get_pid
[deliverable/binutils-gdb.git] / gdb / common / agent.c
index 2963917641c10b2147d7f4c647ec6c4d333dbf38..65d5f1938b88d9458f099c892f9c9bfce0c5c01e 100644 (file)
@@ -1,6 +1,6 @@
 /* Shared utility routines for GDB to interact with agent.
 
-   Copyright (C) 2009-2014 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifdef GDBSERVER
-#include "server.h"
-#else
-#include "defs.h"
-#include "target.h"
-#include "infrun.h"
-#include "objfiles.h"
-#endif
+#include "common-defs.h"
+#include "target/target.h"
+#include "common/symbol.h"
 #include <unistd.h>
 #include "agent.h"
 #include "filestuff.h"
@@ -62,13 +57,12 @@ struct ipa_sym_addresses
 
 /* Cache of the helper thread id.  FIXME: this global should be made
    per-process.  */
-static unsigned int helper_thread_id = 0;
+static uint32_t helper_thread_id = 0;
 
 static struct
 {
   const char *name;
   int offset;
-  int required;
 } symbol_list[] = {
   IPA_SYM(helper_thread_id),
   IPA_SYM(cmd_buf),
@@ -99,18 +93,10 @@ agent_look_up_symbols (void *arg)
     {
       CORE_ADDR *addrp =
        (CORE_ADDR *) ((char *) &ipa_sym_addrs + symbol_list[i].offset);
-#ifdef GDBSERVER
-
-      if (look_up_one_symbol (symbol_list[i].name, addrp, 1) == 0)
-#else
-      struct bound_minimal_symbol sym =
-       lookup_minimal_symbol (symbol_list[i].name, NULL,
-                              (struct objfile *) arg);
+      struct objfile *objfile = (struct objfile *) arg;
 
-      if (sym.minsym != NULL)
-       *addrp = BMSYMBOL_VALUE_ADDRESS (sym);
-      else
-#endif
+      if (find_minimal_symbol_address (symbol_list[i].name, addrp,
+                                      objfile) != 0)
        {
          DEBUG_AGENT ("symbol `%s' not found\n", symbol_list[i].name);
          return -1;
@@ -126,23 +112,9 @@ agent_get_helper_thread_id (void)
 {
   if  (helper_thread_id == 0)
     {
-#ifdef GDBSERVER
-      if (read_inferior_memory (ipa_sym_addrs.addr_helper_thread_id,
-                               (unsigned char *) &helper_thread_id,
-                               sizeof helper_thread_id))
-#else
-      enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-      gdb_byte buf[4];
-
-      if (target_read_memory (ipa_sym_addrs.addr_helper_thread_id,
-                             buf, sizeof buf) == 0)
-       helper_thread_id = extract_unsigned_integer (buf, sizeof buf,
-                                                    byte_order);
-      else
-#endif
-       {
-         warning (_("Error reading helper thread's id in lib"));
-       }
+      if (target_read_uint32 (ipa_sym_addrs.addr_helper_thread_id,
+                             &helper_thread_id))
+       warning (_("Error reading helper thread's id in lib"));
     }
 
   return helper_thread_id;
@@ -218,15 +190,10 @@ agent_run_command (int pid, const char *cmd, int len)
 {
   int fd;
   int tid = agent_get_helper_thread_id ();
-  ptid_t ptid = ptid_build (pid, tid, 0);
+  ptid_t ptid = ptid_t (pid, tid, 0);
 
-#ifdef GDBSERVER
-  int ret = write_inferior_memory (ipa_sym_addrs.addr_cmd_buf,
-                                  (const unsigned char *) cmd, len);
-#else
   int ret = target_write_memory (ipa_sym_addrs.addr_cmd_buf,
                                 (gdb_byte *) cmd, len);
-#endif
 
   if (ret != 0)
     {
@@ -237,18 +204,7 @@ agent_run_command (int pid, const char *cmd, int len)
   DEBUG_AGENT ("agent: resumed helper thread\n");
 
   /* Resume helper thread.  */
-#ifdef GDBSERVER
-{
-  struct thread_resume resume_info;
-
-  resume_info.thread = ptid;
-  resume_info.kind = resume_continue;
-  resume_info.sig = GDB_SIGNAL_0;
-  (*the_target->resume) (&resume_info, 1);
-}
-#else
- target_resume (ptid, 0, GDB_SIGNAL_0);
-#endif
+  target_continue_no_signal (ptid);
 
   fd = gdb_connect_sync_socket (pid);
   if (fd >= 0)
@@ -280,41 +236,15 @@ agent_run_command (int pid, const char *cmd, int len)
   /* Need to read response with the inferior stopped.  */
   if (!ptid_equal (ptid, null_ptid))
     {
-      struct target_waitstatus status;
-      int was_non_stop = non_stop;
       /* Stop thread PTID.  */
       DEBUG_AGENT ("agent: stop helper thread\n");
-#ifdef GDBSERVER
-      {
-       struct thread_resume resume_info;
-
-       resume_info.thread = ptid;
-       resume_info.kind = resume_stop;
-       resume_info.sig = GDB_SIGNAL_0;
-       (*the_target->resume) (&resume_info, 1);
-      }
-
-      non_stop = 1;
-      mywait (ptid, &status, 0, 0);
-#else
-      non_stop = 1;
-      target_stop (ptid);
-
-      memset (&status, 0, sizeof (status));
-      target_wait (ptid, &status, 0);
-#endif
-      non_stop = was_non_stop;
+      target_stop_and_wait (ptid);
     }
 
   if (fd >= 0)
     {
-#ifdef GDBSERVER
-      if (read_inferior_memory (ipa_sym_addrs.addr_cmd_buf,
-                               (unsigned char *) cmd, IPA_CMD_BUF_SIZE))
-#else
       if (target_read_memory (ipa_sym_addrs.addr_cmd_buf, (gdb_byte *) cmd,
                              IPA_CMD_BUF_SIZE))
-#endif
        {
          warning (_("Error reading command response"));
          return -1;
@@ -325,7 +255,7 @@ agent_run_command (int pid, const char *cmd, int len)
 }
 
 /* Each bit of it stands for a capability of agent.  */
-static unsigned int agent_capability = 0;
+static uint32_t agent_capability = 0;
 
 /* Return true if agent has capability AGENT_CAP, otherwise return false.  */
 
@@ -334,20 +264,8 @@ agent_capability_check (enum agent_capa agent_capa)
 {
   if (agent_capability == 0)
     {
-#ifdef GDBSERVER
-      if (read_inferior_memory (ipa_sym_addrs.addr_capability,
-                               (unsigned char *) &agent_capability,
-                               sizeof agent_capability))
-#else
-      enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-      gdb_byte buf[4];
-
-      if (target_read_memory (ipa_sym_addrs.addr_capability,
-                             buf, sizeof buf) == 0)
-       agent_capability = extract_unsigned_integer (buf, sizeof buf,
-                                                    byte_order);
-      else
-#endif
+      if (target_read_uint32 (ipa_sym_addrs.addr_capability,
+                             &agent_capability))
        warning (_("Error reading capability of agent"));
     }
   return agent_capability & agent_capa;
This page took 0.028064 seconds and 4 git commands to generate.