diff options
author | sam <sam@FreeBSD.org> | 2008-10-26 01:04:46 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2008-10-26 01:04:46 +0000 |
commit | df1bd7956d87b2f4f2ebdc2a158213f0f9e4af63 (patch) | |
tree | 40c4aec4264205ea70874ded60169b7ccb7eca34 /sys/net80211/ieee80211_freebsd.h | |
parent | ee9b1738af3926a7f536906cb6e6a1431174522f (diff) | |
download | FreeBSD-src-df1bd7956d87b2f4f2ebdc2a158213f0f9e4af63.zip FreeBSD-src-df1bd7956d87b2f4f2ebdc2a158213f0f9e4af63.tar.gz |
New ap-side power save implementation; the main change is to allow drivers
to queue frames previously encapsulated on a separate high priority list
that is dispatched before the unencapsulated frames (to preserve order).
Diffstat (limited to 'sys/net80211/ieee80211_freebsd.h')
-rw-r--r-- | sys/net80211/ieee80211_freebsd.h | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/sys/net80211/ieee80211_freebsd.h b/sys/net80211/ieee80211_freebsd.h index 1f1826f..aac997a 100644 --- a/sys/net80211/ieee80211_freebsd.h +++ b/sys/net80211/ieee80211_freebsd.h @@ -112,41 +112,14 @@ typedef struct { } while (0) /* - * Per-node power-save queue definitions. + * Power-save queue definitions. */ -#define IEEE80211_NODE_SAVEQ_INIT(_ni, _name) do { \ - mtx_init(&(_ni)->ni_savedq.ifq_mtx, _name, "802.11 ps queue", MTX_DEF);\ - (_ni)->ni_savedq.ifq_maxlen = IEEE80211_PS_MAX_QUEUE; \ -} while (0) -#define IEEE80211_NODE_SAVEQ_DESTROY(_ni) \ - mtx_destroy(&(_ni)->ni_savedq.ifq_mtx) -#define IEEE80211_NODE_SAVEQ_QLEN(_ni) \ - _IF_QLEN(&(_ni)->ni_savedq) -#define IEEE80211_NODE_SAVEQ_LOCK(_ni) do { \ - IF_LOCK(&(_ni)->ni_savedq); \ -} while (0) -#define IEEE80211_NODE_SAVEQ_UNLOCK(_ni) do { \ - IF_UNLOCK(&(_ni)->ni_savedq); \ -} while (0) -#define IEEE80211_NODE_SAVEQ_DEQUEUE(_ni, _m, _qlen) do { \ - IEEE80211_NODE_SAVEQ_LOCK(_ni); \ - _IF_DEQUEUE(&(_ni)->ni_savedq, _m); \ - (_qlen) = IEEE80211_NODE_SAVEQ_QLEN(_ni); \ - IEEE80211_NODE_SAVEQ_UNLOCK(_ni); \ -} while (0) -#define IEEE80211_NODE_SAVEQ_DRAIN(_ni, _qlen) do { \ - IEEE80211_NODE_SAVEQ_LOCK(_ni); \ - (_qlen) = IEEE80211_NODE_SAVEQ_QLEN(_ni); \ - _IF_DRAIN(&(_ni)->ni_savedq); \ - IEEE80211_NODE_SAVEQ_UNLOCK(_ni); \ -} while (0) -/* XXX could be optimized */ -#define _IEEE80211_NODE_SAVEQ_DEQUEUE_HEAD(_ni, _m) do { \ - _IF_DEQUEUE(&(_ni)->ni_savedq, m); \ -} while (0) -#define _IEEE80211_NODE_SAVEQ_ENQUEUE(_ni, _m, _qlen, _age) do {\ - _AGEQ_ENQUEUE(&ni->ni_savedq, _m, _qlen, _age); \ -} while (0) +typedef struct mtx ieee80211_psq_lock_t; +#define IEEE80211_PSQ_INIT(_psq, _name) \ + mtx_init(&(_psq)->psq_lock, _name, "802.11 ps q", MTX_DEF); +#define IEEE80211_PSQ_DESTROY(_psq) mtx_destroy(&(_psq)->psq_lock) +#define IEEE80211_PSQ_LOCK(_psq) mtx_lock(&(_psq)->psq_lock) +#define IEEE80211_PSQ_UNLOCK(_psq) mtx_unlock(&(_psq)->psq_lock) #ifndef IF_PREPEND_LIST #define _IF_PREPEND_LIST(ifq, mhead, mtail, mcount) do { \ |