From owner-p4-projects@FreeBSD.ORG Mon Feb 16 14:37:16 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6D7CB16A4D0; Mon, 16 Feb 2004 14:37:16 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 492B816A4CE for ; Mon, 16 Feb 2004 14:37:16 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3064743D2D for ; Mon, 16 Feb 2004 14:37:16 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i1GMbGGe067200 for ; Mon, 16 Feb 2004 14:37:16 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i1GMbFEO067196 for perforce@freebsd.org; Mon, 16 Feb 2004 14:37:15 -0800 (PST) (envelope-from sam@freebsd.org) Date: Mon, 16 Feb 2004 14:37:15 -0800 (PST) Message-Id: <200402162237.i1GMbFEO067196@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 47056 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Feb 2004 22:37:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=47056 Change 47056 by sam@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 @@ -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_ */