#include <string.h>
#include <stdio.h>
#include <stdlib.h>
-#include <time.h>
#include <sys/fcntl.h>
#include "sis.h"
#include "libiberty.h"
(*sim_callback->printf_filtered) (sim_callback, "resuming at %x\n",
sregs->pc);
init_stdio();
- sregs->starttime = time(NULL);
+ sregs->starttime = get_time();
irq = 0;
+ if ((sregs->pc != 0) && (ebase.simtime == 0))
+ boot_init();
while (!sregs->err_mode & (icount > 0)) {
sregs->fhold = 0;
if (sregs->pc == 0 || sregs->npc == 0)
printf ("bogus pc or npc\n");
#endif
- mexc = memory_read(sregs->asi, sregs->pc, &sregs->inst,
- 2, &sregs->hold);
-#if 1 /* DELETE ME! for debugging purposes only */
+ mexc = memory_iread (sregs->pc, &sregs->inst, &sregs->hold);
+#if 0 /* DELETE ME! for debugging purposes only */
if (sis_verbose > 2)
printf("pc %x, np %x, sp %x, fp %x, wm %x, cw %x, i %08x\n",
sregs->pc, sregs->npc,
sim_halt();
restore_stdio();
clearerr(stdin);
- return (BPT_HIT);
+ return BPT_HIT;
} else
dispatch_instruction(sregs);
}
}
}
sim_halt();
- sregs->tottime += time(NULL) - sregs->starttime;
+ sregs->tottime += get_time() - sregs->starttime;
restore_stdio();
clearerr(stdin);
if (sregs->err_mode)
error_mode(sregs->pc);
if (sregs->err_mode)
- return (ERROR);
+ return ERROR;
if (sregs->bphit) {
if (sis_verbose)
(*sim_callback->printf_filtered) (sim_callback,
"HW BP hit at %x\n", sregs->pc);
- return (BPT_HIT);
+ return BPT_HIT;
}
if (ctrl_c) {
ctrl_c = 0;
- return (CTRL_C);
+ return CTRL_C;
}
- return (TIME_OUT);
-}
-
-void
-sim_set_callbacks (ptr)
- host_callback *ptr;
-{
- sim_callback = ptr;
-}
-
-void
-sim_size (memsize)
- int memsize;
-{
+ return TIME_OUT;
}
SIM_DESC
SIM_RC
sim_load(sd, prog, abfd, from_tty)
SIM_DESC sd;
- char *prog;
+ const char *prog;
bfd *abfd;
int from_tty;
{
const unsigned char *buf;
int length;
{
- return (sis_memory_write(mem, buf, length));
+ return sis_memory_write (mem, buf, length);
}
int
unsigned char *buf;
int length;
{
- return (sis_memory_read(mem, buf, length));
+ return sis_memory_read (mem, buf, length);
}
void
if (sis_gdb_break) flush_windows ();
}
-int
-sim_trace (sd)
- SIM_DESC sd;
-{
- /* FIXME: unfinished */
- sim_resume (sd, 0, 0);
- return 1;
-}
-
void
sim_do_command(sd, cmd)
SIM_DESC sd;
- char *cmd;
+ const char *cmd;
{
exec_cmd(&sregs, cmd);
}