aboutsummaryrefslogtreecommitdiff
path: root/target/hppa/cpu.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2017-12-28 17:36:45 -0800
committerRichard Henderson <richard.henderson@linaro.org>2018-01-30 10:22:26 -0800
commit4f5f254808e1e317b407275724df7794a270c5c1 (patch)
tree94c42a5cfc575a8fd47d45e07447f9600d7c3c0b /target/hppa/cpu.c
parent650cdb2a2e4936fb66c13793278f4bacf0e5a6f7 (diff)
downloadqemu-4f5f254808e1e317b407275724df7794a270c5c1.zip
qemu-4f5f254808e1e317b407275724df7794a270c5c1.tar.gz
qemu-4f5f254808e1e317b407275724df7794a270c5c1.tar.bz2
target/hppa: Implement external interrupts
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa/cpu.c')
-rw-r--r--target/hppa/cpu.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 2970afd..888a48f 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -57,6 +57,11 @@ static void hppa_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb)
cpu->env.psw_n = (tb->flags & PSW_N) != 0;
}
+static bool hppa_cpu_has_work(CPUState *cs)
+{
+ return cs->interrupt_request & CPU_INTERRUPT_HARD;
+}
+
static void hppa_cpu_disas_set_info(CPUState *cs, disassemble_info *info)
{
info->mach = bfd_mach_hppa20;
@@ -159,6 +164,7 @@ static void hppa_cpu_class_init(ObjectClass *oc, void *data)
dc->realize = hppa_cpu_realizefn;
cc->class_by_name = hppa_cpu_class_by_name;
+ cc->has_work = hppa_cpu_has_work;
cc->do_interrupt = hppa_cpu_do_interrupt;
cc->cpu_exec_interrupt = hppa_cpu_exec_interrupt;
cc->dump_state = hppa_cpu_dump_state;