[PATCH] krnl386.exe16: Check for pending DPMI events in call16_handler().
Alexandre Julliard
julliard at winehq.org
Mon Dec 4 09:46:45 CST 2017
Zebediah Figura <z.figura12 at gmail.com> writes:
> On 12/04/2017 05:44 AM, Alexandre Julliard wrote:
>> Zebediah Figura <z.figura12 at gmail.com> writes:
>>
>>> - /* Check for pending events. */
>>> -
>>> - output( "\t.byte 0x64\n\ttestl $0xffffffff,(%d)\n", VM86_PENDING_OFFSET );
>>> - output( "\tje %s\n", asm_name("DPMI_PendingEventCheck_Cleanup") );
>>> - output( "\t.byte 0x64\n\ttestl $0xffffffff,(%d)\n", DPMI_VIF_OFFSET );
>>> - output( "\tje %s\n", asm_name("DPMI_PendingEventCheck_Cleanup") );
>>
>> This doesn't seem right. Are you sure it's safe to remove these checks?
>>
>
> As far as I can tell, those flags shouldn't be modified from 32-bit
> code. But I could be wrong.
>
> Do you know of a program that relies on pending interrupts?
I'm not sure how 32-bit code is relevant, this is used by DOS apps that
use DPMI and handle hardware events. Since we add an event check when
handling a VM86_STI exception, it wouldn't surprise me if removing the
checks above caused an infinite loop.
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list