freebsd with flexible iflib nic queues
Go to file
Bruce Evans 123e5d3dae Rearranged the the optimizations for special cases to reduce the average
number of branches.

Use a non-bogus magic constant for the threshold of pi/4.  It was 2 ulps
smaller than pi/4 rounded down, but its value is not critical so it should
be the result of natural rounding.  Use "<=" comparisons with rounded-
down thresholds for all small multiples of pi/4.

Cleaned up previous commit:
- use static const variables instead of expressions for multiples of pi/2
  to ensure that they are evaluated at compile time.  gcc currently
  evaluates them at compile time but C99 compilers are not required
  to do so.  We want compile time evaluation for optimization and don't
  care about side effects.
- use M_PI_2 instead of a magic constant for pi/2.  We need magic constants
  related to pi/2 elsewhere but not here since we just want pi/2 rounded
  to double and even prefer it to be rounded in the default rounding mode.
  We can depend on the cmpiler being C99ish enough to round M_PI_2 correctly
  just as much as we depended on it handling hex constants correctly.  This
  also fixes a harmless rounding error in the hex constant.
- keep using expressions n*<value for pi/2> in the initializers for the
  static const variables.  2*M_PI_2 and 4*M_PI_2 are obviously rounded in
  the same way as the corresponding infinite precision expressions for
  multiples of pi/2, and 3*M_PI_2 happens to be rounded like this, so we
  don't need magic constants for the multiples.
- fixed and/or updated some comments.
2005-11-17 02:20:04 +00:00
bin Having three options (-a, -A, -I) controlling the output of dotted 2005-11-16 07:13:37 +00:00
contrib Unbreak on amd64. 2005-11-16 12:33:04 +00:00
crypto Correct a man-in-the-middle SSL version rollback vulnerability. 2005-10-11 11:50:36 +00:00
etc Avoid invoking the current script again when we need 2005-11-16 10:45:19 +00:00
games Add /dev/speaker support to amd64. 2005-11-11 09:57:32 +00:00
gnu Suggest the user to use 'diff -urN' instead of 'diff -crN'. 2005-11-03 03:49:57 +00:00
include Since speaker.h now lives in sys/dev/speaker, reflect this fact here. 2005-11-11 16:48:01 +00:00
kerberos5 Apply the .PHONY attribute to the ../make*/make* targets. This 2005-11-10 21:03:58 +00:00
lib Rearranged the the optimizations for special cases to reduce the average 2005-11-17 02:20:04 +00:00
libexec Fix a bug in dlinfo(RTLD_DI_SERINFOSIZE) requests. For each search path 2005-11-11 19:57:41 +00:00
release em(4) works on all archs now, so this can be removed. 2005-11-09 22:05:41 +00:00
rescue Respect the YES_HESIOD build variable. 2005-08-06 16:53:55 +00:00
sbin Do not pass noauto to nmount() or external mount program. 2005-11-16 02:13:27 +00:00
secure Update for OpenSSH 4.2p1. 2005-09-03 07:10:33 +00:00
share Xref ng_ether(4) and ng_iface(4) nodes, which are used in examples. 2005-11-16 14:08:17 +00:00
sys Make the elf wrapper work with recent kernel.debug changes. 2005-11-17 01:32:01 +00:00
tools Add geometry of SiliconSystems 4GB CF card 2005-11-15 18:48:52 +00:00
usr.bin Sync as close as possible with NetBSD. 2005-11-16 11:03:00 +00:00
usr.sbin Convert mount_smbfs to use nmount(). 2005-11-16 02:47:12 +00:00
COPYRIGHT Complete 2005 transition. 2005-01-01 07:29:20 +00:00
LOCKS Document the previously existing RELENG_[45]_* security branch locks. 2005-06-02 22:57:30 +00:00
MAINTAINERS Note that bugmaster would like to review commits to send-pr. 2005-10-24 08:15:58 +00:00
Makefile Add delete-old and delete-old-libs targets: 2005-07-23 14:23:30 +00:00
Makefile.inc1 Speed up stale catpages hunting by not running sed(1) for every catpage. 2005-11-12 19:31:30 +00:00
ObsoleteFiles.inc Record renaming rc.d/ppp-user to rc.d/ppp. 2005-10-29 05:27:32 +00:00
README
UPDATING Record renaming rc.d/ppp-user to rc.d/ppp. 2005-10-29 05:27:32 +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.

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