Commit Graph

12 Commits

Author SHA1 Message Date
thorpej
d214be029a Fix arithmetic botch that caused incorrect results for configs like:
config netbsd root on sd1a

Noted by Taras Ivanenko <ivanenko@ctpa03.mit.edu> in PR #3203
and by others.
1997-03-06 23:11:55 +00:00
thorpej
07c71aa7f7 Implement new grammar and semantics for specifying file systems
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.
1997-01-31 03:12:30 +00:00
gwr
1ed260c698 Move some externs to where they are needed. 1996-11-11 23:40:09 +00:00
mycroft
8441b8f88d Remove interrupt vector handling. This is done dynamically by all ports now. 1996-08-31 21:15:05 +00:00
cgd
315f091f18 fix (apparently long-standing) bug which prevented devices from attaching
to interface attributes on a device other than the interface attribute that
the device was named the same as, if that one was there.
1996-03-17 21:12:03 +00:00
cgd
50b3b61ea3 simplify nvlist creation slightly; change newnv() to take another arg: next 1996-03-17 11:50:09 +00:00
cgd
2dd7a7984c Fix PR 2218. As noted (both in mail from me included in the PR, and
in XXX-marked comments in the recent attachment changes), this was a
long-standing bug in config.

The problem: If a device is attached to a device via an attribute exported
by that device (i.e. foo* at bar0, where 'bar' exports an attribute that
'foo' attaches to), but the device attached to is not present in the
kernel configuration file, AND another device which exports an attribute
that 'foo' attaches to _is_ present (e.g. a device baz0, if one could
specify 'foo0 at baz0'), then: the configuration file will (incorrectly)
be accepted by config, and the resulting ioconf.c will include a bogus
cfdata entry for the device (in the example, 'foo*').  This typically
causes the resulting kernel to crash during autoconfiguration.

The solution: Be much more careful about keeping track of where a device
was attached, and, in particular, if a device was attached to another device,
_always_ keep track of what device it was attached to.  Then, when
cross-checking, if the attached-to device isn't present, give up and do not
check attributes.  Also, document the process much more thoroughly.
1996-03-17 07:05:50 +00:00
cgd
9c4f9d2daa spaces vs. tabs, spaces/tabs at EOL bogons. 1996-03-17 06:29:19 +00:00
cgd
95f205f10c fix bogon in device attachment name checking. the same rules should be
used for checking device attachment names as are used for device name
checking, because device names can be used as attachment names.  (Actually,
less strict rules could be used, but there's little point in that.)  This
was not a mistake of design, this was just a mistake; i misunderstood
the devbase name checking code.
1996-03-17 06:23:18 +00:00
thorpej
cb6211e540 New device attachment scheme:
- 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.
1996-03-17 02:08:22 +00:00
thorpej
c5f7cf3a9e RCS id police. 1996-03-03 17:21:25 +00:00
cgd
064307e690 config.new has been moved here. names updated to match. 1995-04-28 06:54:58 +00:00