new swap system. The dump specification syntax is now more flexible,
and supports constructs like the following:
config netbsd root on ? type ? dumps on ?
- wildcarded root, fstype, and dump device
config netbsd root on ? type ffs dumps on sd0b
- wildcarded root, ffs root fs, always dump on sd0b
config netbsd root on de0 type nfs dumps on wd0b
- mount an nfs root using de0, and write kernel crash dumps
to wd0b
Also, garbage-collect some now unused code, now that swap configuration
is no longer handled by config(8).
reported in PR #3668 from maximum entropy <entropy@tanstaafl.bernstein.com>.
The problem: The unit number is not being conveyed to the configuration
crosscheck with root is a network interface; the device number is set
to NODEV, which sets up the (correct) defaults for swap/dump devices.
We can't change NODEV to a unit number, as the PR's patch suggests, as
this breaks the swap/dump defaults. Rewriting that code is not really
justified, since it's soon to be obsoleted.
The kludge: add an "nv_ifunit" member to struct nvlist, which convey's
a network interface's unit number to the crosscheck routine. It's not
pretty, but it's not terribly invasive, and can be garbage-collected
easily when the swap/dump goo is obsoleted.
and the root device:
- New "file-system" keyword is used to configure file systems into
the kernel.
- New way of specifying root device, which allows root file system
type to always be specified. Examples:
config gennetbsd swap generic
config sdnetbsd root on sd0a swap on sd0b
config nfsnetbsd root on nfs
are replaced by:
config gennetbsd root on ? type ?
config sdnetbsd root on sd0a type ffs swap on sd0b
config nfsnetbsd root on ? type nfs
config lenetbsd root on le0 type nfs
Note that specific network interfaces may now be specified as
the root device.
- swapgeneric.c is no longer used; generate a swap*.c file for each
"config" line in the kernel configuration file.
- split softc size and match/attach out from cfdriver into
a new struct cfattach.
- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.