From 890388b50c1279119c630ffae5b5f10dc0c9f7eb Mon Sep 17 00:00:00 2001 From: "Evgeny Grechnikov (Diamond)" Date: Sat, 5 Apr 2008 11:15:03 +0000 Subject: [PATCH] * Reverted previous revision because it was my mistake * Fixed V86 IRQ handling broken in rev. 769 git-svn-id: svn://kolibrios.org@788 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/core/sys32.inc | 15 ++------------- kernel/trunk/core/v86.inc | 7 +------ 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/kernel/trunk/core/sys32.inc b/kernel/trunk/core/sys32.inc index a08292c704..41a3df6d41 100644 --- a/kernel/trunk/core/sys32.inc +++ b/kernel/trunk/core/sys32.inc @@ -53,7 +53,7 @@ iglobal dd except_16, e17,e18, except_19 times 12 dd unknown_interrupt - dd irq0, irq_serv.irq_1, p_irq2 + dd irq0, irq_serv.irq_1, irq_serv.irq_2 if USE_COM_IRQ dd irq_serv.irq_3, irq_serv.irq_4 else @@ -183,20 +183,12 @@ macro irqh [num] { forward p_irq#num : - save_ring3_context mov edi, num - jmp irq_c + jmp irqhandler } irqh 2,3,4,5,7,8,9,10,11 -irq_c: - mov ax, app_data - mov ds, ax - mov es, ax - call irqhandler - restore_ring3_context - iret p_irq6: save_ring3_context @@ -265,9 +257,6 @@ irqD: irqhandler: - cmp [v86_irqhooks+edi*8], 0 - jnz v86_irq2 - mov esi,edi ; 1 shl esi,6 ; 1 diff --git a/kernel/trunk/core/v86.inc b/kernel/trunk/core/v86.inc index f4b43b3a97..83141805ac 100644 --- a/kernel/trunk/core/v86.inc +++ b/kernel/trunk/core/v86.inc @@ -846,18 +846,13 @@ end if v86_irq: ; push irq/pushad/jmp v86_irq ; eax = irq - mov ebx, eax lea esi, [esp+18h] lea edi, [esi+4] mov ecx, 8 std rep movsd cld - mov edi, ebx - -v86_irq2: -; pushad/call v86_irq2 -; edi = irq + mov edi, eax pop eax mov esi, [v86_irqhooks+edi*8] ; get VM handle mov eax, [esi+V86_machine.pagedir]