History log of /freebsd-10.1-release/usr.sbin/config/config.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 264325 10-Apr-2014 asomers

MFC r263429

Fix kern/187712: config(8) does not respect KERNCONFDIR.
The impact of this bug is that you cannot build a kernel if both of the
following are true:
1) The kernel config file is in a non-default location
2) The kernel config file uses the "include" statement from config(5).

usr.sbin/config/main.c
usr.sbin/config/config.8
usr.sbin/config/config.h
usr.sbin/config/lang.l
Added a "-I path" option to config(8). By analogy to cc(1), it adds
an extra path in which the "include" statement will search for
files.

Makefile.inc1
Pass "-I ${KERNCONFDIR}" to config(8).


# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 235789 22-May-2012 bapt

Fix world after byacc import:
- old yacc(1) use to magicially append stdlib.h, while new one don't
- new yacc(1) do declare yyparse by itself, fix redundant declaration of
'yyparse'

Approved by: des (mentor)


# 219819 21-Mar-2011 jeff

- Merge changes to the base system to support OFED. These include
a wider arg2 for sysctl, updates to vlan code, IFT_INFINIBAND,
and other miscellaneous small features.


# 207260 27-Apr-2010 imp

Move checking the version up from Makefile generation to just after
we've parsed the config file. Makefile generation is too late if
we've introduce changes to the syntax of the metafiles to warn about
version skew, since we have to try to parse them and we get an parse
error that's rather baffling to the user rather than a 'your config is
too old, upgrade' which we should get.

We have to defer doing it until after we've read the user's config
file because we define machinename there. The version required to
compile the kernel is encoded in Makefile.machinename. There's no
real reason for this to be the case, but changing it now would
introduce some logistical issues that I'd rather avoid for the moment.
I intend to revisit this if we're still using config in FreeBSD 10.

This also means that we cannot introduce any config metafile changes
that result in a syntax error or other error for the user until 9.0 is
released. Otherwise, we break the upgrade path, or at least reduce
the usefulness of the error messages we generate.

# This implies that the config file option mapping will need to be redone.

MFC after: 3 days


# 206664 15-Apr-2010 imp

Allow option aliasing. Lines of the form:

OLD_OPT = NEW_OPT

in options* files will now map OLD_OPT to NEW_OPT with a friendly
message. This is indented for situations where we need to preserve an
interface in the config file in an upwards compatible fashion on a
stable branch.

Reviewed by: nwhitehorn@
MFC after: 3 days


# 185186 22-Nov-2008 thompsa

Allow multiple makeoption lines to be used with the += operator, this permits
the following syntax in the kernel config.

makeoptions MODULES_OVERRIDE=foo
makeoptions MODULES_OVERRIDE+=bar
makeoptions MODULES_OVERRIDE+=baz

Bump config minor version to 600007.


# 169647 17-May-2007 imp

Fix some problems that affect multiple file inclusion. Bruce found
this bug and submitted these patches to dunstan@. He sent them to me
to test, and I discovered they were needed for the atmel kernel config
files. Since we were playing with them in the terminal room after the
developer's summit today, I thought I'd go ahead and commit them to
allow those folks that now have atmel hardware (thanks Andre) a chance
to try it out w/o my help. Since dunstan@ is asleep right now, risk
stepping on his toes a little by going ahead and committing this
change.

Submitted by: dunstan@, bde@
Tested by: bde@


# 169507 12-May-2007 wkoszek

Improve INCLUDE_CONFIG_FILE support.

This change will let us to have full configuration of a running kernel
available in sysctl:

sysctl -b kern.conftxt

The same configuration is also contained within the kernel image. It can be
obtained with:

config -x <kernelfile>

Current functionality lets you to quickly recover kernel configuration, by
simply redirecting output from commands presented above and starting kernel
build procedure. "include" statements are also honored, which means options
and devices from included files are also included.

Please note that comments from configuration files are not preserved by
default. In order to preserve them, you can use -C flag for config(8). This
will bring configuration file and included files literally; however,
redirection to a file no longer works directly.

This commit was followed by discussion, that took place on freebsd-current@.
For more details, look here:

http://lists.freebsd.org/pipermail/freebsd-current/2007-March/069994.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-May/071844.html

Development of this patch took place in Perforce, hierarchy:

//depot/user/wkoszek/wkoszek_kconftxt/

Support from: freebsd-current@ (links above)
Reviewed by: imp@
Approved by: imp@


# 163638 23-Oct-2006 imp

End my resistance to jmg's multiple hints files and bring in support
for having multiple hints files generate a correct hints.c (eg, with
all the specified ones catenated together).


# 153888 30-Dec-2005 ru

Clean up most of the "XXX"-tagged items:

- The code that creates hints.c and env.c from the skeleton files
moved into separate functions.

- Sanity checks for missing "ident" and "cputype" directives moved
into main(), alongside the existing check for "machine".

PR: bin/90310
Submitted by: Matt Emmerton <matt@gsicomp.on.ca>


# 152811 25-Nov-2005 ru

Clean some code that became obfuscated over the years:
Don't keep duplicate files in the files list just to
mark the device as "known" later. XXX: Since the
device list isn't unique (there can be two "device foo"
directives, as this the case with LINT+DEFAULTS), we
have to traverse it all to mark all copies of the same
device as "used", but this is not worse than it was.


# 151744 27-Oct-2005 jhb

Optionally include a DEFAULTS config file if it is present in the current
directory before the specified config file. This is implemented by
opening DEFAULTS as stdin if it exists, and if so resetting stdin to the
actual config file when DEFAULTS is fully parsed via yywrap(). In short,
this lets us create DEFAULTS kernel configs in /sys/<arch>/conf that can
enable certain options or devices by default and allow users to disable
them via 'nooptions' or 'nodevice' rather than having to create kludge
NO_FOO options.

Requested by: scottl
Reviewed by: scottl


# 144509 01-Apr-2005 imp

Allow one to specify a second parameter to the machine line. This
allows us to specify the machine_arch as well as machine. If
specified then a second link will be made, similar to machine, from
$MACHINE_ARCH to $S/$MACHINE_ARCH/include.

This is for ports where MACHINE != MACHINE_ARCH (pc98 today, others in
the future?).

Reviewed by: arch@, nyan@


# 134542 30-Aug-2004 peter

Kill count device support from config. I've changed the last few
remaining consumers to have the count passed as an option. This is
i4b, pc98/wdc, and coda.

Bump configvers.h from 500013 to 600000.

Remove heuristics that tried to parse "device ed5" as 5 units of the ed
device. This broke things like the snd_emu10k1 device, which required
quotes to make it parse right. The no-longer-needed quotes have been
removed from NOTES, GENERIC etc. eg, I've removed the quotes from:
device snd_maestro
device "snd_maestro3"
device snd_mss

I believe everything will still compile and work after this.


# 133248 07-Aug-2004 imp

Per letter dated July 22, 1999, delete clause 3 from code directly
from Berkeley.


# 129073 09-May-2004 cognet

Add a new "files" directive, which allows to include a files.foo file directly
from a kernel config file.
Bump config version to reflect this change.


# 110895 15-Feb-2003 ru

Convert to using <sys/queue.h> macros.


# 91002 20-Feb-2002 peter

Commit some infrastructure for turning on -Werror for kernel compiles.
It doesn't actually do it yet though. This adds a flag to config so
that we can exclude certain vendor files from this even when the rest
of the kernel has it on. make -DNO_WERROR would also bypass all of it.


# 82393 27-Aug-2001 peter

Enable hardwiring of things like tunables from embedded enironments
that do not start from loader(8).


# 79607 12-Jul-2001 dd

Introduce an "include" directive. It takes one argument, a filename
to be included into this one. This works the same way as #include
does in C; as far as the user is concerned, the included file is
inlined into the current one.

Since config(8) is no longer limited to working on one user-supplied
file, printing just a line number in an error message is not
sufficient. The new global variable yyfile represents the file
currently being parsed, and must be printed as well.

Reviewed by: imp
Obtained from: OpenBSD


# 73206 28-Feb-2001 peter

newbus_ioconf() is long gone


# 73204 28-Feb-2001 peter

Some more tidying up. we dont use config-dependent anyware. Eliminate
some duplicate code (cut/paste bug?). tidy up some other minor stuff.


# 73199 28-Feb-2001 peter

s/special/compilewith/ (so I stop confusing myself) and GC an unused
function I missed before.


# 72841 22-Feb-2001 peter

Collect together a handful of copies of the option generator code into a
single newopt(char *name, char *value) function. Change newdev() to
do the same thing rather than depending on the evil 'cur' device hack.


# 72684 19-Feb-2001 peter

${BDECFLAGS} work. And fix a real error in the process. A "MAXUSERS"
string could have been passed to free(); There are some warnings here
I am not sure how to fix as they are in the lex scanner code, etc.


# 72000 04-Feb-2001 peter

Remove the need to list each and every cpu platform. Config will now
take your word for the 'machine' switch.


# 71879 31-Jan-2001 peter

Unwind a bit more cruft - we only have one type of device now.


# 71866 31-Jan-2001 peter

Redo the stray header file cleanup code to not depend on timestamps
or access times or anything. Just bite the bullet and keep a list of
header files that we know about.


# 71374 22-Jan-2001 benno

Add support for configuring PowerPC kernels.

Reviewed by: peter


# 66457 29-Sep-2000 dfr

Add ia64 support.


# 65091 25-Aug-2000 peter

If a ${KERNEL}.hints file exists, and no hints are specified explicitly,
then include the hints with a marker indicating that it is a fallback.
The kernel side of this is to come shortly.


# 61640 13-Jun-2000 peter

Borrow phk's axe and apply the next stage of config(8)'s evolution.

Use Warner Losh's "hint" driver to decode ascii strings to fill the
resource table at boot time.

config(8) no longer generates an ioconf.c table - ie: the configuration
no longer has to be compiled into the kernel. You can reconfigure your
isa devices with the likes of this at loader(8) time:
set hint.ed.0.port=0x320

userconfig will be rewritten to use this style interface one day and will
move to /boot/userconfig.4th or something like that.

It is still possible to statically compile in a set of hints into a kernel
if you do not wish to use loader(8). See the "hints" directive in GENERIC
as an example.

All device wiring has been moved out of config(8). There is a set of
helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98)
that extract the 'at isa? port foo irq bar' from the old files and produces
a hints file. If you install this file as /boot/device.hints (and update
/boot/defaults/loader.conf - You can do a build/install in sys/boot) then
loader will load it automatically for you. You can also compile in the
hints directly with: hints "device.hints" as well.

There are a few things that I'm not too happy with yet. Under this scheme,
things like LINT would no longer be useful as "documentation" of settings.
I have renamed this file to 'NOTES' and stored the example hints strings
in it. However... this is not something that config(8) understands, so
there is a script that extracts the build-specific data from the
documentation file (NOTES) to produce a LINT that can be config'ed and
built. A stack of man4 pages will need updating. :-/

Also, since there is no longer a difference between 'device' and
'pseudo-device' I collapsed the two together, and the resulting 'device'
takes a 'number of units' for devices that still have it statically
allocated. eg: 'device fe 4' will compile the fe driver with NFE set
to 4. You can then set hints for 4 units (0 - 3). Also note that
'device fe0' will be interpreted as "zero units of 'fe'" which would be
bad, so there is a config warning for this. This is only needed for
old drivers that still have static limits on numbers of units.
All the statically limited drivers that I could find were marked.

Please exercise EXTREME CAUTION when transitioning!

Moral support by: phk, msmith, dfr, asmodai, imp, and others


# 61523 10-Jun-2000 peter

A checkpoint of a part of a work-in-progress. Some more cleanups for
config(8). This commit allows control of the creation of the
#include "foo.h" files. We now only create them explicitly when needed.
BTW; these are mostly bad because they usually imply static limits on
numbers of units for devices. eg: struct mysoftc sc[NFOO];
These static limits have Got To Go.


# 56869 29-Jan-2000 peter

Mark the 'conflicts' keyword as obsolete, and don't generate (unused)
resource table entries for it.


# 56471 23-Jan-2000 peter

Remove the cam-specific device wiring code. This was a duplicate of
the data in the resource tables, and cam is getting it directly now.


# 55605 08-Jan-2000 peter

Apply the axe to some more cruft in config(8). In particular:
- redo the "at" configuration system so that it just syntax checks
to make sure the device you're configuring something "at" appears to
exist. Nuke a bunch of complexity that was responsible for creating
"clones" of wildcard devices and some wierd stuff in a few places
including the scbus config tables etc.
- merge "controller" and "device" - there is no difference as far as
the kernel is concernend, it's just something there to make life
difficult for config file writers. "controller" is now an alias for
"device".
- emit full scsi config into the resource tables. We could trivially
change cam to use that rather than it's own "special" table for wiring
and static configuration. ATA could use this too for static wiring.
- try and emulate some of the quirks of the old system where it made
sense. Some were too strange though and I'd be very suprised if they
were features and not outright bugs. nexus handling is still strange.
One thing in particular is that some of the wierd entries in the
newbus devtables is now gone as it was a quirk side effect of the
wildcard/question-mark cloning above.

GENERIC and LINT still build etc.


# 54490 12-Dec-1999 peter

Add a 'warning' option for the files* files. This is intended to enable
giving a dire warning about certain drivers going away in the future.


# 53047 09-Nov-1999 peter

Re-support "tape" as an alias for device and clean up a bit more cruft
left over from the original system (d_dk was for preassigned iostat unit
numbers for disks)


# 52653 30-Oct-1999 marcel

Add option "-d destdir" which instructs config to use another output
directory than the default one. If the option is not given, then the
output of config is exactly as before. Only when an alternate output
directory has been specified will config modify its behavior.

Additional changed:
o Remove the now conflicting and unused NODEV define. It
conflicts with NODEV in sys/param.h.
o Rename the now conflicting MACHINE token to ARCH. It
conflicts with MACHINE in sys/param.h.
o Fix some easy style bugs.
o Fix some easy grammar bugs in the manpage.

Approved by: peter, archie


# 52098 10-Oct-1999 peter

Further cleanup. Also remove the following unused or defunct tokens:
and, bio, cam, master, minor, net, priority, sequential, size, slave, trace


# 48525 03-Jul-1999 peter

Delete special handling for 'device-driver' suffix, it's not used in
the kernel source now.


# 46821 09-May-1999 peter

Put on my viking helmet from the closet, and get out the war axe and
"retire" some more stuff.


# 46817 09-May-1999 peter

We don't have composite devices here either.


# 46815 09-May-1999 phk

config(8) lobotomy, please see commit msg in sys.

(I have no idea why cvs didn't take these changes before.)


# 46021 24-Apr-1999 peter

More cleanups, tweaks and features.
- make this work: options FOO123=456 *without quotes*
- grumble (but accept) vector xxxintr, and tty/net/bio/cam flags.
- complain if a device is specified twice (eg: 2 x psm0)
- don't require quotes around: port IO_COM2
- recognize negative numbers. (ie: options CAM_DEBUG_UNIT=-1)
- GC some more unused stuff (we don't have composite disks from config(8)).
- various other nits (snprintf paranoia etc)


# 45775 18-Apr-1999 peter

Further cleanups. i386_ioconf.c and alpha_ioconf.c were essentially the
same and were merged into a single newbus_ioconf.c. CG'd some more unused
code.


# 45744 17-Apr-1999 peter

Get out the blow torch and hack away all the unused stuff. Note that
I zapped the MACHINE_MIPS stuff, it isn't likely to be useful apart from
recognition of the machine name. It would be reasonable to expect new
ports would look something like the alpha/i386 from a config perspective.


# 38782 03-Sep-1998 nsouch

Reviewed by: Doug Rabson
Submitted by: nsouch
'local' token added to support new bus architecture .c files generated
by .m files.


# 36813 09-Jun-1998 dfr

Add (mostly stub) alpha support. Incidentally, it doesn't build on stable
unless I manually construct y.tab.h. Is this normal?


# 35609 01-May-1998 kato

Support PC-98 machine.


# 33598 18-Feb-1998 eivind

Style police service brought to you by: bde


# 33538 18-Feb-1998 eivind

Make '-n' the default, and introduce a new flag '-r' to get old
behaviour. Also indicate which option(s) are unknown if there are any
old-style options.


# 30796 28-Oct-1997 joerg

Allow for a keyword in the "files" file named "mandatory". The first
candidate for this is "npx0", more are likely to follow.

Check for pseudo-devices that are being configured, but don't appear
in any "files" file. The ``pseudo-device bpf 2'' already hit me too
often.


# 24333 27-Mar-1997 ache

Remove support for "port none" and "port auto", it gains nothing,
non-standard and not used. "port auto" is equal to "port?" or missing "port"
keyword now. "port none" is really probe routine task (return -1 for
no ports).


# 24287 26-Mar-1997 ache

Add #define's for port "none" and "auto"
Now port ommiting is equal to port "none" not to port 0


# 17744 21-Aug-1996 ache

Bugfix: all device counts >= 256 was broken, they truncated by % 255
because of u_char count field size. It hits when device
header file already present.


# 15257 13-Apr-1996 bde

Implemented a new keyword `disable'. This should be useful for controlling
dangerous drivers in GENERIC.

Removed non-comments on #endifs in config.y.

Improved output formatting in mkioconf.c.


# 13400 12-Jan-1996 peter

Make a little more effort to avoid touching certain generated files if
they were not changed. This makes 'make depend' more useful.


# 12772 11-Dec-1995 peter

Implement support for conf/options and i386/conf/options.i386
Note that this code is dormant unless the options files exist.
Also, parsing of quoted options in the config files is improved.

What this allows, is all the options in LINT to be specified to be
configured as #defines in a file rather than on the CC command line at
kernel build time. This means that 'make depend' will catch dependencies
on actual *options*, meaning that you can run 'config' and 'make depend'
in complete safety WITHOUT removing the compile directory each time.

Unfortunately, this requires a pass over the source to get the individual
files to #include the new .h files that would be generated by config.
This has a small compile time penalty (appears up to about 2% slower)
from a "fresh" build. Of course, you should not be needing to do complete
rebuilds very often once this was completed, so it would be an overall
win for most people.

Since this code is dormant and we've got a lot of other things happening
on the kernel tree at the moment (prototypes, devfs, static declarations
etc) I am not planning on doing any changes to activate this feature just
yet.


# 9370 29-Jun-1995 dg

Killed TIMEZONE, DST, and HZ keywords. They have generated a config error
for more than a year now. They've been replaced with userland methods for
changing (see adjkerntz).


# 8857 30-May-1995 rgrimes

Remove trailing whitespace.


# 8432 11-May-1995 jkh

Add a new `conflicts' flag for telling when a device is in conflict with
others. The flag can be put in descriptive locations, e.g.:

device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
or
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

But is nonetheless boolean only. You can't turn conflict checking off for
only a given type of conflict. I didn't deem it worth the trouble at this
stage, and it's far better than the ALLOW_CONFLICT_* that preceeded it.


# 6814 01-Mar-1995 dufault

Added configuration for SCSI devices wired in place. The documentation
is in "man 4 scsi".


# 6803 01-Mar-1995 gibbs

Implement "clean" entries for device config entries.

Submitted by: Pointed out by Bruce Evans <bde@zeta.org.au>


# 5325 31-Dec-1994 gibbs

Allow config to fully handle the aic7770 driver dependancies.


# 4571 17-Nov-1994 gibbs

Add new keywords to config. The options availible in file.i386 are now:

/*
* filename [ standard | optional ] [ config-dependent ]
* [ dev* | profiling-routine ] [ device-driver] [ no-obj ]
* [ compile-with "compile rule" [no-implicit-rule] ]
* [ dependancy "dependancy-list"]
*/

I added

no-obj - This entry does not create anything linkable to the kernel.
dependancy - Add additional dependancy rules to a target.
no-implicit-rule - Don't assume .c -> .o type rules. Config is really
dumb in this area and assumes that everything is a .c file
irregarless of extention. This was the best choice really
since there may even be .c file that you don't want to follow
the standard rules.

This was all done so that the building to the aic7770 assembler and using
the aic7770 assembler in the building of the aic7770 driver could be config
dependant. I can now have an entry like this for the driver:

aic7770 optional ahc device-driver \
compile-with "${CC} $> -o $@" \
dependancy "$S/gnu/misc/aic7770/aic7770.c" \
no-obj no-implicit-rule
aic7770_seq.h optional ahc device-driver \
compile-with "${.CURDIR}/aic7770 -o $@ $S/gnu/misc/aic7770/aic7770.seq"\
dependancy "$S/gnu/misc/aic7770/aic7770.seq aic7770" \
no-obj no-implicit-rule
i386/isa/aic7770.c optional ahc device-driver \
dependancy "aic7770_seq.h"

I also added '\' escaping to newlines so that this doesn't look as gross as
it could have.

Reviewed by: jkh


# 1566 26-May-1994 rgrimes

Upgrade config to be compatible with our i386 port, pull in 95% of the
changes that have been made in FreeBSD 1.x, except for possibly the nfs
diskless support this is a completed config.


# 1554 26-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1553,
which included commits to RCS files with non-trunk default branches.


# 1553 26-May-1994 rgrimes

BSD 4.4 Lite usr.sbin Sources