From owner-freebsd-hackers Sat Nov 8 02:38:31 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id CAA29543 for hackers-outgoing; Sat, 8 Nov 1997 02:38:31 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from d198-232.uoregon.edu (d198-232.uoregon.edu [128.223.198.232]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id CAA29538 for ; Sat, 8 Nov 1997 02:38:29 -0800 (PST) (envelope-from mini@d198-232.uoregon.edu) Received: (from mini@localhost) by d198-232.uoregon.edu (8.8.5/8.8.5) id CAA21024; Sat, 8 Nov 1997 02:38:10 -0800 (PST) Message-ID: <19971108023810.31291@micron.mini.net> Date: Sat, 8 Nov 1997 02:38:10 -0800 From: Jonathan Mini To: Mike Smith Cc: hackers@FreeBSD.ORG Subject: Re: x86 gods; advice? Suggestions? References: <19971108021451.30385@micron.mini.net> <199711081022.UAA00794@word.smith.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.85e In-Reply-To: <199711081022.UAA00794@word.smith.net.au>; from Mike Smith on Sat, Nov 08, 1997 at 08:52:11PM +1030 X-files: The Truth is Out There Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Mike Smith stands accused of saying: > > > > I need : > > > > pmode : > > (setup) -> > > vm86 > > (perform subserviant task) > > <- (fault) > > (run run run) > > Try: > pmode : (setup) (invoke init function)-> > vm86 > (run run run inside init function) > (fault) -> > pmode (return to main program) > (run run run) > (invoke function) -> > (run run run) > (fault) -> > pmode (return to main program) > (run run run) > > If you look at (invoke function) and expand it to (fiddle vm86 register > set, return), then you see that all you are worrying about is semantic. > The (return to main program) may have to be a little ugly, as in it may > want to take the address of a function as an argument, ie. your entire > application runs inside the vm86 fault handler, but all that would be > invisible presuming that that the alternate signal stack was large > enough. I was hoping to avoid that solution. This is an implementation for a library. It all falls down to one this : the vm86 arena has to be in the 0-1M memory range. If I'm implementing a library for this, I can't really do that. Hence I have to create a new context that I can destroy in order to set up the vm86 arena. -- Jonathan Mini Ingenious Productions Software Development P.O. Box 5693, Eugene, Or. 97405 "A child of five could understand this! Quick -- Fetch me a child of five."