Module: wine Branch: master Commit: e2a366ce338d5b6b0f3c8962d70134f8d4e87f3b URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2a366ce338d5b6b0f3c8962d7...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 20 12:18:19 2007 +0100
kernel32: Forward interrupts in 32-bit code to winedos too.
---
dlls/kernel32/instr.c | 1 - dlls/winedos/interrupts.c | 4 ++++ 2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/dlls/kernel32/instr.c b/dlls/kernel32/instr.c index f9b99c8..97a1d14 100644 --- a/dlls/kernel32/instr.c +++ b/dlls/kernel32/instr.c @@ -769,7 +769,6 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT86 *context ) break; /* Unable to emulate it */
case 0xcd: /* int <XX> */ - if (wine_ldt_is_system(context->SegCs)) break; /* don't emulate it in 32-bit code */ if (!winedos.EmulateInterruptPM) load_winedos(); if (winedos.EmulateInterruptPM) { diff --git a/dlls/winedos/interrupts.c b/dlls/winedos/interrupts.c index 37d7a4b..b482ab0 100644 --- a/dlls/winedos/interrupts.c +++ b/dlls/winedos/interrupts.c @@ -324,6 +324,10 @@ void WINAPI DOSVM_EmulateInterruptPM( CONTEXT86 *context, BYTE intnum ) DOSVM_IntProcRelay, DOSVM_GetBuiltinHandler(intnum) ); } + else if (wine_ldt_is_system(context->SegCs)) + { + DOSVM_CallBuiltinHandler( context, intnum ); + } else { DOSVM_HardwareInterruptPM( context, intnum );