How is Win/Dos syscalls implemented in Wine?
bon at elektron.ikp.physik.tu-darmstadt.de
Sat Oct 26 10:37:28 CDT 2002
>>>>> "Ove" == Ove Kaaven <ovehk at ping.uio.no> writes:
Ove> 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.
Ove> That's not the way it works. Interrupt goes to OS core (global IDT
Ove> table actually), is rejected (privilege level check fails), SIGSEGV
Ove> is raised, Wine detects SIGSEGV and its cause, Wine handles
Ove> interrupt. You can't change the order in which this happens from
Ove> user-space. Only a kernel module can replace IDT entries (and if
Ove> you did, replacing the 0x80 entry would kill *all* running Linux
Ove> apps, since the IDT is global).
What happens on a win/win32 system when a program has lets say a sequence
like "set up values for thread abort for linux, call int80()" in its
Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
More information about the wine-devel