* Makefile.in (SIM_OBJS): Add sim-load.o.

* wrapper.c (sim_kind,myname): New static locals.
	(sim_open): Set sim_kind, myname.
	(sim_load): Call sim_load_file to do work.  Set start address from bfd.
	(sim_create_inferior): Return SIM_RC.  Delete start_address arg.
This commit is contained in:
David Edelsohn 1997-04-17 09:41:11 +00:00
parent 35c384f6bb
commit 0ab92fe79f
2 changed files with 34 additions and 11 deletions

View File

@ -1,3 +1,11 @@
Thu Apr 17 02:39:02 1997 Doug Evans <dje@canuck.cygnus.com>
* Makefile.in (SIM_OBJS): Add sim-load.o.
* wrapper.c (sim_kind,myname): New static locals.
(sim_open): Set sim_kind, myname.
(sim_load): Call sim_load_file to do work. Set start address from bfd.
(sim_create_inferior): Return SIM_RC. Delete start_address arg.
Thu Apr 17 11:48:25 1997 Andrew Cagney <cagney@b1.cygnus.com> Thu Apr 17 11:48:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
* wrapper.c (sim_trace): Update so that it matches prototype. * wrapper.c (sim_trace): Update so that it matches prototype.

View File

@ -1,5 +1,5 @@
/* run front end support for arm /* run front end support for arm
Copyright (C) 1995, 1996 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of ARM SIM. This file is part of ARM SIM.
@ -35,6 +35,12 @@ host_callback *sim_callback;
static struct ARMul_State *state; static struct ARMul_State *state;
/* Who is using the simulator. */
static SIM_OPEN_KIND sim_kind;
/* argv[0] */
static char *myname;
/* Memory size in bytes. */ /* Memory size in bytes. */
static int mem_size = (1 << 21); static int mem_size = (1 << 21);
@ -161,14 +167,13 @@ sim_resume (sd, step, siggnal)
FLUSHPIPE; FLUSHPIPE;
} }
void SIM_RC
sim_create_inferior (sd, start_address, argv, env) sim_create_inferior (sd, argv, env)
SIM_DESC sd; SIM_DESC sd;
SIM_ADDR start_address;
char **argv; char **argv;
char **env; char **env;
{ {
ARMul_SetPC(state, start_address); return SIM_RC_OK;
} }
void void
@ -251,8 +256,8 @@ sim_open (kind, argv)
SIM_OPEN_KIND kind; SIM_OPEN_KIND kind;
char **argv; char **argv;
{ {
/* (*sim_callback->error) (sim_callback, "testing 1 2 3\n");*/ sim_kind = kind;
/* nothing to do, fudge our descriptor */ myname = argv[0];
return (SIM_DESC) 1; return (SIM_DESC) 1;
} }
@ -264,14 +269,24 @@ sim_close (sd, quitting)
/* nothing to do */ /* nothing to do */
} }
int SIM_RC
sim_load (sd, prog, from_tty) sim_load (sd, prog, abfd, from_tty)
SIM_DESC sd; SIM_DESC sd;
char *prog; char *prog;
bfd *abfd;
int from_tty; int from_tty;
{ {
/* Return nonzero so GDB will handle it. */ extern bfd *sim_load_file (); /* ??? Don't know where this should live. */
return 1; bfd *prog_bfd;
prog_bfd = sim_load_file (sd, myname, sim_callback, prog, abfd,
sim_kind == SIM_OPEN_DEBUG);
if (prog_bfd == NULL)
return SIM_RC_FAIL;
ARMul_SetPC (state, bfd_get_start_address (prog_bfd));
if (abfd == NULL)
bfd_close (prog_bfd);
return SIM_RC_OK;
} }
void void