How is Win/Dos syscalls implemented in Wine?
ovehk at ping.uio.no
Sat Oct 26 09:48:02 CDT 2002
On Sat, 26 Oct 2002, Sylvain Petreolle wrote:
> Why couldnt we implement a int 0x80 that would do nothing/call SIGSEGV
> handler ? We did it for all other ints we have implemented.
That's not the way it works. Interrupt goes to OS core (global IDT table
actually), is rejected (privilege level check fails), SIGSEGV is raised,
Wine detects SIGSEGV and its cause, Wine handles interrupt. You can't
change the order in which this happens from user-space. Only a kernel
module can replace IDT entries (and if you did, replacing the 0x80 entry
would kill *all* running Linux apps, since the IDT is global).
More information about the wine-devel