freebsd with flexible iflib nic queues
Go to file
Jake Burkholder 2baa1ef450 Align the symbol that demarks the end of the signal code on a 16 byte
boundary.  It must be on at least an 8 byte boundary so that the length
of the signal code is a multiple of 8 (well aligned).  The size is used
in the calculation of the address of the argument and environment vectors
on the user stack; getting it wrong results in the string pointers being
misaligned and causes alignment faults in getenv() among other things.

Allocate a regular stack frame below the signal frame on the user stack
and join up the frame pointer to the previous frame.  This fixes longjmp-ing
out of signal handlers.  Longjmp traverses the stack upwards in order to
find the right frame to return to, so the frame pointers must join up
seamlessly.  I thought this would just work, but obviously the frame
needs to be below the signal frame, not above it like before.  Account
for the extra space in the signal code.

Preload pointers to interrupt data structures in interrupt globals.
This avoids the need to load the pointers from memory in the vectored
interrupt trap handler.

Transfer the first 2 out registers into td_retval in setregs.  We use
the same registers for system call arguments as return values, so these
registers got clobbered by the system call return values on return from
execve.  They now get clobbered by the right values.  We must put the values
in both the out registers in the trapframe and in td_retval because init
calls exec but fails to transfer the return value into the out registers.
This fixes a bug where the first exec after init would pass junk to the
c runtime, instead of a pointer to the argument strings.  A better solution
would be to return EJUSTRETURN on success from execve.

Adjust for change in pmap_bootstraps prototype.

Map the message buffer after the trap table is setup.  We will fault
on it immediately.
2001-10-20 16:36:08 +00:00
bin mdoc(7) police: join OS version with the corresponding macro. 2001-10-19 14:44:13 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r84865, 2001-10-13 01:47:52 +00:00
crypto Add __FBSDID() to diff-reduce with "base" telnet. 2001-10-01 16:04:55 +00:00
etc Do an ipf -y after bringing up ppp to ensure rules which mention ppp get 2001-10-20 04:46:32 +00:00
games Slightly improve wording in the opening paragraph. 2001-10-14 23:13:01 +00:00
gnu Make the logic more explicit. 2001-10-19 20:20:16 +00:00
include Fixed some style bugs: 2001-10-10 07:34:47 +00:00
kerberos5 also install roken-common.h 2001-10-05 04:56:37 +00:00
kerberosIV Diff reduce all the crypto telnet Makefiles. 2001-08-20 12:32:45 +00:00
lib Implement setjmp, longjmp, sigsetjmp and siglongjmp. 2001-10-20 15:19:08 +00:00
libexec The interface index space may be sparsely populated (e.g. when an 2001-10-17 04:12:29 +00:00
release Bring a few multi-architecture arch= attributes into the hardware 2001-10-19 20:56:31 +00:00
sbin include ipfs in subdirs 2001-10-20 04:27:45 +00:00
secure Add an ia64 configuration. This is not likely to be optimal, but does 2001-10-10 19:07:31 +00:00
share Add the ipfilter subdirectory 2001-10-20 04:18:13 +00:00
sys Align the symbol that demarks the end of the signal code on a 16 byte 2001-10-20 16:36:08 +00:00
tools Make a start at a regression test for the unaligned trap handler. 2001-10-19 22:10:13 +00:00
usr.bin Properly handle backslash newline within an identifier or keyword. 2001-10-19 19:10:36 +00:00
usr.sbin Remove the ``-c 22'' option from newfs command line. Changes in newfs(8) 2001-10-20 09:28:53 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile Make it possible to build manpages for the entire source tree. 2001-03-27 08:43:28 +00:00
Makefile.inc1 Fix cross-building, etc: 2001-09-29 13:17:54 +00:00
Makefile.upgrade $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
README Slightly improve the description of "crypto". "DES" is a subset of 2000-08-31 17:59:01 +00:00
UPDATING Add Soren's burncd warning. 2001-10-02 07:01:27 +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/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 have to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/i386/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.

kerberosIV	Kerberos 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/handbook/synching.html