Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F151402010
D6419.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D6419.id.diff
View Options
Index: head/sys/net80211/ieee80211.c
===================================================================
--- head/sys/net80211/ieee80211.c
+++ head/sys/net80211/ieee80211.c
@@ -406,6 +406,17 @@
return (ic);
}
+void
+ieee80211_iterate_coms(ieee80211_com_iter_func *f, void *arg)
+{
+ struct ieee80211com *ic;
+
+ mtx_lock(&ic_list_mtx);
+ LIST_FOREACH(ic, &ic_head, ic_next)
+ (*f)(arg, ic);
+ mtx_unlock(&ic_list_mtx);
+}
+
/*
* Default reset method for use with the ioctl support. This
* method is invoked after any state change in the 802.11
Index: head/sys/net80211/ieee80211_ddb.c
===================================================================
--- head/sys/net80211/ieee80211_ddb.c
+++ head/sys/net80211/ieee80211_ddb.c
@@ -69,6 +69,8 @@
static void _db_show_com(const struct ieee80211com *,
int showvaps, int showsta, int showmesh, int showprocs);
+static void _db_show_all_vaps(void *, struct ieee80211com *);
+
static void _db_show_node_table(const char *tag,
const struct ieee80211_node_table *);
static void _db_show_channel(const char *tag, const struct ieee80211_channel *);
@@ -161,8 +163,6 @@
DB_SHOW_ALL_COMMAND(vaps, db_show_all_vaps)
{
- VNET_ITERATOR_DECL(vnet_iter);
- const struct ifnet *ifp;
int i, showall = 0;
for (i = 0; modif[i] != '\0'; i++)
@@ -172,24 +172,7 @@
break;
}
- VNET_FOREACH(vnet_iter) {
- TAILQ_FOREACH(ifp, &V_ifnet, if_list)
- if (ifp->if_type == IFT_IEEE80211) {
- const struct ieee80211com *ic = ifp->if_l2com;
-
- if (!showall) {
- const struct ieee80211vap *vap;
- db_printf("%s: com %p vaps:",
- ifp->if_xname, ic);
- TAILQ_FOREACH(vap, &ic->ic_vaps,
- iv_next)
- db_printf(" %s(%p)",
- vap->iv_ifp->if_xname, vap);
- db_printf("\n");
- } else
- _db_show_com(ic, 1, 1, 1, 1);
- }
- }
+ ieee80211_iterate_coms(_db_show_all_vaps, &showall);
}
#ifdef IEEE80211_SUPPORT_MESH
@@ -683,6 +666,21 @@
}
static void
+_db_show_all_vaps(void *arg, struct ieee80211com *ic)
+{
+ int showall = *(int *)arg;
+
+ if (!showall) {
+ const struct ieee80211vap *vap;
+ db_printf("%s: com %p vaps:", ic->ic_name, ic);
+ TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
+ db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap);
+ db_printf("\n");
+ } else
+ _db_show_com(ic, 1, 1, 1, 1);
+}
+
+static void
_db_show_node_table(const char *tag, const struct ieee80211_node_table *nt)
{
int i;
Index: head/sys/net80211/ieee80211_var.h
===================================================================
--- head/sys/net80211/ieee80211_var.h
+++ head/sys/net80211/ieee80211_var.h
@@ -714,6 +714,8 @@
void ieee80211_chan_init(struct ieee80211com *);
struct ieee80211com *ieee80211_find_vap(const uint8_t mac[IEEE80211_ADDR_LEN]);
struct ieee80211com *ieee80211_find_com(const char *name);
+typedef void ieee80211_com_iter_func(void *, struct ieee80211com *);
+void ieee80211_iterate_coms(ieee80211_com_iter_func *, void *);
int ieee80211_media_change(struct ifnet *);
void ieee80211_media_status(struct ifnet *, struct ifmediareq *);
int ieee80211_ioctl(struct ifnet *, u_long, caddr_t);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Apr 9, 4:46 AM (47 m, 43 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31135052
Default Alt Text
D6419.id.diff (3 KB)
Attached To
Mode
D6419: net80211: unbreak 'show all vaps(/a)' ddb command
Attached
Detach File
Event Timeline
Log In to Comment