X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fsim-load.c;h=4ff11c7cd52e5b3d23b6d6664ec267f9fda1710e;hb=05e682e3be7e3d9d63ec358dcf8943fd200545cb;hp=ef298b2a533a128ce99a1f87aa9d553133e5430d;hpb=41ee5402be0d0032930ab535499cd84ee6a8190a;p=deliverable%2Fbinutils-gdb.git
diff --git a/sim/common/sim-load.c b/sim/common/sim-load.c
index ef298b2a53..4ff11c7cd5 100644
--- a/sim/common/sim-load.c
+++ b/sim/common/sim-load.c
@@ -1,10 +1,10 @@
/* Utility to load a file into the simulator.
- Copyright (C) 1997, 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997-2020 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,23 +12,18 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+along with this program. If not, see . */
/* This is a standalone loader, independent of the sim-basic.h machinery,
as it is used by simulators that don't use it [though that doesn't mean
to suggest that they shouldn't :-)]. */
#ifdef HAVE_CONFIG_H
-#include "cconfig.h"
+#include "config.h"
#endif
#include "ansidecl.h"
#include /* for NULL */
-#ifdef ANSI_PROTOTYPES
#include
-#else
-#include
-#endif
#ifdef HAVE_STDLIB_H
#include
#endif
@@ -41,11 +36,11 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#include "gdb/callback.h"
#include "gdb/remote-sim.h"
-static void eprintf PARAMS ((host_callback *, const char *, ...));
-static void xprintf PARAMS ((host_callback *, const char *, ...));
+static void eprintf (host_callback *, const char *, ...);
+static void xprintf (host_callback *, const char *, ...);
static void report_transfer_performance
- PARAMS ((host_callback *, unsigned long, time_t, time_t));
-static void xprintf_bfd_vma PARAMS ((host_callback *, bfd_vma));
+ (host_callback *, unsigned long, time_t, time_t);
+static void xprintf_bfd_vma (host_callback *, bfd_vma);
/* Load program PROG into the simulator using the function DO_LOAD.
If PROG_BFD is non-NULL, the file has already been opened.
@@ -61,15 +56,9 @@ static void xprintf_bfd_vma PARAMS ((host_callback *, bfd_vma));
bfd *
-sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
- SIM_DESC sd;
- const char *myname;
- host_callback *callback;
- char *prog;
- bfd *prog_bfd;
- int verbose_p;
- int lma_p;
- sim_write_fn do_write;
+sim_load_file (SIM_DESC sd, const char *myname, host_callback *callback,
+ const char *prog, bfd *prog_bfd, int verbose_p, int lma_p,
+ sim_write_fn do_write)
{
asection *s;
/* Record separately as we don't want to close PROG_BFD if it was passed. */
@@ -86,13 +75,13 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
result_bfd = bfd_openr (prog, 0);
if (result_bfd == NULL)
{
- eprintf (callback, "%s: can't open \"%s\": %s\n",
+ eprintf (callback, "%s: can't open \"%s\": %s\n",
myname, prog, bfd_errmsg (bfd_get_error ()));
return NULL;
}
}
- if (!bfd_check_format (result_bfd, bfd_object))
+ if (!bfd_check_format (result_bfd, bfd_object))
{
eprintf (callback, "%s: \"%s\" is not an object file: %s\n",
myname, prog, bfd_errmsg (bfd_get_error ()));
@@ -106,16 +95,16 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
start_time = time (NULL);
found_loadable_section = 0;
- for (s = result_bfd->sections; s; s = s->next)
+ for (s = result_bfd->sections; s; s = s->next)
{
- if (s->flags & SEC_LOAD)
+ if (s->flags & SEC_LOAD)
{
bfd_size_type size;
- size = bfd_get_section_size_before_reloc (s);
+ size = bfd_section_size (s);
if (size > 0)
{
- char *buffer;
+ unsigned char *buffer;
bfd_vma lma;
buffer = malloc (size);
@@ -130,13 +119,13 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
return NULL;
}
if (lma_p)
- lma = bfd_section_lma (result_bfd, s);
+ lma = bfd_section_lma (s);
else
- lma = bfd_section_vma (result_bfd, s);
+ lma = bfd_section_vma (s);
if (verbose_p)
{
xprintf (callback, "Loading section %s, size 0x%lx %s ",
- bfd_get_section_name (result_bfd, s),
+ bfd_section_name (s),
(unsigned long) size,
(lma_p ? "lma" : "vma"));
xprintf_bfd_vma (callback, lma);
@@ -174,19 +163,11 @@ sim_load_file (sd, myname, callback, prog, prog_bfd, verbose_p, lma_p, do_write)
}
static void
-xprintf VPARAMS ((host_callback *callback, const char *fmt, ...))
+xprintf (host_callback *callback, const char *fmt, ...)
{
-#ifndef ANSI_PROTOTYPES
- host_callback *callback;
- char *fmt;
-#endif
va_list ap;
- VA_START (ap, fmt);
-#ifndef ANSI_PROTOTYPES
- callback = va_arg (ap, host_callback *);
- fmt = va_arg (ap, char *);
-#endif
+ va_start (ap, fmt);
(*callback->vprintf_filtered) (callback, fmt, ap);
@@ -194,19 +175,11 @@ xprintf VPARAMS ((host_callback *callback, const char *fmt, ...))
}
static void
-eprintf VPARAMS ((host_callback *callback, const char *fmt, ...))
+eprintf (host_callback *callback, const char *fmt, ...)
{
-#ifndef ANSI_PROTOTYPES
- host_callback *callback;
- char *fmt;
-#endif
va_list ap;
- VA_START (ap, fmt);
-#ifndef ANSI_PROTOTYPES
- callback = va_arg (ap, host_callback *);
- fmt = va_arg (ap, char *);
-#endif
+ va_start (ap, fmt);
(*callback->evprintf_filtered) (callback, fmt, ap);
@@ -216,10 +189,8 @@ eprintf VPARAMS ((host_callback *callback, const char *fmt, ...))
/* Report how fast the transfer went. */
static void
-report_transfer_performance (callback, data_count, start_time, end_time)
- host_callback *callback;
- unsigned long data_count;
- time_t start_time, end_time;
+report_transfer_performance (host_callback *callback, unsigned long data_count,
+ time_t start_time, time_t end_time)
{
xprintf (callback, "Transfer rate: ");
if (end_time != start_time)
@@ -234,9 +205,7 @@ report_transfer_performance (callback, data_count, start_time, end_time)
This is intended to handle the vagaries of 32 vs 64 bits, etc. */
static void
-xprintf_bfd_vma (callback, vma)
- host_callback *callback;
- bfd_vma vma;
+xprintf_bfd_vma (host_callback *callback, bfd_vma vma)
{
/* FIXME: for now */
xprintf (callback, "0x%lx", (unsigned long) vma);