Enable Intel RDPID instruction.
[deliverable/binutils-gdb.git] / sim / common / sim-utils.c
index b76064ec21e4a6edf6fe4329f95a8b2eedbafb68..d11d3b4cd901955541ef54b0d32adad85f8c2120 100644 (file)
@@ -1,6 +1,5 @@
 /* Miscellaneous simulator utilities.
-   Copyright (C) 1997, 1998, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1997-2016 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
 This file is part of GDB, the GNU debugger.
@@ -49,10 +48,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "bfd.h"
 #include "sim-utils.h"
 
-/* Global pointer to all state data.
-   Set by sim_resume.  */
-struct sim_state *current_state;
-
 /* Allocate zero filled memory with xcalloc - xcalloc aborts if the
    allocation fails.  */
 
@@ -62,12 +57,6 @@ zalloc (unsigned long size)
   return xcalloc (1, size);
 }
 
-void
-zfree (void *data)
-{
-  free (data);
-}
-
 /* Allocate a sim_state struct.  */
 
 SIM_DESC
@@ -112,13 +101,13 @@ sim_state_alloc (SIM_OPEN_KIND kind,
 void
 sim_state_free (SIM_DESC sd)
 {
-  ASSERT (sd->base.magic == SIM_MAGIC_NUMBER);
+  ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
 
 #ifdef SIM_STATE_FREE
   SIM_STATE_FREE (sd);
 #endif
 
-  zfree (sd);
+  free (sd);
 }
 
 /* Return a pointer to the cpu data for CPU_NAME, or NULL if not found.  */
@@ -218,7 +207,7 @@ sim_add_commas (char *buf, int sizeof_buf, unsigned long value)
    bfd open.  */
 
 SIM_RC
-sim_analyze_program (SIM_DESC sd, char *prog_name, bfd *prog_bfd)
+sim_analyze_program (SIM_DESC sd, const char *prog_name, bfd *prog_bfd)
 {
   asection *s;
   SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
@@ -241,13 +230,13 @@ sim_analyze_program (SIM_DESC sd, char *prog_name, bfd *prog_bfd)
   prog_bfd = bfd_openr (prog_name, STATE_TARGET (sd));
   if (prog_bfd == NULL)
     {
-      sim_io_eprintf (sd, "%s: can't open \"%s\": %s\n", 
+      sim_io_eprintf (sd, "%s: can't open \"%s\": %s\n",
                      STATE_MY_NAME (sd),
                      prog_name,
                      bfd_errmsg (bfd_get_error ()));
       return SIM_RC_FAIL;
     }
-  if (!bfd_check_format (prog_bfd, bfd_object)) 
+  if (!bfd_check_format (prog_bfd, bfd_object))
     {
       sim_io_eprintf (sd, "%s: \"%s\" is not an object file: %s\n",
                      STATE_MY_NAME (sd),
@@ -335,10 +324,20 @@ sim_do_commandf (SIM_DESC sd,
 {
   va_list ap;
   char *buf;
+  int ret;
+
   va_start (ap, fmt);
-  vasprintf (&buf, fmt, ap);
-  sim_do_command (sd, buf);
+  ret = vasprintf (&buf, fmt, ap);
   va_end (ap);
+
+  if (ret < 0)
+    {
+      sim_io_eprintf (sd, "%s: asprintf failed for `%s'\n",
+                     STATE_MY_NAME (sd), fmt);
+      return;
+    }
+
+  sim_do_command (sd, buf);
   free (buf);
 }
 
@@ -403,5 +402,3 @@ transfer_to_str (unsigned transfer)
     default: return "(error)";
     }
 }
-
-
This page took 0.027019 seconds and 4 git commands to generate.