diff options
Diffstat (limited to 'sim/common/sim-resume.c')
-rw-r--r-- | sim/common/sim-resume.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/sim/common/sim-resume.c b/sim/common/sim-resume.c deleted file mode 100644 index ebc9ce6..0000000 --- a/sim/common/sim-resume.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Generic simulator resume. - Copyright (C) 1997 Free Software Foundation, Inc. - Contributed by Cygnus Support. - -This file is part of GDB, the GNU debugger. - -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. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -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. */ - -#include <signal.h> - -#include "sim-main.h" -#include "sim-assert.h" - -/* Halt the simulator after just one instruction */ - -static void -has_stepped (SIM_DESC sd, - void *data) -{ - ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER); - sim_engine_halt (sd, NULL, NULL, NULL_CIA, sim_stopped, SIGTRAP); -} - - -/* Generic resume - assumes the existance of sim_engine_run */ - -void -sim_resume (SIM_DESC sd, - int step, - int siggnal) -{ - sim_engine *engine = STATE_ENGINE (sd); - jmp_buf buf; - int jmpval; - - ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER); - - /* we only want to be single stepping the simulator once */ - if (engine->stepper != NULL) - { - sim_events_deschedule (sd, engine->stepper); - engine->stepper = NULL; - } - if (step) - engine->stepper = sim_events_schedule (sd, 1, has_stepped, sd); - - /* run/resume the simulator */ - /* jmpval: 0 (initial use) start simulator - 1 halt simulator - 2 restart simulator - */ - - engine->jmpbuf = &buf; - jmpval = setjmp (buf); - if (jmpval == 0 || jmpval == 2) - { - int last_cpu_nr = sim_engine_last_cpu_nr (sd); - int next_cpu_nr = sim_engine_next_cpu_nr (sd); - int nr_cpus = MAX_NR_PROCESSORS; /* FIXME */ - sim_events_preprocess (sd, last_cpu_nr >= nr_cpus, next_cpu_nr >= nr_cpus); - if (next_cpu_nr >= nr_cpus) - next_cpu_nr = 0; - sim_engine_run (sd, next_cpu_nr, siggnal); - } - engine->jmpbuf = NULL; -} |