git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleaned up some more debug
[tpg/acess2.git]
/
Kernel
/
arch
/
x86
/
irq.c
diff --git
a/Kernel/arch/x86/irq.c
b/Kernel/arch/x86/irq.c
index
848e7e9
..
7e56597
100644
(file)
--- a/
Kernel/arch/x86/irq.c
+++ b/
Kernel/arch/x86/irq.c
@@
-8,7
+8,7
@@
#define MAX_CALLBACKS_PER_IRQ 4
// === TYPES ===
#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];
// === GLOBALS ===
tIRQ_Callback gIRQ_Handlers[16][MAX_CALLBACKS_PER_IRQ];
@@
-30,18
+30,20
@@
void IRQ_Handler(tRegs *Regs)
{
//Log(" IRQ_Handler: Call %p", gIRQ_Handlers[Regs->int_num][i]);
if( gIRQ_Handlers[Regs->int_num][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]();
+ gIRQ_Handlers[Regs->int_num][i](
Regs->int_num
);
}
}
- outb(0x20, 0x20); // ACK IRQ
+ //Log(" IRQ_Handler: Resetting");
if(Regs->int_num >= 8)
outb(0xA0, 0x20); // ACK IRQ (Secondary PIC)
if(Regs->int_num >= 8)
outb(0xA0, 0x20); // ACK IRQ (Secondary PIC)
+ outb(0x20, 0x20); // ACK IRQ
+ //Log("IRQ_Handler: RETURN");
}
/**
}
/**
- * \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++ )
{
int i;
for( i = 0; i < MAX_CALLBACKS_PER_IRQ; i++ )
UCC
git Repository :: git.ucc.asn.au