From owner-cvs-all Wed Apr 10 19:34: 0 2002 Delivered-To: cvs-all@freebsd.org Received: from 12-234-96-171.client.attbi.com (12-234-96-171.client.attbi.com [12.234.96.171]) by hub.freebsd.org (Postfix) with ESMTP id C698A37B405; Wed, 10 Apr 2002 19:33:53 -0700 (PDT) Received: by 12-234-96-171.client.attbi.com (Postfix, from userid 1000) id 758E9A08; Wed, 10 Apr 2002 19:32:44 -0700 (PDT) Date: Wed, 10 Apr 2002 19:32:44 -0700 From: Jonathan Mini To: Daniel O'Connor Cc: Andrzej Bialecki , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: Feature removal without replacement (was: cvs commit: src/sys/alpha/alpha machdep.c src/sys/conf NOTES) Message-ID: <20020410193244.B34704@stylus.haikugeek.com> Mail-Followup-To: Daniel O'Connor , Andrzej Bialecki , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG References: <4868.1018415500@critter.freebsd.dk> <3CB4A9CC.B5D46293@webgiro.com> <1018489755.20755.13.camel@chowder.gsoft.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <1018489755.20755.13.camel@chowder.gsoft.com.au>; from doconnor@gsoft.com.au on Thu, Apr 11, 2002 at 11:19:12AM +0930 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Daniel O'Connor [doconnor@gsoft.com.au] wrote : > > Is there a way to write code that uses this stuff without having to > reboot continuously? (I'm not talking vmware either) $ cvs -R co -P src/sys/boot/ficl $ cd src/sys/boot/ficl $ make testmain $ ./testmain > You can access the basic Forth engine from userland but it's difficult > to do any loader specific stuff since none of the words are defined > (last time I checked) Most of the functionality is there as is. The words missing in the testmain case are: #ifndef TESTMAIN #ifdef __i386__ dictAppendWord(dp, "outb", ficlOutb, FW_DEFAULT); dictAppendWord(dp, "inb", ficlInb, FW_DEFAULT); #endif dictAppendWord(dp, "setenv", ficlSetenv, FW_DEFAULT); dictAppendWord(dp, "setenv?", ficlSetenvq, FW_DEFAULT); dictAppendWord(dp, "getenv", ficlGetenv, FW_DEFAULT); dictAppendWord(dp, "unsetenv", ficlUnsetenv, FW_DEFAULT); dictAppendWord(dp, "copyin", ficlCopyin, FW_DEFAULT); dictAppendWord(dp, "copyout", ficlCopyout, FW_DEFAULT); dictAppendWord(dp, "findfile", ficlFindfile, FW_DEFAULT); #ifdef HAVE_PNP dictAppendWord(dp, "pnpdevices",ficlPnpdevices, FW_DEFAULT); dictAppendWord(dp, "pnphandlers",ficlPnphandlers, FW_DEFAULT); #endif dictAppendWord(dp, "ccall", ficlCcall, FW_DEFAULT); #endif These need to be implemented with appropriate stubs in the userland version. I am working on some patches to make the testmain stuff a more like the loader (i.e. have a similar file tree and stuff). I'd like to set it up so that you can run an emulated environment close enough to the loader's that the boot scripts we have now will still function (e.g. simulate loading a kernel, simulate booting, etc). I'm doing this so that its much easier to develop and debug complex loader scripts. This was mainly for my sanity for doing the "userconfig.4th" stuff. However, I am not too excited about the prospect of doing "complex loader scripts" -- forth is not my cup of tea. If someone else would like to do the "userconfig.4th" stuff, please do. =) -- Jonathan Mini mini@haikugeek.com desolation... despair... plastic forks... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message