From: Nigel Stephens Date: Tue, 29 Nov 1994 15:29:52 GMT To: dj AT stealth DOT ctron DOT com (DJ Delorie) Cc: djgpp AT sun DOT soe DOT clarkson DOT edu, trav AT clark DOT edu Subject: Re: Interrupts References: <1005 DOT 199411291142 AT westminster DOT algor DOT co DOT uk> <9411291517 DOT AA28921 AT delorie> DJ Delorie (dj AT stealth DOT ctron DOT com ) writes: > > > One other problem is that you can't do anything in a real mode > > > callback (or interrupt) that might cause a mode switch. Basically, > > > you can do integer math and maybe call a function or two - it's pretty > > > limited. It may work sometimes, but it's not guaranteed. > > > > What happens if the real-mode callback/interrupt handler page faults? > > Unknown. In non-dpmi mode, go32 handles it correctly, excepting DOS > reentrancy issues. In DPMI mode, you're supposed to lock it. 1.12 > allows the locking call in all modes, but only honors it in DPMI mode, > and V2 honors it always. So does that mean that in non-dpmi mode the following might fail: 1) program page faults, and go32 calls DOS to read page; 2) while DOS is awaiting disk i/o, a real-mode interrupt occurs and invokes program's interrupt handler; 3) the interrupt handler page faults... Nigel _________________________________________________________________________ Nigel Stephens, Algorithmics Ltd, 3 Drayton Park, London, N5 1NU, England phone: +44 171 700 3301 fax: +44 171 700 3400 email: nigel AT algor DOT co DOT uk