diff options
author | dcs <dcs@FreeBSD.org> | 2000-09-09 04:52:34 +0000 |
---|---|---|
committer | dcs <dcs@FreeBSD.org> | 2000-09-09 04:52:34 +0000 |
commit | 3fa988b3957e914ad876116d4dd6531bf41d5743 (patch) | |
tree | e6813cf3ef71c90f1ebb08b8675577f72d782754 /sys/fs | |
parent | e02c3d5c171cde15a56287fe8330da2857ee380a (diff) | |
download | FreeBSD-src-3fa988b3957e914ad876116d4dd6531bf41d5743.zip FreeBSD-src-3fa988b3957e914ad876116d4dd6531bf41d5743.tar.gz |
First tackle at trying to handle the New Deal on kernels.
Load the first of the following kernels to be found:
${kernel} if ${kernel} is an absolute path
/boot/${kernel}/${kernel}
/boot/${kernel}/${bootfile}
${kernel}/${kernel}
${kernel}/${bootfile}
${kernel}
${bootfile}
The last instance of ${kernel} and ${bootfile} will be treated as a
list of semicolon separated file names, and each will be tried in turn,
from left to right.
Also, for each filename loader(8) will try filename, filename.ko,
filename.gz, filename.ko.gz, in that order, but that's not related
to this code.
This resulted in a major reorganization of the code, and much of what
was accumulating on loader.4th was rightly transfered to support.4th.
The semantics of boot-conf and boot also changed. Both will try to load
a kernel the same as above.
After a kernel was loaded, the variable module_path may get changed. Such
change will happen if the kernel was found with a directory prefix. In
that case, the module path will be set to ${directory};${module_path}.
Next, the modules are loaded as usual.
This is intended so kernel="xyzzy" in /boot/loader.conf will load
/boot/xyzzy/kernel.ko, load system modules from /boot/xyzzy/, and
load third party modules from /boot/modules or /modules. If that doesn't
work, it's a bug.
Also, fix a breakage of "boot" which was recently introduced. Boot without
any arguments would fail. No longer. Also, boot will only unload/reload
if the first argument is a path. If no argument exists or the first
argument is a flag, boot will use whatever is already loaded. I hope this
is POLA. That behavior is markedly different from that of boot-conf, which
will always unload/reload.
The semantics introduced here are experimental. Even if the code works,
we might decide this is not the prefered behavior. If you feel so, send
your feedback. (Yeah, this belongs in a HEADS UP or something, but I've
been working for the past 16 hours on this stuff, so gimme a break.)
Diffstat (limited to 'sys/fs')
0 files changed, 0 insertions, 0 deletions