From cb3fb38e91caacfcb0f86e8c587ed74ffa34fe8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Fri, 18 Jan 2013 14:20:52 +0100 Subject: [PATCH] target-m68k: Pass M68kCPU to m68k_set_irq_level() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplifies use of cpu_reset_interrupt() et al. Signed-off-by: Andreas Färber --- hw/mcf5206.c | 2 +- hw/mcf_intc.c | 2 +- target-m68k/cpu.h | 2 +- target-m68k/helper.c | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/mcf5206.c b/hw/mcf5206.c index 9bb393e3d4..ea2db2325a 100644 --- a/hw/mcf5206.c +++ b/hw/mcf5206.c @@ -226,7 +226,7 @@ static void m5206_mbar_update(m5206_mbar_state *s) level = 0; vector = 0; } - m68k_set_irq_level(&s->cpu->env, level, vector); + m68k_set_irq_level(s->cpu, level, vector); } static void m5206_mbar_set_irq(void *opaque, int irq, int level) diff --git a/hw/mcf_intc.c b/hw/mcf_intc.c index 450f622e9d..b213656300 100644 --- a/hw/mcf_intc.c +++ b/hw/mcf_intc.c @@ -40,7 +40,7 @@ static void mcf_intc_update(mcf_intc_state *s) } } s->active_vector = ((best == 64) ? 24 : (best + 64)); - m68k_set_irq_level(&s->cpu->env, best_level, s->active_vector); + m68k_set_irq_level(s->cpu, best_level, s->active_vector); } static uint64_t mcf_intc_read(void *opaque, hwaddr addr, diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h index ed9be802d4..2672eae7c8 100644 --- a/target-m68k/cpu.h +++ b/target-m68k/cpu.h @@ -169,7 +169,7 @@ enum { #define MACSR_V 0x002 #define MACSR_EV 0x001 -void m68k_set_irq_level(CPUM68KState *env, int level, uint8_t vector); +void m68k_set_irq_level(M68kCPU *cpu, int level, uint8_t vector); void m68k_set_macsr(CPUM68KState *env, uint32_t val); void m68k_switch_sp(CPUM68KState *env); diff --git a/target-m68k/helper.c b/target-m68k/helper.c index 7d3fd944be..1bae3ab326 100644 --- a/target-m68k/helper.c +++ b/target-m68k/helper.c @@ -310,8 +310,10 @@ int cpu_m68k_handle_mmu_fault (CPUM68KState *env, target_ulong address, int rw, be handled by the interrupt controller. Real hardware only requests the vector when the interrupt is acknowledged by the CPU. For simplicitly we calculate it when the interrupt is signalled. */ -void m68k_set_irq_level(CPUM68KState *env, int level, uint8_t vector) +void m68k_set_irq_level(M68kCPU *cpu, int level, uint8_t vector) { + CPUM68KState *env = &cpu->env; + env->pending_level = level; env->pending_vector = vector; if (level)