Lines Matching defs:nw
272 ieee80211_node_walkfirst(struct ieee80211_node_walk *nw, u_short if_index)
274 memset(nw, 0, sizeof(*nw));
276 nw->nw_ifindex = if_index;
278 LIST_FOREACH(nw->nw_ic, &ieee80211com_head, ic_list) {
279 if (if_index != 0 && nw->nw_ic->ic_ifp->if_index != if_index)
281 if (!TAILQ_EMPTY(&nw->nw_ic->ic_sta.nt_node))
282 nw->nw_nt = &nw->nw_ic->ic_sta;
283 else if (!TAILQ_EMPTY(&nw->nw_ic->ic_scan.nt_node))
284 nw->nw_nt = &nw->nw_ic->ic_scan;
285 else if (nw->nw_ic->ic_bss == NULL)
290 if (nw->nw_ic == NULL)
293 if (nw->nw_nt == NULL)
294 nw->nw_ni = nw->nw_ic->ic_bss;
296 nw->nw_ni = TAILQ_FIRST(&nw->nw_nt->nt_node);
298 return nw->nw_ni;
302 ieee80211_node_walknext(struct ieee80211_node_walk *nw)
304 if (nw->nw_nt != NULL)
305 nw->nw_ni = TAILQ_NEXT(nw->nw_ni, ni_list);
307 nw->nw_ni = NULL;
309 while (nw->nw_ni == NULL) {
310 if (nw->nw_nt == &nw->nw_ic->ic_sta) {
311 nw->nw_nt = &nw->nw_ic->ic_scan;
312 nw->nw_ni = TAILQ_FIRST(&nw->nw_nt->nt_node);
314 } else if (nw->nw_nt == &nw->nw_ic->ic_scan) {
315 nw->nw_nt = NULL;
316 nw->nw_ni = nw->nw_ic->ic_bss;
319 KASSERT(nw->nw_nt == NULL);
320 if (nw->nw_ifindex != 0)
323 nw->nw_ic = LIST_NEXT(nw->nw_ic, ic_list);
324 if (nw->nw_ic == NULL)
327 nw->nw_nt = &nw->nw_ic->ic_sta;
328 nw->nw_ni = TAILQ_FIRST(&nw->nw_nt->nt_node);
331 return nw->nw_ni;
380 struct ieee80211_node_walk nw;
417 for (ni = ieee80211_node_walkfirst(&nw, ifindex); ni != NULL;
418 ni = ieee80211_node_walknext(&nw)) {
421 ic = nw.nw_ic;