freebsd with flexible iflib nic queues
Go to file
John Baldwin 401e7fff61 Revert previous untested revision. The i386 loader consists of three parts:
At the front is btxldr, in the middle is BTX itself (our mini-kernel), and
then the 'client' (loader.bin) which is the actual loader itself.  boot2
just executes a raw ELF or a.out binary with the only setup provided being
that a bootinfo structure is passed on the stack.  Now, since loader.bin
is a BTX client, the loader needs to be able to locate a BTX kernel for
the client to execute in the context.  Thus, just like pxelder, btxldr
uses the a.out header on the loader binary to find the BTX kernel stored
in the loader and set it up.  It does _not_ just reuse the BTX kernel
that boot2 invoked it with.  This is because it can't assume that it will
_have_ a "spare" BTX kernel lying around.  For example, when cdboot
loads the loader there isn't an existing BTX kernel.  In fact, cdboot
will only work with an a.out loader as well since it also "borrows" the
BTX kernel in the loader binary (which it finds by parsing the a.out
header) just as pxeldr does.  The only difference between cdboot and
pxeldr is where they get /boot/loader from.

If we wanted to make /boot/loader be an actual ELF binary we would need
to change the following utilites to handle that (and they all have to be
able to handle locating the BTX kernel inside of an ELF binary somehow):
- btxldr
- pxeldr
- cdboot

If we didn't want to require a flag day but make the transition smooth
then we need to be able to support both a.out and ELF versions of
/boot/loader which isn't exactly trivial since all three of these utilities
are written in assembly.

Pointy-hat to:	peter
2002-08-30 14:59:47 +00:00
bin Fix a warning of "possibly used before initialisation". 2002-08-29 14:29:09 +00:00
contrib Move the $FreeBSD$ CVS labels far enough away from the $Id$ CVS labels so 2002-08-28 18:12:33 +00:00
crypto Encrypted strings (after hex decoding) aren't null terminated, because 2002-08-22 06:19:07 +00:00
etc establish default values for /etc/rc.d/pcvt script 2002-08-30 13:01:42 +00:00
games Rewrite wargames(6) in C. A program in C in the public domain is better than 2002-08-30 07:14:42 +00:00
gnu Our gnats sets Confidential to "no" by default. 2002-08-29 22:59:22 +00:00
include Add time_t typedef for POSIX compatibility, move an include. 2002-08-24 00:11:52 +00:00
kerberos5 Bootstrapping aid for pre-getprogname(3) systems. 2002-08-13 16:52:52 +00:00
kerberosIV Drop support for COPY, -c has been the default mode of install(1) 2002-07-29 09:40:17 +00:00
lib Hopefully unbreak world. ke_slptime is gone. It should really have been 2002-08-30 02:18:38 +00:00
libexec Was mising ftpchroot.5 2002-08-30 06:50:08 +00:00
release New release note: XFree86-derived termcap(5) entry for xterm. 2002-08-30 02:56:24 +00:00
sbin Mention that fdisk(8) should be used to grow the containing slice 2002-08-29 08:12:09 +00:00
secure Use uint32_t' instead of unsigned long', since the code assumes 32-bit 2002-08-24 02:53:23 +00:00
share document options for integrating pcvt configuration into the new /etc/rc.d 2002-08-30 12:44:44 +00:00
sys Revert previous untested revision. The i386 loader consists of three parts: 2002-08-30 14:59:47 +00:00
tools Add regression tests for sysvipc. 2002-08-15 06:34:37 +00:00
usr.bin Add date of foundation of Federal Republic of Germany. 2002-08-29 00:26:26 +00:00
usr.sbin Add the new userland tool for manipulating extended attributes. 2002-08-30 08:53:03 +00:00
COPYRIGHT
MAINTAINERS
Makefile Indentation. 2002-07-20 10:01:00 +00:00
Makefile.inc1 Similar to bsd.subdir.mk, echo the name of the dir before 2002-08-23 12:49:16 +00:00
Makefile.upgrade
README Fix broken handbook links. 2002-07-21 16:45:30 +00:00
UPDATING Mention new termcap and TERM=xterm-color -> xterm issue. 2002-08-28 19:34:49 +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
``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.

kerberosIV	KerberosIV (eBones) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

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