Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Apr 2002 19:32:44 -0700
From:      Jonathan Mini <mini@haikugeek.com>
To:        Daniel O'Connor <doconnor@gsoft.com.au>
Cc:        Andrzej Bialecki <abial@webgiro.com>, 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>
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 %2B0930
References:  <4868.1018415500@critter.freebsd.dk> <3CB4A9CC.B5D46293@webgiro.com> <1018489755.20755.13.camel@chowder.gsoft.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
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

<baka^ni> desolation... despair... plastic forks...


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020410193244.B34704>