summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_freebsd.h
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-10-26 01:04:46 +0000
committersam <sam@FreeBSD.org>2008-10-26 01:04:46 +0000
commitdf1bd7956d87b2f4f2ebdc2a158213f0f9e4af63 (patch)
tree40c4aec4264205ea70874ded60169b7ccb7eca34 /sys/net80211/ieee80211_freebsd.h
parentee9b1738af3926a7f536906cb6e6a1431174522f (diff)
downloadFreeBSD-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.h41
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 { \
OpenPOWER on IntegriCloud