X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Firq.c;h=381b157988c4d579b8b76634e22cf1fbd89a1f8b;hb=37de13c0c8c88fa6edba679c20becec15547533e;hp=9e0647f25145bf748894d49c6ce8a651f0dc17b7;hpb=b3fa9a08edcbc459bd8e9df73186e292470ebfc3;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/irq.c b/Kernel/arch/x86/irq.c index 9e0647f2..381b1579 100644 --- a/Kernel/arch/x86/irq.c +++ b/Kernel/arch/x86/irq.c @@ -6,10 +6,14 @@ // === CONSTANTS === #define MAX_CALLBACKS_PER_IRQ 4 +#define TRACE_IRQS 0 // === TYPES === typedef void (*tIRQ_Callback)(int); +// === PROTOTYPES === +void IRQ_Handler(tRegs *Regs); + // === GLOBALS === tIRQ_Callback gIRQ_Handlers[16][MAX_CALLBACKS_PER_IRQ]; @@ -28,9 +32,13 @@ void IRQ_Handler(tRegs *Regs) for( i = 0; i < MAX_CALLBACKS_PER_IRQ; i++ ) { - //Log(" IRQ_Handler: Call %p", gIRQ_Handlers[Regs->int_num][i]); - if( gIRQ_Handlers[Regs->int_num][i] ) + if( gIRQ_Handlers[Regs->int_num][i] ) { gIRQ_Handlers[Regs->int_num][i](Regs->int_num); + #if TRACE_IRQS + if( Regs->int_num != 8 ) + Log("IRQ %i: Call %p", Regs->int_num, gIRQ_Handlers[Regs->int_num][i]); + #endif + } } //Log(" IRQ_Handler: Resetting"); @@ -49,12 +57,12 @@ int IRQ_AddHandler( int Num, void (*Callback)(int) ) for( i = 0; i < MAX_CALLBACKS_PER_IRQ; i++ ) { if( gIRQ_Handlers[Num][i] == NULL ) { - Log("IRQ_AddHandler: Added IRQ%i Cb#%i %p", Num, i, Callback); + Log_Log("IRQ", "Added IRQ%i Cb#%i %p", Num, i, Callback); gIRQ_Handlers[Num][i] = Callback; return 1; } } - Warning("IRQ_AddHandler - No free callbacks on IRQ%i", Num); + Log_Warning("IRQ", "No free callbacks on IRQ%i", Num); return 0; }