freebsd kernel with SKQ
Go to file
adrian 8981e79fb5 Convert the aggregate descriptor path over to use the same API as
the non-aggregate path.

I "cheated" by using some TX setup code in our HAL that isn't present
in the atheros HAL (or Linux ath9k.)

The old path for forming aggregates was:

* setup the rate control in the first descriptor;
* call chaintxdesc() on all the frames;
* call setupfirsttxdesc() on the first descrpitor in the first
  frame;
* call setuplasttxdesc() on the last descriptor in the last frame.

The new path for forming aggregates looks like the non-aggregate path:

* call setuptxdesc() on the first descriptor in the first frame;
* setup the rate control in the first descriptor;
* call filltxdesc() on each descriptor in the frame;
* if it's an aggregate - call set11n_aggr_{first, middle, last} as
  appropriate (see the code for a description of what is "appropriate".)

Now, this is done primarily for the AR9300 HAL - it doesn't implement
the first set of aggregate functions.  It just has the older methods
and the "first/middle/last" aggregate methods.  So, let's convert the
code to use these.

Note: the AR5416 HAL in FreeBSD had that code (from me, a while ago)
and a previous commit brought it up to behave the same as the AR9300
HAL routines.

There's some further tidyups to be done - specifically, avoid doing
multiple calls to the 11n descriptor functions. I shouldn't call
clr11n_aggr(), then set11n_aggr_middle(), then also set11n_aggr_first().
On (at least MIPS) the TX descriptors are in non-cachable memory and
this will cause multiple slow writes.

I'll debug/tidy that up in a future commit.

Tested:

* AR9280, STA
* AR9280/AR9160, AP
* AR9380, STA (using a local, closed source HAL, sorry!)
2012-11-06 06:19:11 +00:00
bin sh: Change cmdtype in tblentry from short to signed char. 2012-11-05 17:52:18 +00:00
cddl Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
contrib MFV: less v453. 2012-11-04 20:52:26 +00:00
crypto openssl: change SHLIB_VERSION_NUMBER to reflect the reality 2012-09-11 06:10:49 +00:00
etc Change default prompt to show ~ again for the home directory 2012-11-04 01:00:35 +00:00
games Make OK_TO_WRITE_TO_DISK an envrionment variable instead 2012-11-04 15:15:47 +00:00
gnu For building GNU libstdc++ and libsupc++, filter out libc++-specific and 2012-10-23 18:57:20 +00:00
include Replace our version of the pwcache(3) API with NetBSD's implementation. 2012-10-19 12:44:22 +00:00
kerberos5 Add support for bmake. This includes: 2012-10-06 20:01:05 +00:00
lib Fix a few warnings from newer clang 3.2 in libpmc, about comparing enum 2012-11-05 18:49:21 +00:00
libexec rtld: Fix fd leak with parallel dlopen and fork/exec. 2012-11-04 21:42:24 +00:00
release Exclude potential circular symlink 2012-10-15 17:19:47 +00:00
rescue Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
sbin Revert r228695. We use __func__ here as a format to distinguish between 2012-11-05 00:38:14 +00:00
secure Upgrade OpenSSH to 6.1p1. 2012-09-03 16:51:41 +00:00
share Decode common state bits in getencstat output. 2012-11-06 01:29:26 +00:00
sys Convert the aggregate descriptor path over to use the same API as 2012-11-06 06:19:11 +00:00
tools Add a description of WITHOUT_CLANG_IS_CC. 2012-11-05 21:53:23 +00:00
usr.bin Fix build with clang: properly terminate comment even in #if 0 blocks. 2012-11-05 17:42:50 +00:00
usr.sbin Replace log(3) with flsll(3) for watchdogd(8) and drop libm dependency. 2012-11-03 18:38:28 +00:00
COPYRIGHT
LOCKS
MAINTAINERS Fix typo ('a' and 'o' are not the same letter apparently) 2012-10-22 14:48:14 +00:00
Makefile Add the buildLINT convenience target, handy for build automation. 2012-11-03 20:43:12 +00:00
Makefile.inc1 Add ATF to the build. This is may be a bit rought around the egdes, 2012-10-22 01:18:41 +00:00
ObsoleteFiles.inc Add more obsolete files. 2012-11-02 15:06:01 +00:00
README
UPDATING Fix a minor error in the clang update note. 2012-11-05 19:20:18 +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.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

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