Commit Graph

270 Commits

Author SHA1 Message Date
cgd e3149f181c sort cloning units for a given devbase after non-cloning units. Addresses
the same problem as PR 3503, but with different code.
1997-04-17 05:01:09 +00:00
jtk 0b044b117e . NULL terminate the list of locator names on each attachment
. link to the list of locator names from each entry in cfdata[] (for
future use by programs to print out the device tree nicely and/or
for boot-time configuration tools)
1997-03-14 22:54:08 +00:00
leo 0b28c6c0b1 Don't dump when a non-existent root device is specified. (missed a
param to error()).
1997-03-14 20:43:05 +00:00
jtk 0f6d8d88b8 Add hash table walking functions to emit manifest constants for locator
offsets within cf->cf_loc[].
Also include locator names as strings in ioconf.c.

Still to do: wire the locator names into the cfdata.
1997-03-14 00:14:09 +00:00
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 c9fe001e3a Cross-reference options(4). While I'm hear, garbage-collect the
reference to config(8) left over from when this program was called
config.new.
1997-02-05 19:17:28 +00:00
thorpej f12fb4ba31 Patch from Gordon Ross to make this build under SunOS, useful in
cross-compiling environments.
1997-02-03 21:18:21 +00:00
thorpej e14a0d029f Add support for generating "option headers". These allow options to
be included in object dependencies.  config(8) is told to generate
a header for a particular option with the new "defopt" keyword, used
in the files.* system description files.  Options that are placed in
header files are not given -D... cpp flags.

This approach allows options to be turned into headers incrementally,
rather than all at once, and allows for non-header options, as well.
1997-02-02 21:12:30 +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 81aa081ab6 Eliminate the "dangerous trailing context" (actually both uses of
trailing context were unnecessary).  Remove unnecessary { } around
simple actions (just a return statement).  Fix some * vs + errors.
1996-11-13 18:42:18 +00:00
gwr 7fa1418031 Fix the bug I introduced in the last commit, which broke line contuation
where newline is followed by whitespace.  Do not return a newline token
to the parser in that case (logically still the same line).
1996-11-12 17:42:47 +00:00
gwr a0b75afc0b * Eliminate all shift/reduce conflicts in the grammar. This
requires that some ordering requirements are checked by the
  back-end C code instead of the parser (dirspecs, maxpart).

* Be more careful to require newline tokens in the grammer where
  they are expected, and deal with blank lines, etc.  This allows
  elimination of a trailing context on newline in the scanner.

* Let the parser set values for "needs-count" and "needs-flag"
  instead of making those special cases in the scanner.

* Get rid of '= ' preceeding actions (obsolete yacc syntax)

* Make the scanner not insert an extra newline after includes.
  (It was just an accidental side-effect of the ENDFILE stuff.)
1996-11-11 23:54:17 +00:00
gwr 91118cc6ae Move setupdirs() here -- it is now called from scan.l (include). 1996-11-11 23:41:54 +00:00
gwr 1ed260c698 Move some externs to where they are needed. 1996-11-11 23:40:09 +00:00
gwr 3b2cf54383 Be honest about the fact that this program builds only with flex. 1996-11-11 23:36:40 +00:00
mycroft 72d4e71f08 Remove remaining vector cruft. 1996-11-11 14:18:49 +00:00
gwr 26793c36d4 Minor changes to support building on other systems (i.e. SunOS). 1996-11-07 22:59:39 +00:00
cgd 42b8d1922d correct a comment: profiled kernels go in FOO.PROF, not FOO.prof 1996-11-02 01:02:56 +00:00
cgd b031fda3b1 update comments to correctly indicate what files are being parsed when 1996-11-02 01:00:14 +00:00
ghudson e312e1563e Don't canonicalize relative paths to the source tree any more; libkern
and libcompat can handle them as long as they begin with '.'.  If a
relative path doesn't begin with '.', add a "./" before it.
1996-09-23 05:04:23 +00:00
mycroft 8441b8f88d Remove interrupt vector handling. This is done dynamically by all ports now. 1996-08-31 21:15:05 +00:00
mycroft ab6ebadde6 Add `source' and `build' directives, and corresponding options, per discussion
on tech-kern.  (See man page.)  Implementation by Greg Hudson.
Also, remove special case for i386 in vector handling, although this code isn't
actually used any more.
1996-08-31 20:58:16 +00:00
mycroft b9ae4a5e3f Remove `config-dependent' and `device-driver' flags. 1996-08-12 00:55:54 +00:00
cgd cb40dc44d0 two devices instances which are otherwise the same but do not attach
via the same attributes are _not_ the same, and should not be treated
as aliases of each other.
1996-06-17 18:21:35 +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
christos 6b2a32d7dc Declare the mountroot functions and variables fully prototyped. 1996-03-17 20:36:25 +00:00
cgd 3ac7667c57 add BSDI-style expression support to optional file specifiers. Code mostly
taken from the parts of BSDI's 'config' which are freely-distributable
(under the LBL/UC Regents license), and adjusted to fit into our version.
1996-03-17 13:18:15 +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
cgd 9c70ac56a8 fix another just-discovered long-standing bug: foo0 at bar* is not legal
syntax.  (devices which specify 'at' can't be starred.  they can be
wildcarded, with ?, but not starred.)
1996-03-17 05:19:33 +00:00
cgd dfbb6d0884 fix a bug where definitions to be placed in headers wouldn't be
right/consistent.  If you had something like:

file	file.c		foo bar baz needs-flag

and any one of foo, bar, or baz caused it to be brought into the compile,
in the header you'd end up with:

#define NFOO	1
#define NBAR	1
#define NBAZ	1

even if only one of them were selected.  Other headers might have had a
different (inconsistent) set of definitions, depending on whether any of
their components were included, and any files necessary for the unspecified
options would not actually be present in the Makefile files list.  The
correct behaviour for the example above if only 'foo' is selected by
the config file is:

#define NFOO	1
#define NBAR	0
#define NBAZ	0

which is what config now does.  This bug has been present for a while.
(I don't know for sure that it was present in 4.4-Lite2, but from looking
at the Lite2 config sources, it appears to be there.)
1996-03-17 03:21:21 +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 7d351bb3f4 fix thinkos in emitobjs() and emitfiles() that would cause empty files
lists to not have a newline properly emitted.  (It was emitting a
newline only if the line position was != 7.  However, the only time the
line position was 7 was right after the initial variable assignment
string (e.g. "OBJS=\t") was printed.)
1996-02-23 00:39:42 +00:00
scottr de8fcf0996 Spelling correction 1996-02-13 23:08:24 +00:00
cgd c626f39b3a update 'files' files search paths and manual page descriptions for
the config program renaming.
1995-04-28 08:15:48 +00:00
cgd 064307e690 config.new has been moved here. names updated to match. 1995-04-28 06:54:58 +00:00
cgd d8806814a6 specify man pages the new way. 1994-12-22 11:32:57 +00:00
mycroft b8e6ab9578 Add explicit BINDIR definitions, since these directories are distributed
separately.
1994-12-11 22:29:40 +00:00
mycroft 6f895463de Fix core dump when parsing ccd device specifications. From Jason Downs. 1994-10-31 19:13:13 +00:00
hpeyerl 2b3f96ce61 (I'm a dork for putting this in the wrong tree before)
To let us correctly configure ccd devices. <From downsj@csos.orst.edu>
1994-08-03 19:30:21 +00:00
hpeyerl 9cbb13a30b Config support for ccd driver. (from 4.4Lite) 1994-06-24 14:22:08 +00:00
cgd ce5210ad7d delete nfs_diskless, and ufs -> ffs, so kernel links properly. 1994-06-13 02:32:50 +00:00
cgd f39163138d maxfdescs checks out 1994-05-21 08:32:32 +00:00
cgd 25fe2bda71 terminate swap conf file with NODEV, not 0. 1994-04-25 23:30:52 +00:00
mycroft fcd16a0700 Remove some stuff. 1994-04-07 06:53:01 +00:00
deraadt 4b24a3521e rainse() -> raisestr(), per <arnej@fm.unit.no> 1994-04-05 23:57:26 +00:00
chopps 2e148c6734 remove old floppy thing. 1994-04-05 23:07:07 +00:00
cgd d1c44c8402 clean up printf, and make overrides work! 1994-03-30 04:25:22 +00:00
mycroft b1f6bfe5f0 Switch from `isa_driver' to `cfdriver', and remove the special case for
SCSI devices.
1994-03-29 04:27:18 +00:00
cgd 693c57d142 from Roland McGrath <roland@frob.com>: for i386 'drive',
use 'slave' if drive unknown.
1994-03-23 00:35:53 +00:00
mycroft 166515d156 Output only one table of ISA devices, add parent pointers, remove id_masunit,
and add a pointer to the interrupt mask for simplicity.
1994-03-12 03:26:52 +00:00
mycroft 0d7f067f06 Fix `all:' line. 1994-03-10 22:09:51 +00:00
mycroft 6717fa4ab1 Get the physical device # right in all cases. 1994-03-10 21:35:37 +00:00
mycroft 240d0465d2 Move non-SCSI devices out of isa_subdev. 1994-03-10 21:19:26 +00:00
mycroft 1dfb3af678 masunit = -1 for controllers, too. 1994-03-10 20:13:10 +00:00
mycroft 26731dd3eb Support device drivers with multiple names, and do the right thing for fd and
wd.
1994-03-10 19:50:43 +00:00
mycroft 508ba10f66 Rename vector() to i386_vector(), to avoid any confusion. 1994-02-23 00:23:20 +00:00
mycroft deb02f75b2 Technically we need to block ASTs, so we'll do this a bit differently. 1994-02-22 23:32:50 +00:00
mycroft 6c999ed979 Clock interrupt should not block everything. 1994-02-22 23:03:28 +00:00
mycroft c272569dc8 Add support for specifying an interrupt to be run at splhigh(). 1994-02-18 06:10:42 +00:00
deraadt 9b26fac7d8 i386: don't call hardclock. call clickintr, which calls hardclock with a
pointer to the frame, instead of the frame.
1994-02-01 02:11:02 +00:00
cgd 91068203d6 changes for amiga 1994-02-01 02:07:11 +00:00
cgd 5b9ec78ea1 treat 'cpu' types as options for purpose of file inclusion.
(consistent with config.new, where everything cpu types *are* options.)
1994-02-01 02:04:19 +00:00
deraadt be366a3e1e pmax fix 1994-01-14 19:43:24 +00:00
deraadt 4d24126593 better error messages 1994-01-09 17:53:58 +00:00
cgd 2dae0c7cb0 add support for "machinearch" internal variable. if "machinearch"
is different than the "machinename" internal variable, read
machinearch's files.${machinearch} and add it to the list of files
for the machine.  Also, regardless of whether or not they're different,
create a ${machinearch} sylink (or directory) pointing to the machinearch
include files (or containing them).
1994-01-08 10:33:43 +00:00
mycroft 09786cb42d Back out previous change. It was wrong. 1993-12-05 23:04:49 +00:00
mycroft e8e1a19487 Fix typo, MACHIN --> MACHINE. Reported by Brad Parker <brad@fcr.com>. 1993-12-05 22:10:48 +00:00
deraadt 45af4741ad let quoted strings contain "\"" and "\n"
also let strings be "", ie. empty (is this a good change?)
1993-12-03 04:58:22 +00:00
jtc f51f0a515d All programs that use lex must link with -ll. 1993-12-02 18:18:02 +00:00
phil 102c96c45a For the PC532, fixing the errors in the #include code and removing all
references to the "rtc".  (Removing rtc from the pseudo devices.)
1993-12-01 22:29:19 +00:00
phil 1b7c2b0299 Added some includes needed for the new pseudo_init code. 1993-12-01 07:56:02 +00:00
deraadt 5f40ac2443 be more careful, do not tromp over ``MACHINE'' 1993-12-01 05:56:39 +00:00
deraadt f7bce94e9a generate a pdevinit[] like config.new does (for pseudo device initialization) 1993-11-23 07:45:06 +00:00
cgd 59ebb74a4b did *you* know that PMAX's weren't PC532's? 1993-10-15 23:26:39 +00:00
deraadt 9ae8a636f9 Add MACHINE_PMAX support from rick & ralph. 1993-10-14 01:22:27 +00:00
phil 4c44872dde Adding changes for the pc532 machine. The NO_SYMLINK is for compilation
under Minix on the pc532, which has no symlinks.
1993-09-15 21:15:19 +00:00
brezak 0c27d6751c Only output load address is using 'at'. 1993-09-13 15:27:38 +00:00
brezak e443c955ff Need to define load address in PARAM. 1993-08-28 00:03:51 +00:00
cgd cd56dd1638 merge in changes from netbsd-0-9-ALPHA2 1993-08-07 07:53:27 +00:00
mycroft 0534b030d1 Don't include PROFILING type files in OBJS and SRCS, and don't partially output
dependencies for them.
1993-08-03 00:02:01 +00:00
mycroft 52efca41cd Nuke remaining patchkit headers. 1993-08-02 18:17:24 +00:00
mycroft aee4b07b8a Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.
1993-08-02 17:48:44 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
mycroft c3e42d1c64 Add RCS indentifiers. 1993-08-01 07:22:47 +00:00
mycroft b465cf4697 Add RCS identifiers. 1993-07-30 22:11:51 +00:00
brezak 19049fea1a Add option dependency generation. 1993-07-23 03:01:47 +00:00
mycroft b0c70a21fe Hmmm. I suppose loadaddress really should be an int... 1993-07-18 10:33:46 +00:00
mycroft 97159f53d2 Allow specifying the load address in the config file. Again, defaults to
KERNBASE.

To use this, on the `config' line you specify, `at address'.  For example:

config          netbsd  at 0xfe100000 root on sd0 swap on sd0 and sd1
1993-07-18 10:07:36 +00:00
cgd 10e3a8d21b use "#if __STDC__ > 0" rather than "#ifdef __STDC__" 1993-07-13 22:16:23 +00:00
cgd f0e2d2191c changes from mw to support nfs swap/root specification 1993-07-07 10:47:00 +00:00
cgd 6e1f2beb63 we don't need the lex lib 1993-07-07 10:33:01 +00:00
cgd 1559a8e0be slight stylistic change, and don't limit field width when such limits
are unnecessary...
1993-07-03 12:59:54 +00:00
cgd 77219acd07 change interrupt vector names to begin with "X" rather than "V", so we're
like every other BSD system on the planet...
1993-07-03 12:32:25 +00:00
andrew 349ac16602 Fixed typo. 1993-06-17 08:21:42 +00:00
cgd c22f041826 don't print NULL(); for a null vector... 1993-06-07 00:02:00 +00:00
cgd 8a05b36058 incorporate Bruce Evans' interrupt changes, as hacked by Rod grimes,
for patchkit patch 158.  it appears to work well.
1993-06-06 04:14:01 +00:00
cgd 0b8e25b695 add "needs-count" specifier, which means "make a .h file if you otherwise
wouldn't".  this is overridden by (and is a subset of "device-driver".
if you have a "standard" file, you can also do: "standard foo needs-count"
to get a foo.h file.  (for the hp300 stuff)
1993-05-29 18:50:37 +00:00
cgd 864a094e19 do the right thing for vers.o. i.e. don't make newvers if nothing
has changed.
1993-05-24 11:04:45 +00:00
cgd 30904b9ec5 if no irq, that is, intenally, d_irq == -2, don't output a vector... 1993-05-18 18:02:05 +00:00
cgd 4ee5795095 last of the "arch" changes 1993-05-18 11:51:52 +00:00
cgd ddccecbf43 update man page for 'arch' changes 1993-05-18 09:10:27 +00:00
cgd c895b3c04f add changes for 'arch' 1993-05-18 08:56:31 +00:00
cgd 50fa568f9d make config use a /sys/${machine}/compile directory, rather than
/sys/compile
1993-05-17 09:10:06 +00:00
deraadt 3417c8a45b 1. id_irq is a u_short
2. "irq ?" sets it to (u_short)-1
3. "irq #" sets it to (1<<#)
4. not specifying an interrupt sets it to 0.

Until someone else comes up with a better scheme, that's the way it is.
If you have a driver that turns the interrupt off, set it to ZERO.

If, after calling XXprobe(), id_irq is still (u_short)-1, that is the same
as if  XXprobe() failed.
1993-05-11 04:04:57 +00:00
mycroft 12f4f4a4ca Don't dereference NULL pointer. 1993-04-23 08:46:46 +00:00
mycroft 88789b5d35 Don't output `extern 0();' for interruptless driver. 1993-04-22 04:15:18 +00:00
deraadt aee9e16f75 Changed the files referenced in this manual page 1993-04-15 23:16:27 +00:00
deraadt fbecd3e987 Once more: some changes to the ioconf.c structure. It will now handle
devices hanging off controllers, any kind of controller.
A device on isa0 is called at probe(self), then attach(self)
A controller on isa0 is called at probe(self), then all it's children with
    defined unit numbers are initialized by calling attach(subdev); next all
    subdevices with unit ? are initialized by calling attach(sundev).
Almost all device entry points is now like the vax/sun model (intr being
the weird one)
1993-04-15 07:52:08 +00:00
deraadt a183b8d0bf new scsi subsystem.
changes also in /sys/scsi/* i386/isa/wd.c, fd.c, and all scsi drivers.
1993-04-12 08:18:09 +00:00
glass d0cccba842 oops..left in -g 1993-04-10 12:16:42 +00:00
glass fea6b7920f Welcome to the new order. config(8)'s code for reading files, files.i386,
and files.kernel has now been completely replaced.
features supported: not nearly as broken as the stuff before
		    expression support for dependencies
		    support for 'requires'
		    no longer generates lots of stupid unnecessary .h files
		    broke lots of broken stuff, and forced fixing it.
(docs to arrive later)
		    added '-k' option for continue even after error
		    documented '-g'
1993-04-10 12:11:55 +00:00
cgd 9dc3975ffe from Rodney W. Grimes (rgrimes@agora.rain.com) (patchkit patch 117):
This patch adds the symbol names to icu.s that vmstat expects
the interrupt counters to be called.  It also adds code to config
so that the names of the interrupts are written at the end of vectors.s
so vmstat can report real device names.  It also cleans up and enables
the logging of stray interrupts.  The counters for false interrupts
are added but the fix for them is not (the fix I have is not done
very good.) A false interrupt is when a device asserts it's interrupt
signal, then removes it before the 8259 can latch it.  This is the number
one cause of stray IRQ7's and IRQ15's.

	Additional device probe information is now printed.  This includes
ending I/O address (many drivers do not return the correct value from a
probe this still needs to be fixed), memory address and size, driver
flags passed in by config.
1993-04-09 13:27:46 +00:00
deraadt 8c41b728aa config will now deal with wdc and fdc in "barsoom" fashion. This patch is
not identical to barsoom's patch, but I think it's an easier patch.
Check out compile/KERN/ioconf.c to see the effect. (On e kernel with wd and/or
fd of course)
1993-04-06 09:53:49 +00:00
cgd 83bb0a658b now can config `maxfdescs number', similar to `maxusers' to set
the max. number of fd's a user is limited to.
1993-04-04 04:33:03 +00:00
cgd e541169ce2 after 0.2.2 "stable" patches applied 1993-03-21 18:04:42 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00