Revision cf6d64bf hw/pc.c
b/hw/pc.c | ||
---|---|---|
145 | 145 |
{ |
146 | 146 |
int intno; |
147 | 147 |
|
148 |
intno = apic_get_interrupt(env); |
|
148 |
intno = apic_get_interrupt(env->apic_state);
|
|
149 | 149 |
if (intno >= 0) { |
150 | 150 |
/* set irq request if a PIC irq is still pending */ |
151 | 151 |
/* XXX: improve that */ |
... | ... | |
153 | 153 |
return intno; |
154 | 154 |
} |
155 | 155 |
/* read the irq from the PIC */ |
156 |
if (!apic_accept_pic_intr(env))
|
|
156 |
if (!apic_accept_pic_intr(env->apic_state)) {
|
|
157 | 157 |
return -1; |
158 |
} |
|
158 | 159 |
|
159 | 160 |
intno = pic_read_irq(isa_pic); |
160 | 161 |
return intno; |
... | ... | |
167 | 168 |
DPRINTF("pic_irqs: %s irq %d\n", level? "raise" : "lower", irq); |
168 | 169 |
if (env->apic_state) { |
169 | 170 |
while (env) { |
170 |
if (apic_accept_pic_intr(env)) |
|
171 |
apic_deliver_pic_intr(env, level); |
|
171 |
if (apic_accept_pic_intr(env->apic_state)) { |
|
172 |
apic_deliver_pic_intr(env->apic_state, level); |
|
173 |
} |
|
172 | 174 |
env = env->next_cpu; |
173 | 175 |
} |
174 | 176 |
} else { |
Also available in: Unified diff