www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/03/28/19:33:41

Date: Tue, 28 Mar 2000 12:49:56 -0500
Message-Id: <200003281749.MAA18324@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
To: djgpp AT delorie DOT com
In-reply-to: <38E0B41D.4046948D@corel.com> (message from Jonathan Meunier on
Tue, 28 Mar 2000 08:31:09 -0500)
Subject: Re: Interrupt wrapper (was Re: keyboard interrupt)
References: <8bod7h$rj1$1 AT gxsn DOT com> <38DFBF98 DOT 8BEB44EB AT corel DOT com> <38DFE9E5 DOT 37B0F318 AT mtu-net DOT ru> <38E0B41D DOT 4046948D AT corel DOT com>
Reply-To: djgpp AT delorie DOT com
Errors-To: dj-admin AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> What is ___djgpp_ds_alias? is it just some sort of pointer to the
> data segment?

It is just another selector for the data segment, except that we don't
invalidate it during exception processing.  There are a few key times
during the handling of an exception when you need to be able to access
the data segment without letting the application access it, so we have
two selectors available - the regular %DS for the application, and an
alias that the exception processor uses.

> But what exactly is a wrapper; why do we need one?

Because the call/ret rules for regular C functions differ from an
interrupt handler.  The wrapper takes care of that.

- Raw text -


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