freebsd with flexible iflib nic queues
Go to file
Bill Paul 433d61bb56 Add support for NdisMEthIndicateReceive() and MiniportTransferData().
The Ralink RT2500 driver uses this API instead of NdisMIndicateReceivePacket().

Drivers use NdisMEthIndicateReceive() when they know they support
802.3 media and expect to hand their packets only protocols that want
to deal with that particular media type. With this API, the driver does
not manage its own NDIS_PACKET/NDIS_BUFFER structures. Instead, it
lets bound protocols have a peek at the data, and then they supply
an NDIS_PACKET/NDIS_BUFFER combo to the miniport driver, into which
it copies the packet data.

Drivers use NdisMIndicateReceivePacket() to allow their packets to
be read by any protocol, not just those bound to 802.3 media devices.

To make this work, we need an internal pool of NDIS_PACKETS for
receives. Currently, we check to see if the driver exports a
MiniportTransferData() method in its characteristics structure,
and only allocate the pool for drivers that have this method.

This should allow the RT2500 driver to work correctly, though I
still have to fix ndiscvt(8) to parse its .inf file properly.

Also, change kern_ndis.c:ndis_halt_nic() to reap timers before
acquiring NDIS_LOCK(), since the reaping process might entail sleeping
briefly (and we can't sleep with a lock held).
2005-05-15 04:27:59 +00:00
bin Add an interface to the lchflags(2) syscall. The new -h option is 2005-05-14 23:23:10 +00:00
contrib NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 defines 2005-05-13 16:31:11 +00:00
crypto File removed in update from OpenSSL 0.9.7d -> 0.9.7e. 2005-02-25 06:22:30 +00:00
etc Add libdata/pkgconfig. It is used under ${LOCALBASE} as much (if not more) 2005-05-13 04:06:04 +00:00
games Remove duplicate and attribute Weinbergs second law to the right weinberg. 2005-05-13 15:51:56 +00:00
gnu Add a note explaining what local modifications have been made to GNU grep, 2005-05-14 06:33:23 +00:00
include Provide more POSIX-complaint ttyname_r(3) interface[1], which is slightly 2005-05-13 16:27:30 +00:00
kerberos5 Cope with the (unwise?) incompatible changes with make by adding 2005-04-18 22:03:21 +00:00
lib Submitted by: Jinmei Tatuya, Hajimu Umemoto 2005-05-14 19:43:10 +00:00
libexec NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 defines 2005-05-13 16:31:11 +00:00
release NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 defines 2005-05-13 16:31:11 +00:00
rescue Patches from Ruslam Ermilov to remove NetBSD bits from Makefiles and cleanup 2005-04-28 16:26:35 +00:00
sbin NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 defines 2005-05-13 16:31:11 +00:00
secure Update OpenSSL 0.9.7d -> 0.9.7e. 2005-02-25 06:04:12 +00:00
share - Document net.inet.carp.suppress_preempt MIB. 2005-05-15 01:58:32 +00:00
sys Add support for NdisMEthIndicateReceive() and MiniportTransferData(). 2005-05-15 04:27:59 +00:00
tools Catching up with the latest crypto API changes in net80211. 2005-05-05 13:16:30 +00:00
usr.bin Reindent and improve style(9) comformance. 2005-05-15 01:07:36 +00:00
usr.sbin Remove symblic link kernel->dev/null creation. We don't need it in 5.x/6.x 2005-05-14 18:54:58 +00:00
COPYRIGHT Complete 2005 transition. 2005-01-01 07:29:20 +00:00
MAINTAINERS Add myself as a maintainer of geom_shsec. 2005-03-13 15:30:01 +00:00
Makefile Repo-copy tools/regression/usr.bin/make to tools/build/make_check 2005-03-02 12:33:23 +00:00
Makefile.inc1 Remove lame and ineffectual attempt to fix ipf breakage of tenderbox. 2005-05-01 17:36:09 +00:00
README
UPDATING Remove reference to seedrandom, since it is now gone, and was in there 2005-05-09 16:44:22 +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