FreeBSD src
Go to file
John Baldwin 4ef60d2686 Add support for multiple passes of the device tree during the boot-time
probe.  The current device order is unchanged.  This commit just adds the
infrastructure and ABI changes so that it is easier to merge later changes
into 8.x.
- Driver attachments now have an associated pass level.  Attachments are
  not allowed to probe or attach to drivers until the system-wide pass level
  is >= the attachment's pass level.  By default driver attachments use the
  "last" pass level (BUS_PASS_DEFAULT).  Driver's that wish to probe during
  an earlier pass use EARLY_DRIVER_MODULE() instead of DRIVER_MODULE() which
  accepts the pass level as an additional parameter.
- A new method BUS_NEW_PASS has been added to the bus interface.  This
  method is invoked when the system-wide pass level is changed to kick off
  a rescan of the device tree so that drivers that have just been made
  "eligible" can probe and attach.
- The bus_generic_new_pass() function provides a default implementation of
  BUS_NEW_PASS().  It first allows drivers that were just made eligible for
  this pass to identify new child devices.  Then it propogates the rescan to
  child devices that already have an attached driver by invoking their
  BUS_NEW_PASS() method.  It also reprobes devices without a driver.
- BUS_PROBE_NOMATCH() is only invoked for devices that do not have
  an attached driver after being scanned during the final pass.
- The bus_set_pass() function is used during boot to raise the pass level.
  Currently it is only called once during root_bus_configure() to raise
  the pass level to BUS_PASS_DEFAULT.  This has the effect of probing all
  devices in a single pass identical to previous behavior.

Reviewed by:	imp
Approved by:	re (kib)
2009-06-09 14:26:23 +00:00
bin Mention the range for the exit status for the exit special builtin. 2009-06-07 15:04:43 +00:00
cddl Fix lockstat breakage to arm/powerpc buildworld. 2009-05-27 22:41:28 +00:00
contrib - Add missing data argument to printf. 2009-06-01 09:25:32 +00:00
crypto Upgrade to OpenSSH 5.2p1. 2009-05-22 18:46:28 +00:00
etc Welcome to a default installed /etc/ntp.conf 2009-06-07 13:26:57 +00:00
games Misc fixed to fortunes 2009-06-05 07:57:10 +00:00
gnu Change the internal buffer used to store input lines from a static buffer 2009-05-08 02:18:46 +00:00
include Delete the old USB stack. The new stack has settled in and has all the 2009-05-27 16:16:56 +00:00
kerberos5 Add strndup(3) prototype to string.h. 2008-12-08 21:04:24 +00:00
lib Revert r181651, which changed the ABI, and use a temp variable instead. 2009-06-09 12:32:10 +00:00
libexec Increase the size of the static TLS area slightly (required for the NVidia's 2009-05-27 18:54:31 +00:00
release nge(4) should work on all archs now. 2009-05-21 10:04:51 +00:00
rescue Add zfs/zpool to rescue programs 2009-05-23 00:47:23 +00:00
sbin Fix an off by one error when we limit append/prepend text sizes based on our 2009-06-08 21:42:30 +00:00
secure Upgrade to OpenSSH 5.2p1. 2009-05-22 18:46:28 +00:00
share Add support for multiple passes of the device tree during the boot-time 2009-06-09 14:26:23 +00:00
sys Add support for multiple passes of the device tree during the boot-time 2009-06-09 14:26:23 +00:00
tools Check that flopen() can lock against self and that children inherit the lock. 2009-06-06 19:07:15 +00:00
usr.bin Fix bug in zphys offset calculation I introduced while retyping 2009-06-09 04:09:31 +00:00
usr.sbin Get the other NG_PATHLEN while I'm here too :(. 2009-06-09 05:24:06 +00:00
COPYRIGHT Vendor import of BIND 9.6.1rc1 2009-05-31 00:11:36 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS Replace anholt with myself as drm maintainer. 2009-03-20 18:51:13 +00:00
Makefile Add a new world named 'mips' to our universe. 2009-04-01 17:11:50 +00:00
Makefile.inc1 Revert c190007 at the request of Ruslan. It was not correct because 2009-04-05 00:24:49 +00:00
ObsoleteFiles.inc Remove clists from the kernel. 2009-06-05 15:31:38 +00:00
README Vendor import of BIND 9.6.1rc1 2009-05-31 00:11:36 +00:00
UPDATING Introduce an infrastructure for dismantling vnet instances. 2009-06-08 17:15:40 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html