static void cpu_set_irq(void *opaque, int irq, int level) { CPUState *env = opaque; if (level) { CPUIRQ_DPRINTF("Raise CPU IRQ %d\n", irq); env->pil_in |= 1 << irq; cpu_kick_irq(env); } else { CPUIRQ_DPRINTF("Lower CPU IRQ %d\n", irq); env->pil_in &= ~(1 << irq); cpu_check_irqs(env); } }
static void cpu_set_irq(void *opaque, int irq, int level) { SPARCCPU *cpu = opaque; CPUSPARCState *env = &cpu->env; if (level) { trace_sun4m_cpu_set_irq_raise(irq); env->pil_in |= 1 << irq; cpu_kick_irq(cpu); } else { trace_sun4m_cpu_set_irq_lower(irq); env->pil_in &= ~(1 << irq); cpu_check_irqs(env); } }
static void hstick_irq(void *opaque) { CPUSPARCState *env = opaque; CPUTimer* timer = env->hstick; if (timer->disabled) { CPUIRQ_DPRINTF("hstick_irq: softint disabled\n"); return; } else { CPUIRQ_DPRINTF("hstick: fire\n"); } env->softint |= SOFTINT_STIMER; cpu_kick_irq(env); }
static void stick_irq(void *opaque) { SPARCCPU *cpu = opaque; CPUSPARCState *env = &cpu->env; CPUTimer* timer = env->stick; if (timer->disabled) { CPUIRQ_DPRINTF("stick_irq: softint disabled\n"); return; } else { CPUIRQ_DPRINTF("stick: fire\n"); } env->softint |= SOFTINT_STIMER; cpu_kick_irq(cpu); }
static void hstick_irq(void *opaque) { SPARCCPU *cpu = opaque; CPUSPARCState *env = &cpu->env; CPUTimer *timer = env->hstick; if (timer->disabled) { trace_sparc64_cpu_hstick_irq_disabled(); return; } else { trace_sparc64_cpu_hstick_irq_fire(); } env->softint |= SOFTINT_STIMER; cpu_kick_irq(cpu); }