winedos interrupts getting lost.
markus.amsler at oribi.org
Mon Oct 20 02:44:05 CDT 2008
Peter Dons Tychsen wrote:
> It starting with me trying to figure out why i was loosing keyboard
> events in winedos.
> 1) I then traced the keyboard events to a call to signal(SIGUSR2) in
> function DOSVM_QueueEvent().
> 2) The signal() triggers code in ntdll, which generates an exception
> EXCEPTION_VM86_STI for the current vm86 context.
> 3) The exception is supposed to trigger exception_handler(), which will
> then handle the keyboard event, by kicking the event queue.
> This never happens however, as the mechanism stops working very quickly.
> I found out the code gets to raise_vm86_sti_exception in ntdll, and then
> stops. ntdll_get_thread_data()->vm86_ptr is NULL, so the STI exception
> is never signaled.
> Does anyone know more about the exception subsystem, and what could be
> causing this kind of strange behavior?
> I can mention that the system can generate EXCEPTION_VM86_INTx
> exceptions successfully, but fails to execute the EXCEPTION_VM86_STI.
One issue with dos input is (was?), that since 2.6 linux kernel we
should signal the thread not the process. Have a look at . That patch
once fixed all my dos input issues, although I haven't looked at this
stuff for quite some time.
I'm not sure you have the same problem, just a possible hint.
More information about the wine-devel