How do interrupts in wine work?

Nog nog at sdf.lonestar.org
Sat Feb 16 10:17:02 CST 2002


Ove Kaaven wrote:

>On Sat, 16 Feb 2002, Nog wrote:
>
[SNIP]

>>And if so then why does it assume that the insterrupt it is emulating
>>is not builtin?
>>
>
>The table of 16-bit interrupt entry points is initialized from wprocs.dll
>(dlls/kernel/wprocs.spec), so it doesn't need to assume anything.
>
This was my point.  When emulating these interrupts it pushes the values 
of Eflags, Cs and Eip onto the stack but none of the interrupt handlers 
call the iret instruction or pop anything off the stack.  What have I 
missed?

>
>>What all of this probable garbage came from is: What will it take to 
>>emulate int xx from 32-bit code?
>>
>
>A sane mechanism to handle those interrupt vectors, probably.
>
I assume that the Would this be somthing like the code in 
msdos/interrupts.c?  But then why do we need to have 2 tables for 
interrupts (one in msdos/interrupts.c, the other in 
dlls/winedos/dosvm.c)?  The only explanation I can come up with is that 
mabe, just mabe, the interrupts in wproc.spec get called from 16-bit 
windows.

Back to implementing int xx from 32-bit code, are all of the interrupts 
availible in real mode availible in protected mode?

nog.






More information about the wine-devel mailing list