Commit Graph

251 Commits

Author SHA1 Message Date
thorpej 93854e538b Allow devices to be orphaned, but emit an informational message when
this occurs.
2002-10-11 02:02:24 +00:00
thorpej a27b30b1f8 Oops, fix editor mistake. 2002-10-11 01:54:50 +00:00
thorpej bd86bbe5e9 Add support for specifying attributes as option-dependencies,
allowing for the following:

file foo.c	foobar | bar

defflag BAR

device foobar

...to be expressed in the following (more natural) way:

define foo
file foo.c	foo

defflag BAR: foo

device foobar: foo
2002-10-11 01:48:25 +00:00
thorpej 1f5fa983ab Add support for specifiying attribute dependencies on attributes. This
allows for the following:

define foo
define bar { }: foo

device foobar: bar

An instance of "foobar" will select "bar", which will in turn select
"foo" due to "bar"'s dependency on "foo".

Circular dependencies are not allowed, and a dependency may also not
be an interface attribute.
2002-10-09 20:17:00 +00:00
thorpej 9b10cf346e Use DVUNIT_ANY. 2002-10-09 03:10:19 +00:00
thorpej d90d300b7b Overhaul the way cfattach structures are looked up. The cfdata entry
now carries the name of the attachment (e.g. "tlp_pci" or "audio"),
and cfattach structures are registered at boot time on a per-driver
basis.  The cfdriver and cfattach pointers are cached in the device
structure when attached.
2002-10-04 01:50:53 +00:00
thorpej ab0f429042 Add a trailing ; to CFDRIVER_DECL. 2002-10-02 16:49:03 +00:00
thorpej f4a263573b Use CFDRIVER_DECL(). 2002-09-30 18:54:36 +00:00
thorpej bf97c13c6c Declare all cfattach structures const. 2002-09-27 20:41:46 +00:00
thorpej d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej 09354b26ef Fix an uninitialized pointer bug in emitcfdata(). 2002-09-26 21:07:49 +00:00
thorpej fc0fe0347d Overhaul the way parent attachments are specified; instead of using
a vector of indices into the cfdata table to specify potential parents,
record the interface attributes that devices have and add a new "parent
spec" structure which lists the iattr, as well as optionally listing
specific parent device instances.

See:

    http://mail-index.netbsd.org/tech-kern/2002/09/25/0014.html

...for a detailed description.

While here, const poison some things, as suggested by Matt Thomas.
2002-09-26 04:07:35 +00:00
dbj df3f757254 add mkdevsw.o to OBJS 2002-09-22 06:22:50 +00:00
enami 78948a7123 Salvage pre-devsw config support so that one can config such as other
branch's kernel.
2002-09-11 06:20:09 +00:00
junyoung b255e80b6f Make this compile. 2002-09-06 13:59:09 +00:00
gehenna 77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
ross 6a36d10f0d Revise handling of pathnames and quoted strings. Previously, some
filenames had to be unquoted and also had to contain a / or .,
while others had to have no / and no . or be quoted, whereas
arbitrary machine symbols could always be optionally quoted,
which was kind of backwards.

Now, all filesnames use the same rules: quoted, or with a / or .
Arbitrary words can no longer be quoted unless the grammar specifically
allows it, which it now does for filenames, locator values, locator
defaults, compile-with, ident, makeoptions, and options.

Also, locator name symbols can be quoted, so mac68k's "no drq" locator
still works. ("no drq" doesn't appear in any machine description so I
presume it's just for the dmesg. )
2002-06-22 02:09:12 +00:00
ross 5ac0b7aefd Return new terminal QSTRING for quoted strings, instead of the
usual symbol name type WORD; quoted strings can now only be used
where they appear in the (revised) grammar. See gram.y 1.34.
2002-06-22 02:04:28 +00:00
lukem 90028da4e1 Functionality improvements:
- Add `no' keyword, which can be used in the following ways:
	no file-system SOMEFS
	no makeoptions FOO
	no options OPT1[,OPT2[,...]]
	no pseudo-device somepseudo
  This turns off a previous file-system/makeoptions/options/pseudo-device
  entry for the same item.
  Grammar support for 'no device DEV at ATTACH' added, but not
  implemented yet.

Code changes:
- Convert many simple lists to TAILQs
- Convert prefix to SLIST
- Remove argument names from prototypes.
- Don't bother with custom alloc code for hashtables; just use emalloc()
  like everything else.
- Implement ht_remove(), to remove an entry from a hash table.
  Add removed entries to a freelist for later reuse.
- Don't selectbase() devices and pseudo-devices at definition time; instead
  do it at one pass after the config file has been parsed in fixdevis().
- Rename nvhead to nvfreelist; a more apt name...
- Minor code cleanups.
2002-06-05 10:56:17 +00:00
pk 5f8328c032 Serialize gram.y -> gram.[ch] transformation. 2002-03-05 15:00:07 +00:00
atatat 714a76fd97 Avoid needlessly recreating the Makefile, ioconf.c, or any of the
swap*.c files if they haven't changed from the last time config was
run, so that less stuff will need to be rebuilt (ie, assym.h, upon
which many other things depend) each time config is rerun.
2002-02-12 23:20:11 +00:00
tv 9fbd88883c Roll in fixes to permit cross-compiling from non-NetBSD hosts. This
round has been tested on Solaris/x86 and Linux hosts.

* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
  sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
2002-01-31 22:43:33 +00:00
tv a328e34106 Make almost all tools compile and run properly on non-NetBSD hosts. (In
particular, most tools now run correctly on Solaris 7.)
2002-01-29 10:20:28 +00:00
wiz c43de8bde2 Include err.h for err(3) prototype. 2002-01-19 17:07:51 +00:00
mjl 7ea8665c72 Catch open failure and exit with error instead of crashing. 2002-01-19 06:10:13 +00:00
thorpej e6d41917cc Newlines in string literals are not supported by ANSI C, and some
preprocessors complain bitterly when they are encountered.

For now, terminate all lines with \n (and make each line its own
string literal).  The author of this code can figure out how to
do the sed trick another way.
2001-12-23 22:41:27 +00:00
atatat 65ace4b729 Properly use $TMPDIR or /tmp for the temporary config file stuff,
instead of ".".  Read-only source trees are "good".
2001-12-21 19:09:43 +00:00
atatat eb0a09d704 Teach config how to store the config in a .h file such that it can be
embedded in the resulting kernel binary.
2001-12-17 15:39:43 +00:00
wiz 2f3bcd9810 Comment out now-empty .Rs/.Re. 2001-12-14 12:32:50 +00:00
gmcgarry 367be6a153 Sprinkle around the term "machine description file", since this is
the term used in config(9), autoconf(9) and in Torek's paper.

Also remove (comment out) reference to the 4.4BSD config docs,
since they are not installed in usr/share/doc/smm/02.config and
possibly aren't relevant any longer.  From comments made on
tech-kern by jhawk and tls.
2001-12-13 19:47:19 +00:00
atatat 6dce2e2bec Make the kernel depend on `vers.o' instead of `newvers'. This
eliminates the need to unconditionally rebuild vers.o and subsequently
to relink the kernel every time you type make, even if you just
finished one.
2001-12-09 16:04:03 +00:00
wiz 6a71504b07 Add a ',' between two Xrefs. 2001-12-06 10:57:20 +00:00
atatat 42e4429bad Since defopt has been totally eradicated from the tree and is
considered "bad form", let's tell people they shouldn't use it.
2001-12-05 23:42:37 +00:00
jhawk 22fc75e3b6 Xr config.9 2001-12-05 20:58:04 +00:00
atatat 73aae2a161 Stuff the target names (the kernel names) into a make variable so that
ports that build "alternate" versions of the same target can clean up
properly.
2001-12-04 17:53:40 +00:00
lukem 0e59a7f124 revert previous revert previous. now back to rev 1.27 behaviour:
- Don't bother emitting "#define NFOO 0" for defflag foo (whether or
  not "options FOO" was given); it's really useful as is.

  Until I recently started converting stuff from defopt to defflag,
  nothing used defflag, and because defopt doesn't provide NFOO for FOO,
  the NFOO behaviour shouldn't be missed. The NFOO stuff also added
  a lot of #define namespace pollution that we'd rather avoid.

- Remove a couple of unused vars
2001-11-28 09:02:16 +00:00
lukem 7b844b40dc ensure that enabled defflag options get a default value of "1" too 2001-11-28 05:03:31 +00:00
lukem 49379a0a84 revert previous (instead i'll work out why defflag isn't DTRT with Nxxx) 2001-11-28 03:23:35 +00:00
lukem cbe4dece17 - Don't bother emitting "#define NFOO 0" for defflag foo (whether or
not foo was provided); it's unnecessary #define namespace pollution
- Remove a couple of unused vars
2001-11-28 02:47:42 +00:00
atatat 3b7ac0bb5f Stuff the "swapxxx.o" object name into a make variable that can be
used in build rules.
2001-11-27 14:04:05 +00:00
thorpej b2cb6c26ef Don't set TARGET_MACHINE, set MACHINE, instead. MACHINE is consistent
with what other Makefiles use, and as a result, make cross-compiling
kernels a little easier.
2001-10-23 18:56:42 +00:00
tv 47ab6193ba Make this a little more portable to other NetBSD versions without
MAKE_BOOTSTRAP -- use our hand-rolled [gs]etprogname() at all times (er,
actually, the single time we need it...).
2001-10-02 21:31:01 +00:00
simonb c6d44b5eb4 ANSIfy the output of config(8). 2001-10-01 04:22:00 +00:00
tv 6042281606 Don't override the definition of LEX. 2001-09-25 01:40:09 +00:00
enami 54d0f0cc4b Fix off-by-one error; root on sd0i shoule be rejected if maxpartition is 8. 2001-09-11 05:11:59 +00:00
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