PERFORCE change 47056 for review
Sam Leffler
sam at FreeBSD.org
Mon Feb 16 14:37:16 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=47056
Change 47056 by sam at sam_ebb on 2004/02/16 14:36:48
o add locking directives for 802.1x and radius client code
o add ALIGNED_POINTER definition
o add ieee80211_node_refcnt portability wrapper
o add get_random_bytes portability wrapper
Affected files ...
.. //depot/projects/netperf+sockets/sys/net80211/ieee80211_freebsd.h#5 edit
Differences ...
==== //depot/projects/netperf+sockets/sys/net80211/ieee80211_freebsd.h#5 (text+ko) ====
@@ -32,7 +32,7 @@
#define NBPFILTER 1 /* always enabled */
/*
- * Locking definitions.
+ * Node locking definitions.
*/
typedef struct mtx ieee80211_node_lock_t;
#define IEEE80211_NODE_LOCK_INIT(_ic, _name) \
@@ -41,8 +41,32 @@
#define IEEE80211_NODE_LOCK(_ic) mtx_lock(&(_ic)->ic_nodelock)
#define IEEE80211_NODE_UNLOCK(_ic) mtx_unlock(&(_ic)->ic_nodelock)
+/*
+ * 802.1x state locking definitions.
+ */
+typedef struct mtx eapol_node_lock_t;
+#define EAPOL_LOCK_INIT(_ec, _name) \
+ mtx_init(&(_ec)->ec_lock, _name, "802.1x node table", MTX_DEF)
+#define EAPOL_LOCK_DESTROY(_ec) mtx_destroy(&(_ec)->ec_lock)
+#define EAPOL_LOCK(_ec) mtx_lock(&(_ec)->ec_lock)
+#define EAPOL_UNLOCK(_ec) mtx_unlock(&(_ec)->ec_lock)
+#define EAPOL_LOCK_ASSERT(_ec) mtx_assert((_ec)->ec_lock, MTX_OWNED)
+
+/*
+ * Radius state locking definitions.
+ */
+typedef struct mtx radius_lock_t;
+#define RADIUS_LOCK_INIT(_rc, _name) \
+ mtx_init(&(_rc)->rc_lock, _name, "802.1x radius client", MTX_DEF)
+#define RADIUS_LOCK_DESTROY(_rc) mtx_destroy(&(_rc)->rc_lock)
+#define RADIUS_LOCK(_rc) mtx_lock(&(_rc)->rc_lock)
+#define RADIUS_UNLOCK(_rc) mtx_unlock(&(_rc)->rc_lock)
+#define RADIUS_LOCK_ASSERT(_rc) mtx_assert((_rc)->rc_lock, MTX_OWNED)
+
#define M_LINK0 M_PROTO1
#define ALTQ_DECL(_x)
+/* NB: this assumes the alignement is a pow2 */
+#define ALIGNED_POINTER(p,a) ((((uintptr_t)(p)) & ((a)-1)) == 0)
/*
* Node reference counting definitions:
@@ -52,10 +76,12 @@
* ieee80211_node_decref remove a reference
* ieee80211_node_dectestref remove a reference and return 1 if this
* is the last reference, otherwise 0
+ * ieee80211_node_refcnt reference count for printing (only)
*/
#define ieee80211_node_initref(_ni) ((_ni)->ni_refcnt = 1)
#define ieee80211_node_incref(_ni) atomic_add_int(&(_ni)->ni_refcnt,1)
#define ieee80211_node_decref(_ni) atomic_subtract_int(&(_ni)->ni_refcnt,1)
+#define ieee80211_node_refcnt(_ni) (_ni)->ni_refcnt
/* XXX handle circularity required by inline function */
#include <sys/malloc.h>
@@ -73,5 +99,6 @@
}
extern struct mbuf *ieee80211_getmgtframe(u_int8_t **frm, u_int pktlen);
+extern void get_random_bytes(void *data, u_int len);
#endif /* _NET80211_IEEE80211_FREEBSD_H_ */
More information about the p4-projects
mailing list