Author: ion
Date: Wed Aug 23 10:42:25 2006
New Revision: 23664
URL:
http://svn.reactos.org/svn/reactos?rev=23664&view=rev
Log:
- Fix some IDR->IRR bugs.
- Enable 2ndEntry for HalpEndSoftwareInterrupt (pending interrupt inside an interrupt).
Modified:
trunk/reactos/hal/halx86/generic/irq.S
Modified: trunk/reactos/hal/halx86/generic/irq.S
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/irq.S?r…
==============================================================================
--- trunk/reactos/hal/halx86/generic/irq.S (original)
+++ trunk/reactos/hal/halx86/generic/irq.S Wed Aug 23 10:42:25 2006
@@ -387,18 +387,16 @@
/* Set IRQL and check if there are pending software interrupts */
mov [fs:KPCR_IRQL], cl
-#if 0
mov eax, [fs:KPCR_IRR]
mov al, _SoftIntByteTable[eax]
cmp al, cl
- ja DoCall
-#endif
+ //ja DoCall
ret 8
DoCall:
/* There are pending softwate interrupts, call their handlers */
- add esp, 8
+ add esp, 12
jmp SoftIntHandlerTable2[eax*4]
.endfunc
@@ -627,12 +625,10 @@
SoftwareInt:
/* Check if there are pending software interrupts */
mov [fs:KPCR_IRQL], cl
-#if 0
- mov eax, [fs:KPCR_IDR]
+ mov eax, [fs:KPCR_IRR]
mov al, _SoftIntByteTable[eax]
cmp al, cl
ja DoCall2
-#endif
ret 4
DoCall2: