diff options
author | adrian <adrian@FreeBSD.org> | 2011-11-08 21:49:33 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-11-08 21:49:33 +0000 |
commit | 65d79f5f4ca64ada7267e395270309b6dc342ca8 (patch) | |
tree | 95acdde85c56b6826b48afc3c52bb81ade900015 /sys/dev/ath/if_ath_misc.h | |
parent | 49cbf8b5e40871381fdef6d3da5c3512df7457f8 (diff) | |
download | FreeBSD-src-65d79f5f4ca64ada7267e395270309b6dc342ca8.zip FreeBSD-src-65d79f5f4ca64ada7267e395270309b6dc342ca8.tar.gz |
Refactor out the TX buffer management and completion code in
preparation for TX aggregation.
* Add in logic which calls ath_buf bf->bf_comp if it's set.
This allows for AMPDU (and RIFS, and FF, if someone desires) code
to handle completion - which includes freeing subframes, retransmitting
subframes, etc.
* Break out the buffer free, buffer busy/unbusy default completion handler
code into separate functions. This allows bf_comp methods to free and
unbusy each subframe ath_buf as required.
* Break out the statistics update code into a separate function, just
to clean up the TX completion path a little.
Sponsored by: Hobnob, Inc.
Diffstat (limited to 'sys/dev/ath/if_ath_misc.h')
-rw-r--r-- | sys/dev/ath/if_ath_misc.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h index 240e55e..6f2b2e6 100644 --- a/sys/dev/ath/if_ath_misc.h +++ b/sys/dev/ath/if_ath_misc.h @@ -54,7 +54,14 @@ extern struct ath_buf * ath_getbuf(struct ath_softc *sc); extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc); extern struct ath_buf * ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf); +extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); extern int ath_reset(struct ifnet *, ATH_RESET_TYPE); +extern void ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq); +extern void ath_tx_default_comp(struct ath_softc *sc, struct ath_buf *bf, + int fail); + +extern void ath_tx_freebuf(struct ath_softc *sc, struct ath_buf *bf, + int status); #endif |