X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=sim%2Fcommon%2Fsim-utils.c;h=d11d3b4cd901955541ef54b0d32adad85f8c2120;hb=8bc526963edde8cf8789ce82072d05fd2bcc90c4;hp=b76064ec21e4a6edf6fe4329f95a8b2eedbafb68;hpb=7b6bb8daaceb9ecf3f42dea57ae82733d6a3b2f6;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/common/sim-utils.c b/sim/common/sim-utils.c index b76064ec21..d11d3b4cd9 100644 --- a/sim/common/sim-utils.c +++ b/sim/common/sim-utils.c @@ -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 . */ #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)"; } } - -