X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Firq.c;h=586768eaa2de34b0a0fe6b327b1b0d45879bb43e;hb=abecaa9215f064b5b5631852fd809b63f1379c93;hp=848e7e9dba4ca8d6a701ca191df82573b631ff0c;hpb=8bc40333b1401d7616b225945fee53d972c2f418;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/irq.c b/Kernel/arch/x86/irq.c index 848e7e9d..586768ea 100644 --- a/Kernel/arch/x86/irq.c +++ b/Kernel/arch/x86/irq.c @@ -8,7 +8,7 @@ #define MAX_CALLBACKS_PER_IRQ 4 // === TYPES === -typedef void (*tIRQ_Callback)(void); +typedef void (*tIRQ_Callback)(int); // === GLOBALS === tIRQ_Callback gIRQ_Handlers[16][MAX_CALLBACKS_PER_IRQ]; @@ -30,18 +30,18 @@ void IRQ_Handler(tRegs *Regs) { //Log(" IRQ_Handler: Call %p", gIRQ_Handlers[Regs->int_num][i]); if( gIRQ_Handlers[Regs->int_num][i] ) - gIRQ_Handlers[Regs->int_num][i](); + gIRQ_Handlers[Regs->int_num][i](Regs->int_num); } - outb(0x20, 0x20); // ACK IRQ if(Regs->int_num >= 8) outb(0xA0, 0x20); // ACK IRQ (Secondary PIC) + outb(0x20, 0x20); // ACK IRQ } /** - * \fn int IRQ_AddHandler( int Num, void (*Callback)(void) ) + * \fn int IRQ_AddHandler( int Num, void (*Callback)(int) ) */ -int IRQ_AddHandler( int Num, void (*Callback)(void) ) +int IRQ_AddHandler( int Num, void (*Callback)(int) ) { int i; for( i = 0; i < MAX_CALLBACKS_PER_IRQ; i++ )