X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Firq.c;h=381b157988c4d579b8b76634e22cf1fbd89a1f8b;hb=9d85201216cb35e1b1e051b1d7cdc38eaa5befa4;hp=7ff1fe94e95dfb91dff4049eea94ff64c75050e4;hpb=4ab9a574c9301d9590c91209f62c348e1d8c8883;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/irq.c b/Kernel/arch/x86/irq.c index 7ff1fe94..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");