www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/29/17:03:30

From: Nigel Stephens <nigel AT algor DOT co DOT uk>
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019