X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcris%2Fsim-main.h;h=980f69c78520e37285af4c92a6dffae51a14c6da;hb=31e6ad7d640283af4c4f6b01fef9e6a4a17f1535;hp=b35b927278ef4e9af65dd11ee4ba53f4affab672;hpb=ed1f044ac6423184b2e2b8f805ddc4f76ea1256c;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h index b35b927278..980f69c785 100644 --- a/sim/cris/sim-main.h +++ b/sim/cris/sim-main.h @@ -1,12 +1,12 @@ /* Main header for the CRIS simulator, based on the m32r header. - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004-2013 Free Software Foundation, Inc. Contributed by Axis Communications. This file is part of the GNU simulators. 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 of the License, or +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, @@ -14,9 +14,8 @@ 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. */ +You should have received a copy of the GNU General Public License +along with this program. If not, see . */ /* All FIXME:s present in m32r apply here too; I just refuse to blindly carry them over, as I don't know if they're really things that need @@ -117,6 +116,10 @@ struct cris_thread_info { char sigsuspended; }; +typedef int (*cris_interrupt_delivery_fn) (SIM_CPU *, + enum cris_interrupt_type, + unsigned int); + struct _sim_cpu { /* sim/common cpu base. */ sim_cpu_base base; @@ -132,6 +135,11 @@ struct _sim_cpu { CRIS_MISC_PROFILE cris_prev_misc_profile; #define CPU_CRIS_PREV_MISC_PROFILE(cpu) (& (cpu)->cris_prev_misc_profile) +#if WITH_HW + cris_interrupt_delivery_fn deliver_interrupt; +#define CPU_CRIS_DELIVER_INTERRUPT(cpu) (cpu->deliver_interrupt) +#endif + /* Simulator environment data. */ USI endmem; USI endbrk; @@ -183,6 +191,9 @@ struct _sim_cpu { void* (*make_thread_cpu_data) (SIM_CPU *, void *); size_t thread_cpu_data_size; + /* The register differs, so we dispatch to a CPU-specific function. */ + void (*set_target_thread_data) (SIM_CPU *, USI); + /* CPU-model specific parts go here. Note that in files that don't need to access these pieces WANT_CPU_FOO won't be defined and thus these parts won't appear. This is ok in the