Commit Graph

306 Commits

Author SHA1 Message Date
tv dba5d44670 Add hooks to allow toolchain bits to be reachover-built at the top level. 2001-08-14 10:18:26 +00:00
itojun a42562635c sync .Fl with reality 2001-07-03 08:52:00 +00:00
gmcgarry 32fc55d6d2 Don't pack locators. Introduce a new commandline option to
restore the previous behaviour of packing locators.

Results in a 2.5KB increase in size for the current i386 GENERIC
kernel.  My custom kernel resulted in a 12-byte increase.
2001-07-01 02:46:47 +00:00
fredette de800ed660 Added support for listing multiple additional names on
a `machine' line.  For each of these subarches, its
arch/${SUBARCH}/conf/files.${SUBARCH} is included, and
a symlink ${SUBARCH} -> arch/${SUBARCH}/include is made.
This will for a "richer structure" and easier code
sharing under sys/arch.
2001-06-08 12:47:06 +00:00
minoura 81e8dc3cac Correct a typo.
Pointed out by MAEKAWA Masahide <maekawa@kbug.gr.jp>.
2001-05-18 07:48:07 +00:00
cgd c2bdafab79 use getprogname() 2001-02-20 23:51:59 +00:00
bjh21 a9e45dc961 Put both .S and .s files in SFILES. Fixes bin/12051. Patch from Richard
Earnshaw via Chris Gilbert.

The right solution here is to have every port use .S, but that might take a
while...
2001-01-31 00:15:40 +00:00
thorpej ed7ec7c142 Make this work again for the case where there are devices
configured, but none of those devices happen to have locators.
2001-01-18 07:09:47 +00:00
cgd fdfcf1962d labels (even default:) _must_ be followed by statements! usr.bin/fgen/fgen.l 2001-01-16 02:43:37 +00:00
lukem 1d0a6f62b8 revert 1.51 and 1.52 (_KERNEL_foo stuff), due to loud objections from
a couple of people.  we'll just have to go back to adding this manually
to our config files...
2000-12-14 22:14:45 +00:00
lukem ea03d7ba8e change KERNEL_foo -> _KERNEL_foo, as suggested by matt green 2000-12-12 17:49:20 +00:00
lukem f125ced5a1 Add option `KERNEL_foo', where `foo' is the basename of the build directory.
This will get added to the Makefile's IDENT= as -DKERNEL_foo.
2000-12-12 08:46:02 +00:00
matt a2877b394c Don't emit MACHINE/MACHINE_ARCH. Instead emit a TARGET_MACHINE=machine
instead.
2000-12-03 07:06:15 +00:00
matt 5cde4cf735 If a port-specific Makefile.<port> doesn't exist, try a arch-specific
Makefile.<arch>.
Emit MACHINE=<port> and MACHINE_ARCH=<arch> to the emitted Makefile.
2000-12-02 23:01:54 +00:00
cgd a1a91fd28f if there are no locators or parent, don't output those arrays. (Sometimes
you really want no devices whatsoever.  In that case, you get unused
static var warnings from the compile.)  Reviewed by sommerfeld.
2000-11-18 00:51:29 +00:00
is d8302e2d73 More format string cleanups by sommerfeld. 2000-10-11 20:23:46 +00:00
bjh21 23dc98ae44 Don't try to use yydebug when we're building on a foreign system. Not all
yaccs provide it (notably GNU Bison 1.28).
Fixes the final part of PR#9112 (building under GNU/Linux).
2000-10-08 11:33:40 +00:00
cgd 1e69382368 clean up dev_t-related portability defines (and actually #define dev_t now).
Make major() et al match current NetBSD implementation.  In reality,
the code here in config which plays with these bits should be cleaned up
to treat major and minor separately.  (They only reason they're being mashed
together is storage convenience.)
2000-10-02 19:59:42 +00:00
cgd da723c733f include copyright notice in binary even if bootstrapping. 2000-10-02 19:57:23 +00:00
cgd 506c287193 bump ALIGNBYTES up to 7 -- that way this'll have more of a hope
of working on non-NetBSD systems with 64-bit pointers.  (affects only
the MAKE_BOOTSTRAP case, and then only if BSD not defied.)
2000-10-02 19:51:07 +00:00
cgd 463d864ef0 nuke __P, and convert all functions to use ANSI-style declarations.
Also, do a few trivial KNF cleanups (e.g. newline at start of fn if no
locals).  Verified to have no effect via diff on new and old compiled
binaries.
2000-10-02 19:48:34 +00:00
cgd a755a0d943 remove vestiges of checks for __STDC__ 2000-10-02 18:59:03 +00:00
cgd c026189f76 do that previous differently. only allow redefinitions if: in different
file, make command specified, and no flags or attrs-which-cause-inclusion
are spec'd.  The notion is, if you change either of the last 2, it will
probably have very undesirable results, so only allow the make command to
be changed.  override by clobbering the make command in the previous entry.
also, fix a bug where line number of original entry would get clobbered on
dup entry, so that if you had multiple dups the later ones would get bogus
initial definition info.
2000-06-09 05:06:12 +00:00
eeh e5cf411171 Allow MD files files to override settings in MI files files. (From Chris Torek). 2000-06-08 21:22:55 +00:00
hubertf 13afcc6b33 If maxusers is out of bounds, show the allowed bounts in the error msg. 2000-05-09 00:34:58 +00:00
simonb fd4ede242b Don't declare 'extern opt*' getopt variables. 2000-04-14 06:26:52 +00:00
enami 1b1b19c5c5 Emit `.MAIN: all' to force the target `all' as default target. 2000-02-01 05:13:17 +00:00
enami 0d45936ccf Please pay an attention to the existing code and not to introduce
different coding style.
2000-01-25 01:16:00 +00:00
hubertf 764307a5a1 Keeping my kernel config files under RCS control, I always wished to
have a way to embed the revision number into the kernel's "uname -v"
output. The patch below does this, by generating a new keyword "ident"
that can be followed by any string, e.g.

        ident   "NOON-$Revision$"

will lead to
                                           vvvvvvvvvvvvvvvvvvvvvv
        char version[] =     "NetBSD 1.4P (NOON-$Revision: 1.21 $) #37: Thu Jan
20 02:01:23 MET 2000\n    feyrer@noon:/usr/cvs.local/src-current/sys/arch/i386/c
ompile/NOON\n";

This will lead to a version of "MYMACHINE-$Revision$" instead of the
kernel config file name. If "ident" is not present, the current behaviour
of using the kernel config file's name as identifier is used.

Implement by writing the ident to a file ("ident") in the compile dir,
which newvers.sh will pick up for generating the ident.
2000-01-23 23:37:42 +00:00
thorpej aa1aaac03e Allow abolute pathnames as prefixes. 2000-01-20 00:08:08 +00:00
drochner 4b3a806e80 print a warning if a "cinclude"d file cannot be opened and the -v flag
is given
2000-01-05 11:24:02 +00:00
nathanw 19d95c5d43 Fix typo in comment. 1999-12-20 17:19:13 +00:00
enami 8e1cda20c6 Fix the path of ioconf.incl.$MACHINE using sourcepath(). This is part
of PR#8369.  Also, make sure that the file pointer ifp is always closed.
1999-09-24 04:48:37 +00:00
enami 532da8eb1c Remove redundant declaration of firstfile(). 1999-09-24 04:23:36 +00:00
ws b17a1042ba Allow mutual dependencies.
Output string-valued options reasonably to option files.
1999-09-22 14:23:03 +00:00
is 54e4d2fc26 Fix grammar, as pointed out by Olaf Seibert. 1999-09-21 15:50:19 +00:00
hubertf f3269a6dee Clean up flex output (gram.[ch]).
Reported in PR 8232 by Andrew Cagney <ac131313@cygnus.com>
1999-08-19 02:27:02 +00:00
thorpej 8c134b93a0 If unlink() fails w/ ENOENT, don't display an error message. 1999-07-31 05:22:05 +00:00
hubertf b0f5059f43 Don't ignore the return value of two unlink() commands, and print
some warnings instead, if unlinking fails.

Fixes PR 4634 by myself.
1999-07-29 20:08:59 +00:00
thorpej 95a36e1425 Fix bug in previous; allprefixes didn't work if there were multiple prefixes. 1999-07-09 18:46:09 +00:00
thorpej 64f20db21b Make the outputted INCLUDES directives a bit more cosmetically appealing. 1999-07-09 18:45:31 +00:00
mrg ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +00:00
thorpej 152af09e65 Add a mechanism to specify prefixes that are transparently prepended
to file specifications.  The prefixes are arranged in a stack, and
nest, so that file, object, and include specifications are normalized,
and all end up relative to the kernel compile directory.

For example, in the kernel config file:

# Pull in config fragments for kernel crypto
prefix ../crypto-us/sys 			# push it
cinclude "conf/files.crypto-us"			# include it if it's there
prefix						# pop it

and in files.crypto-us:

file netinet6/esp_core.c                ipsec & ipsec_esp
file netinet6/esp_output.c              ipsec & ipsec_esp
file netinet6/esp_input.c               ipsec & ipsec_esp

...generates the following in the kernel Makefile:

        $S/../crypto-us/sys/netinet6/esp_core.c \
        $S/../crypto-us/sys/netinet6/esp_output.c \
        $S/../crypto-us/sys/netinet6/esp_input.c \

By placing this all in the kernel config file, all the magic involved in
reaching into non-standard kernel source directories is placed into a file
that the user is expected to edit anyway, and reasonable examples (and
sane defaults, for typical source checkouts) can be provided.
1999-07-09 06:44:58 +00:00
thorpej 02a4ec93e9 Nuke the work-around for non-normalized include paths. They have all
been fixed up.
1999-07-09 02:37:26 +00:00
thorpej 0ee6c639c7 Add a mechanism for files.* files to be included, in the kernel configuration
file, conditional on their existence.  For example:

[ in ../conf/GENERIC ]
cinclude "../crypto-intl/sys/conf/files.crypto-intl"

This required a change to the files.* grammar; pseudo-device in that
context has been changed to defpseudo, to avoid a conflicting rule
for pseudo-device in the kernel config files.

The same grammar change allows vendors to ship files.* files for
commercial drivers, rather than diffs to e.g. files.pci, i.e.:

include "arch/i386/pci/files.zap"
zap* at pci? device ? function ?

Where files.zap might contain:

device zap: ether, ifnet, arp, mii
attach zap at pci
object	arch/i386/pci/zap.o	zap
1999-07-07 00:02:09 +00:00
mycroft 01e0430cea Allow absolute path names for `object' files. 1999-05-23 19:30:30 +00:00
gwr 5a4e7b6de7 Make this build on Solaris (make -f Makefile.boot) 1999-04-02 06:36:30 +00:00
mycroft afd308129a Output a dependency on `newvers' for *every* kernel. It only gets run at most
once per make(1) invocation anyway, and not doing this screwed up parallel
makes.
1999-03-30 12:36:50 +00:00
garbled d1407362ba More and more .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-22 18:43:46 +00:00
mjl 99d17e2ca4 Mention -v in usage. Fixes PR 6262 by Erik Bertelsen. 1999-02-08 22:32:58 +00:00
pk 74098ab84e Lennart Augustsson's multi-valued locator code. 1999-01-21 13:10:08 +00:00
christos c5b62f45b1 - rename err -> herr so that we don't conflict with libc
- KNF
- use herr when opening the files too, producing a more useful message.
1998-10-16 14:27:17 +00:00
itohy ec8a0e8dad Eliminate a memory leak. 1998-10-05 19:50:40 +00:00
pk 3237c34e03 Emit device name to device major number table. 1998-08-30 21:33:27 +00:00
tv c166f15971 NetBSD doesn't support the tahoe. 1998-08-06 14:56:17 +00:00
jonathan 50ca59e842 Fix braino. 1998-06-30 03:42:23 +00:00
jonathan eaa351c789 * Check that any declared option (def{opt,param,flag}, filesystem
is declared at most once.
* Do option dependency across all def{opt,param, flag}.
* Make the default value of otherwise-unspecified defopt's be 1,
  for consistency with non-defopt'ed options.
* Wrap an abstraction layer (macros) around tests for defopt, filesystem,
  defparam, etc. to catch outdated  defopt-vs-filesystem tests.
1998-06-30 03:30:56 +00:00
scottr a5427da04d Add and document the -v flag, and only print option-related warnings
if this flag is specified.
1998-06-28 04:41:36 +00:00
jonathan 0925cf4fda Stronger checking of options:
* machinery for nonfatal warnings.
* new backend config-file keywords:
     defparam -- like defopt, but each defparam option is required
		 to have a value when configured via "options".
     defflag -- like defopt, but defflag options may not have a value.
		 Also, on "option FOO",  a needs-count style flag
		 (NFOO, either 0 or 1)  is emitted to the .h file.

* Warn about old-style options that aren't defined via def{opt,param,flag}
  and which are  added to IDENT. (These behave subtly differently
  to defopt options when  no explicit value is given.)
1998-06-24 11:20:54 +00:00
scottr e6eb7d0530 Implement option dependencies as part of the defopt action. We currently
restrict depended-on (or "implied") options to those that have been
previously defopt'ed, which inherently eliminates any cycles in the option
graph.
1998-06-10 04:33:31 +00:00
tv 2c23336179 Add missing colon in error message. 1998-05-22 19:29:00 +00:00
tv 95fadaa10e Add CLEANFILES+=gram.h as noticed by tron (PR 5383) 1998-05-01 13:02:09 +00:00
tv 2fd6f54874 Make the yacc rules work on 1.3 as well as -current without updating the
.mk files:  build the .c and .h files manually.  This should be removed
after the next release.  XXX.
1998-04-16 18:47:05 +00:00
tv 482063559a .y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.
1998-04-09 00:32:31 +00:00
thorpej 129a20a049 Fix a think'o that caused "config netbsd root on ? type ffs" to fail.
Fixes PR #5021.
1998-02-20 00:11:02 +00:00
thorpej a522c869e5 Fix a few semantic problems wrt. file-system, deffs, and options, pointed
out by Chris Demetriou.
1998-02-19 06:13:51 +00:00
thorpej d12d850cfe Add a "deffs" keyword, similar to "defopt", that defines file systems.
Only things defined with this keyword will be allowed on "file-system"
lines in the kernel config files.

By default, -D... directives for file systems are not generated, since
they are not needed for most file systems now that vfs_conf.c is gone.
However, some file systems must have dependencies generated on them
(e.g. NFS, UNION).  So, provide a way to specify an option file for
these file systems.
1998-02-19 00:27:00 +00:00
thorpej ed063c61d5 Emit the default set of file systems as vfs_list_initial[]. 1998-02-18 07:00:27 +00:00
thorpej ea4d1b7ea1 Rather than using a separate "class" keyword, treat device classes like
special attributes.  From Chris Demetriou.
1998-02-16 22:05:35 +00:00
enami 491b9bd801 Remove redundant assignment. 1998-01-14 01:15:24 +00:00
thorpej bc1733bc88 Add code to emit the cfdriver structures into ioconf.c. This requires
a change to the config grammar, to specify a device's class (i.e. DV_xxx)
like:

device	sd class disk: ...

Also emit an ioconf.h, which contains extern declarations of the
cfdriver structures.

While I'm here, add support for specifying multiple options per defopt
line, as well as specifying the file name in which the options will
appear.

defopt	foo bar baz

generates "opt_foo.h", "opt_bar.h", and "opt_baz.h"

defopt	opt_mumble.h foo bar baz

generates "opt_mumble.h" which contains all three options.

Also, clean up and fix some bugs in the code that generates header files.
1998-01-12 07:37:40 +00:00
perry 3fe138c146 RCS Id Police. 1998-01-09 08:03:16 +00:00
lukem 44c22033e4 use CPPFLAGS instead of CFLAGS 1997-10-23 06:31:59 +00:00
lukem 73d91b2129 WARNSify, deprecate register, remove unused functions 1997-10-18 07:58:56 +00:00
lukem 2c30449e9c getopt returns -1 not EOF, turn off WARNS 1997-10-18 04:08:12 +00:00
lukem 03a401c4d5 getopt returns -1 not EOF, turn off WARNS 1997-10-18 04:08:08 +00:00
mycroft e8f7fd90c1 Actually, punt the `library' keyword; it does the same thing as `object',
and we really only need one of them.
1997-10-10 10:41:18 +00:00
mycroft 7d58ce9471 Add `object' and `library' keywords to pull in precompiled .o and .a files.
Syntax is like the `file' keyword; e.g.:
object	arch/i386/i386/mumble.o		[mumble] [needs-flag]
Largely from Michael Richardson in PR 3833, with some changes by me.
1997-10-10 10:27:53 +00:00
mycroft 054b6cb773 Allow options and makeoptions to take an empty string as a value. 1997-10-10 09:32:03 +00:00
jtk ce7e4557dd Don't generate defines for locators or bus attachments which have spaces
or tabs in the names; we can't generate reasonable #defines in those cases.
fixes PR# 3880.
1997-07-18 11:27:37 +00:00
thorpej 9fec93804a Changes to config(8) to support dump configuration in the wake of the
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).
1997-06-14 04:25:55 +00:00
mrg 7d9c89b0ce remove "swap" configuration. 1997-06-12 15:03:09 +00:00
thorpej 267e8357fc Implement an unfortunate, and temporary, kludge to address the problem
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.
1997-05-25 18:42:54 +00:00
veego 924c7fcffa Add y.tab.h to CLEANFILES 1997-05-15 10:04:27 +00:00
mycroft 2c0b6f8e7f Use DPSRCS. 1997-05-09 13:56:04 +00:00
mycroft cc4a1553a1 Eliminate bogus redefinitions of standard targets. 1997-05-09 07:50:03 +00:00
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