Date: Tue, 28 Mar 2000 12:49:56 -0500 Message-Id: <200003281749.MAA18324@envy.delorie.com> From: DJ Delorie 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 Precedence: bulk > 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.