Date: Tue, 29 Apr 1997 19:14:05 +0930 (CST) From: Michael Smith <msmith@atrad.adelaide.edu.au> To: bde@zeta.org.au (Bruce Evans) Cc: config@freebsd.org, msmith@atrad.adelaide.edu.au Subject: Re: Startup userconfig parsing Message-ID: <199704290944.TAA21477@genesis.atrad.adelaide.edu.au> In-Reply-To: <199704290927.TAA29118@godzilla.zeta.org.au> from Bruce Evans at "Apr 29, 97 07:27:57 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans stands accused of saying:
> >Put all our stuff in /boot on the boot filesystem. If /boot/kernel.rc
> >exists, it's loaded unconditionally. If /boot/kernel.rc.<kernelname>
>
> It shouldn't be in a subdirectory. Putting it in the root directory
> allows simpler file systems and simpler fs support in the boot loader.
Is the bootloader currently stressed by the current filesystem? I
specifically asked about subdirectories when you first mentioned the
readfile() support, and you scoffed at the intimation that they might
be a problem.
> The main config file belongs in the _root_ file system next to the kernel.
> Only configuration info for the boot loader belongs in the boot file
> system.
I appreciate the distinction.
> >Now, assuming that the space just after the kernel is available, I
> >propose a header, something like :
> >
> >0xmagicnumber, 0xlength,
> >"rcfile 1 name"
> >"line 1"
> >"line ..."
> >0xmagicnumber, 0xlength,
> >"rcfile 2 name"
> >...
>
> Overengineered.
Perhaps. Perhaps not. What if I want to throw in, say, the splash screen
image here. Am I still overengineering? How about the initial state
for the kernel's registry?
I feel that some rudimentary structure is required. Magic-numbering
with length values is about as simple as I can come up with.
> >A suitable API for modules to extract this information can be devised.
>
> getc().
Not useful, as the information is consumer-driven and it's not at all
clear who the consumer(s) are likely to be.
> >For userconfig stuff, entries would probably be plain userconfig commands
> >prefixed appropriately, eg. :
> >
> >userconfig port ed0 0x300
>
> If the commands are unique then you don't need keys to say which subsystem
> should parse them.
Perhaps, but it's much easier to say :
cp = NULL;
while ((cp = kern_getnextenv("userconfig", cp))) {
process_var(cp);
}
than anything else that you can do from the consumer's side without
tagging the data.
I specifically don't want to require that the "environment"-management
code know all of the possible consumers of a a variable. Some may
provide state, some may be commands; they should be transparent to the
management code.
The only alternative that I can think of would involve a linker set for
command handlers, and that loses for LKMs.
> Bruce
--
]] Mike Smith, Software Engineer msmith@gsoft.com.au [[
]] Genesis Software genesis@gsoft.com.au [[
]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[
]] realtime instrument control. (ph) +61-8-8267-3493 [[
]] Unix hardware collector. "Where are your PEZ?" The Tick [[
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704290944.TAA21477>
