Working on UDP, removed debug from some code, fixed ARP setting hwtype to 0x100 ...
[tpg/acess2.git] / Kernel / arch / x86 / irq.c
index 586768e..9e0647f 100644 (file)
@@ -2,7 +2,7 @@
  * AcessOS Microkernel Version
  * irq.c
  */
-#include <common.h>
+#include <acess.h>
 
 // === CONSTANTS ===
 #define        MAX_CALLBACKS_PER_IRQ   4
@@ -21,21 +21,23 @@ tIRQ_Callback       gIRQ_Handlers[16][MAX_CALLBACKS_PER_IRQ];
 void IRQ_Handler(tRegs *Regs)
 {
         int    i;
-       
+
        Regs->int_num -= 0xF0;  // Adjust
-       
+
        //Log("IRQ_Handler: (Regs={int_num:%i})", Regs->int_num);
-       
+
        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] )
                        gIRQ_Handlers[Regs->int_num][i](Regs->int_num);
        }
-       
+
+       //Log(" IRQ_Handler: Resetting");
        if(Regs->int_num >= 8)
                outb(0xA0, 0x20);       // ACK IRQ (Secondary PIC)
        outb(0x20, 0x20);       // ACK IRQ
+       //Log("IRQ_Handler: RETURN");
 }
 
 /**
@@ -47,10 +49,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);
                        gIRQ_Handlers[Num][i] = Callback;
                        return 1;
                }
        }
-       
+
+       Warning("IRQ_AddHandler - No free callbacks on IRQ%i", Num);
        return 0;
 }

UCC git Repository :: git.ucc.asn.au