Subversion Repositories HelenOS

Rev

Rev 3022 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3022 Rev 4055
Line 71... Line 71...
71
                /* Acknowledge the interrupt before processing */
71
                /* Acknowledge the interrupt before processing */
72
                pic_ack_interrupt(inum);
72
                pic_ack_interrupt(inum);
73
                ack = true;
73
                ack = true;
74
            }
74
            }
75
           
75
           
76
            irq->handler(irq, irq->arg);
76
            irq->handler(irq);
77
            spinlock_unlock(&irq->lock);
77
            spinlock_unlock(&irq->lock);
78
        } else {
78
        } else {
79
            /*
79
            /*
80
             * Spurious interrupt.
80
             * Spurious interrupt.
81
             */
81
             */
82
#ifdef CONFIG_DEBUG
82
#ifdef CONFIG_DEBUG
83
            printf("cpu%d: spurious interrupt (inum=%d)\n", CPU->id, inum);
83
            printf("cpu%u: spurious interrupt (inum=%d)\n", CPU->id, inum);
84
#endif
84
#endif
85
        }
85
        }
86
       
86
       
87
        if (!ack)
87
        if (!ack)
88
            pic_ack_interrupt(inum);
88
            pic_ack_interrupt(inum);
Line 90... Line 90...
90
}
90
}
91
 
91
 
92
 
92
 
93
static void exception_decrementer(int n, istate_t *istate)
93
static void exception_decrementer(int n, istate_t *istate)
94
{
94
{
95
    clock();
-
 
96
    start_decrementer();
95
    start_decrementer();
-
 
96
    clock();
97
}
97
}
98
 
98
 
99
 
99
 
100
/* Initialize basic tables for exception dispatching */
100
/* Initialize basic tables for exception dispatching */
101
void interrupt_init(void)
101
void interrupt_init(void)