fix V86 IRQ redirecting when task switch is needed, it never worked before

git-svn-id: svn://kolibrios.org@3696 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
CleverMouse 2013-06-24 07:49:56 +00:00
parent bd89ff2844
commit c8f93d8d8f

View File

@ -896,6 +896,7 @@ v86_irq2:
iretd iretd
.found: .found:
mov cr3, eax mov cr3, eax
mov esi, [ebx+APPDATA.saved_esp0]
sub word [esi-sizeof.v86_regs+v86_regs.esp], 6 sub word [esi-sizeof.v86_regs+v86_regs.esp], 6
mov ecx, [esi-sizeof.v86_regs+v86_regs.eip] mov ecx, [esi-sizeof.v86_regs+v86_regs.eip]
mov word [edx], cx mov word [edx], cx
@ -916,7 +917,7 @@ v86_irq2:
call update_counters call update_counters
lea edi, [ebx + 0x100000000 - SLOT_BASE] lea edi, [ebx + 0x100000000 - SLOT_BASE]
shr edi, 3 shr edi, 3
add edi, TASK_DATA add edi, CURRENT_TASK
call find_next_task.found call find_next_task.found
call do_change_task call do_change_task
popad popad