Changeset f5e39a32 in mainline for kernel/arch/ppc32/src/interrupt.c


Ignore:
Timestamp:
2006-10-17T15:19:16Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
79f30e4f
Parents:
58a6d997
Message:

ppc32: update for new IRQ subsystem (there is still a bug left)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/src/interrupt.c

    r58a6d997 rf5e39a32  
    3333 */
    3434
     35#include <ddi/irq.h>
    3536#include <interrupt.h>
    3637#include <arch/interrupt.h>
     
    4142#include <arch/drivers/pic.h>
    4243#include <arch/mm/tlb.h>
     44#include <print.h>
    4345
    4446
     
    5759{
    5860        int inum;
    59 
     61       
    6062        while ((inum = pic_get_pending()) != -1) {
    61                 exc_dispatch(inum + INT_OFFSET, istate);
     63                irq_t *irq = irq_dispatch_and_lock(inum);
     64                if (irq) {
     65                        /*
     66                         * The IRQ handler was found.
     67                         */
     68                        irq->handler(irq, irq->arg);
     69                        spinlock_unlock(&irq->lock);
     70                } else {
     71                        /*
     72                         * Spurious interrupt.
     73                         */
     74#ifdef CONFIG_DEBUG
     75                        printf("cpu%d: spurious interrupt (inum=%d)\n", CPU->id, inum);
     76#endif
     77                }
    6278                pic_ack_interrupt(inum);
    6379        }
Note: See TracChangeset for help on using the changeset viewer.