How is Win/Dos syscalls implemented in Wine?

Uwe Bonnes 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
startup code?

Bye
-- 
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 mailing list