Lines Matching refs:ss
70 #define SCAN_PRIVATE(ss) ((struct scan_state *) ss) argument
97 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_detach() local
99 if (ss != NULL) { in ieee80211_swscan_detach()
100 scan_signal(ss, ISCAN_ABORT); in ieee80211_swscan_detach()
101 ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); in ieee80211_swscan_detach()
103 &SCAN_PRIVATE(ss)->ss_scan_curchan); in ieee80211_swscan_detach()
114 if (ss->ss_ops != NULL) { in ieee80211_swscan_detach()
115 ss->ss_ops->scan_detach(ss); in ieee80211_swscan_detach()
116 ss->ss_ops = NULL; in ieee80211_swscan_detach()
119 IEEE80211_FREE(SCAN_PRIVATE(ss), M_80211_SCAN); in ieee80211_swscan_detach()
137 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_vdetach() local
141 if (ss != NULL && ss->ss_vap == vap && in ieee80211_swscan_vdetach()
143 scan_signal_locked(ss, ISCAN_ABORT); in ieee80211_swscan_vdetach()
150 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_set_scan_duration() local
155 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_DISCARD; in ieee80211_swscan_set_scan_duration()
156 SCAN_PRIVATE(ss)->ss_duration = duration; in ieee80211_swscan_set_scan_duration()
169 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_start_scan_locked() local
192 if (ss->ss_ops != NULL) { in ieee80211_swscan_start_scan_locked()
194 ieee80211_scan_copy_ssid(vap, ss, nssid, ssids); in ieee80211_swscan_start_scan_locked()
196 ss->ss_flags = flags & IEEE80211_SCAN_PUBLIC_MASK; in ieee80211_swscan_start_scan_locked()
197 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) in ieee80211_swscan_start_scan_locked()
202 ss->ss_ops->scan_flush(ss); in ieee80211_swscan_start_scan_locked()
211 ss->ss_next = 0; in ieee80211_swscan_start_scan_locked()
212 ss->ss_mindwell = mindwell; in ieee80211_swscan_start_scan_locked()
213 ss->ss_maxdwell = maxdwell; in ieee80211_swscan_start_scan_locked()
215 ss->ss_ops->scan_start(ss, vap); in ieee80211_swscan_start_scan_locked()
218 ieee80211_scan_dump(ss); in ieee80211_swscan_start_scan_locked()
223 ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); in ieee80211_swscan_start_scan_locked()
229 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"); in ieee80211_swscan_start_scan_locked()
273 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_check_scan() local
278 if (ss->ss_ops != NULL) { in ieee80211_swscan_check_scan()
285 ieee80211_scan_copy_ssid(vap, ss, nssid, ssids); in ieee80211_swscan_check_scan()
304 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_DISCARD; in ieee80211_swscan_check_scan()
308 ss->ss_flags = flags & IEEE80211_SCAN_PUBLIC_MASK; in ieee80211_swscan_check_scan()
309 result = ss->ss_ops->scan_end(ss, vap); in ieee80211_swscan_check_scan()
312 SCAN_PRIVATE(ss)->ss_iflags &= ~ISCAN_DISCARD; in ieee80211_swscan_check_scan()
336 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_bg_scan() local
360 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive", in ieee80211_swscan_bg_scan()
364 if (ss->ss_ops != NULL) { in ieee80211_swscan_bg_scan()
365 ss->ss_vap = vap; in ieee80211_swscan_bg_scan()
380 ss->ss_flags |= IEEE80211_SCAN_NOPICK in ieee80211_swscan_bg_scan()
385 if (ss->ss_next >= ss->ss_last) { in ieee80211_swscan_bg_scan()
386 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) in ieee80211_swscan_bg_scan()
395 ss->ss_next = 0; in ieee80211_swscan_bg_scan()
396 if (ss->ss_last != 0) { in ieee80211_swscan_bg_scan()
398 ss->ss_ops->scan_restart(ss, vap); in ieee80211_swscan_bg_scan()
400 ss->ss_ops->scan_start(ss, vap); in ieee80211_swscan_bg_scan()
403 ieee80211_scan_dump(ss); in ieee80211_swscan_bg_scan()
408 ss->ss_maxdwell = duration; in ieee80211_swscan_bg_scan()
412 &SCAN_PRIVATE(ss)->ss_scan_start); in ieee80211_swscan_bg_scan()
420 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"); in ieee80211_swscan_bg_scan()
437 struct ieee80211_scan_state *ss = ic->ic_scan; in cancel_scan() local
438 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in cancel_scan()
444 (any || ss->ss_vap == vap) && in cancel_scan()
449 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? in cancel_scan()
453 ss->ss_flags &= ~IEEE80211_SCAN_NOPICK; in cancel_scan()
455 scan_signal_locked(ss, signal); in cancel_scan()
461 (ss->ss_vap == vap ? "match" : "nomatch"), in cancel_scan()
498 struct ieee80211_scan_state *ss = vap->iv_ic->ic_scan; in ieee80211_swscan_scan_next() local
503 scan_signal(ss, 0); in ieee80211_swscan_scan_next()
515 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_scan_done() local
519 scan_signal_locked(ss, 0); in ieee80211_swscan_scan_done()
533 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_probe_curchan() local
547 for (i = 0; i < ss->ss_nssid; i++) in ieee80211_swscan_probe_curchan()
552 ss->ss_ssid[i].ssid, ss->ss_ssid[i].len); in ieee80211_swscan_probe_curchan()
553 if ((ss->ss_flags & IEEE80211_SCAN_NOBCAST) == 0) in ieee80211_swscan_probe_curchan()
567 scan_curchan(struct ieee80211_scan_state *ss, unsigned long maxdwell) in scan_curchan() argument
569 struct ieee80211vap *vap = ss->ss_vap; in scan_curchan()
570 struct ieee80211com *ic = ss->ss_ic; in scan_curchan()
577 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) in scan_curchan()
580 &SCAN_PRIVATE(ss)->ss_scan_curchan, maxdwell); in scan_curchan()
585 scan_signal(struct ieee80211_scan_state *ss, int iflags) in scan_signal() argument
587 struct ieee80211com *ic = ss->ss_ic; in scan_signal()
592 scan_signal_locked(ss, iflags); in scan_signal()
597 scan_signal_locked(struct ieee80211_scan_state *ss, int iflags) in scan_signal_locked() argument
599 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in scan_signal_locked()
601 struct ieee80211com *ic = ss->ss_ic; in scan_signal_locked()
617 scan_mindwell(struct ieee80211_scan_state *ss) in scan_mindwell() argument
620 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: called\n", in scan_mindwell()
623 scan_signal(ss, 0); in scan_mindwell()
630 struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg; in scan_start() local
631 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in scan_start()
632 struct ieee80211vap *vap = ss->ss_vap; in scan_start()
633 struct ieee80211com *ic = ss->ss_ic; in scan_start()
639 scan_done(ss, 0); in scan_start()
643 if (ss->ss_next == ss->ss_last) { in scan_start()
646 scan_done(ss, 1); in scan_start()
666 scan_done(ss, 0); in scan_start()
680 scan_curchan_task(ss, 0); in scan_start()
686 struct ieee80211_scan_state *ss = arg; in scan_curchan_task() local
687 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in scan_curchan_task()
688 struct ieee80211com *ic = ss->ss_ic; in scan_curchan_task()
702 scandone = (ss->ss_next >= ss->ss_last) || in scan_curchan_task()
704 scanstop = (ss->ss_next >= ss->ss_last) || in scan_curchan_task()
707 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, in scan_curchan_task()
713 (uint32_t) ss->ss_next, in scan_curchan_task()
714 (uint32_t) ss->ss_last); in scan_curchan_task()
716 if (scanstop || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) || in scan_curchan_task()
718 ieee80211_time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { in scan_curchan_task()
720 scan_end(ss, scandone); in scan_curchan_task()
725 chan = ss->ss_chans[ss->ss_next++]; in scan_curchan_task()
730 if (ieee80211_time_after(ticks + ss->ss_maxdwell, ss_priv->ss_scanend)) in scan_curchan_task()
733 maxdwell = ss->ss_maxdwell; in scan_curchan_task()
735 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, in scan_curchan_task()
742 (ss->ss_flags & IEEE80211_SCAN_ACTIVE) && in scan_curchan_task()
745 ticks_to_msecs(ss->ss_mindwell), ticks_to_msecs(maxdwell)); in scan_curchan_task()
771 ic->ic_scan_curchan(ss, maxdwell); in scan_curchan_task()
776 ss_priv->ss_chanmindwell = ticks + ss->ss_mindwell; in scan_curchan_task()
786 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: waiting\n", in scan_curchan_task()
792 scan_end(struct ieee80211_scan_state *ss, int scandone) in scan_end() argument
794 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in scan_end()
795 struct ieee80211vap *vap = ss->ss_vap; in scan_end()
796 struct ieee80211com *ic = ss->ss_ic; in scan_end()
803 scan_done(ss, scandone); in scan_end()
841 ss->ss_flags &= ~IEEE80211_SCAN_GOTPICK; in scan_end()
851 !ss->ss_ops->scan_end(ss, vap) && in scan_end()
852 (ss->ss_flags & IEEE80211_SCAN_ONCE) == 0 && in scan_end()
853 ieee80211_time_before(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) { in scan_end()
858 ticks, ss->ss_mindwell, ss_priv->ss_scanend); in scan_end()
859 ss->ss_next = 0; /* reset to beginning */ in scan_end()
860 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) in scan_end()
866 ss->ss_ops->scan_restart(ss, vap); /* XXX? */ in scan_end()
873 if ((ss->ss_flags & IEEE80211_SCAN_BGSCAN) == 0) in scan_end()
879 ticks, ss->ss_mindwell, ss_priv->ss_scanend); in scan_end()
892 scan_done(ss, scandone); in scan_end()
896 scan_done(struct ieee80211_scan_state *ss, int scandone) in scan_done() argument
898 struct scan_state *ss_priv = SCAN_PRIVATE(ss); in scan_done()
899 struct ieee80211com *ic = ss->ss_ic; in scan_done()
900 struct ieee80211vap *vap = ss->ss_vap; in scan_done()
928 if (ss->ss_next >= ss->ss_last) { in scan_done()
932 (uint32_t) ss->ss_next, in scan_done()
933 (uint32_t) ss->ss_last); in scan_done()
939 (ss->ss_next >= ss->ss_last)) in scan_done()
944 ss->ss_flags &= ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); in scan_done()
960 struct ieee80211_scan_state *ss = ic->ic_scan; in ieee80211_swscan_add_scan() local
970 if (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_DISCARD) in ieee80211_swscan_add_scan()
976 if (ss->ss_ops != NULL && in ieee80211_swscan_add_scan()
977 ss->ss_ops->scan_add(ss, curchan, sp, wh, subtype, rssi, noise)) { in ieee80211_swscan_add_scan()
982 if ((SCAN_PRIVATE(ss)->ss_iflags & ISCAN_MINDWELL) == 0 && in ieee80211_swscan_add_scan()
983 ieee80211_time_after_eq(ticks, SCAN_PRIVATE(ss)->ss_chanmindwell)) { in ieee80211_swscan_add_scan()
989 ticks, SCAN_PRIVATE(ss)->ss_chanmindwell); in ieee80211_swscan_add_scan()
990 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_MINDWELL; in ieee80211_swscan_add_scan()
995 ic->ic_scan_mindwell(ss); in ieee80211_swscan_add_scan()
1023 struct scan_state *ss; in ieee80211_swscan_attach() local
1031 ss = (struct scan_state *) IEEE80211_MALLOC(sizeof(struct scan_state), in ieee80211_swscan_attach()
1033 if (ss == NULL) { in ieee80211_swscan_attach()
1037 TASK_INIT(&ss->ss_scan_start, 0, scan_start, ss); in ieee80211_swscan_attach()
1038 TIMEOUT_TASK_INIT(ic->ic_tq, &ss->ss_scan_curchan, 0, in ieee80211_swscan_attach()
1039 scan_curchan_task, ss); in ieee80211_swscan_attach()
1041 ic->ic_scan = &ss->base; in ieee80211_swscan_attach()
1042 ss->base.ss_ic = ic; in ieee80211_swscan_attach()