Mail Archives: djgpp/1994/11/29/17:03:30
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
- Raw text -