Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev HEAD → Rev 2218

/trunk/kernel/arch/ppc32/src/interrupt.c
60,6 → 60,7
int inum;
while ((inum = pic_get_pending()) != -1) {
bool ack = false;
irq_t *irq = irq_dispatch_and_lock(inum);
if (irq) {
/*
68,17 → 69,11
if (irq->preack) {
/* Acknowledge the interrupt before processing */
if (irq->cir)
irq->cir(irq->cir_arg, irq->inr);
pic_ack_interrupt(inum);
ack = true;
}
irq->handler(irq);
if (!irq->preack) {
if (irq->cir)
irq->cir(irq->cir_arg, irq->inr);
}
irq->handler(irq, irq->arg);
spinlock_unlock(&irq->lock);
} else {
/*
85,9 → 80,12
* Spurious interrupt.
*/
#ifdef CONFIG_DEBUG
printf("cpu%u: spurious interrupt (inum=%d)\n", CPU->id, inum);
printf("cpu%d: spurious interrupt (inum=%d)\n", CPU->id, inum);
#endif
}
if (!ack)
pic_ack_interrupt(inum);
}
}
 
94,8 → 92,8
 
static void exception_decrementer(int n, istate_t *istate)
{
clock();
start_decrementer();
clock();
}