Lines Matching refs:iscan

215 static int wl_iw_iscan(iscan_info_t *iscan, wlc_ssid_t *ssid, uint16 action);
231 struct iscan_info iscan; member
1270 iscan_info_t *iscan; in wl_iw_iscan_get_aplist() local
1283 iscan = &wext_info->iscan; in wl_iw_iscan_get_aplist()
1288 if ((!iscan) || (iscan->sysioc_pid < 0)) { in wl_iw_iscan_get_aplist()
1292 buf = iscan->list_hdr; in wl_iw_iscan_get_aplist()
1388 iscan_info_t *iscan; in wl_iw_iscan_set_scan() local
1423 iscan = &wext_info->iscan; in wl_iw_iscan_set_scan()
1424 WL_TRACE(("%s: SIOCSIWSCAN iscan=%p\n", dev->name, iscan)); in wl_iw_iscan_set_scan()
1432 if ((!iscan) || (iscan->sysioc_pid < 0)) { in wl_iw_iscan_set_scan()
1435 if (iscan->iscan_state == ISCAN_STATE_SCANING) { in wl_iw_iscan_set_scan()
1454 iscan->list_cur = iscan->list_hdr; in wl_iw_iscan_set_scan()
1455 iscan->iscan_state = ISCAN_STATE_SCANING; in wl_iw_iscan_set_scan()
1459 wl_iw_iscan(iscan, &ssid, WL_SCAN_ACTION_START); in wl_iw_iscan_set_scan()
1461 iscan->timer.expires = jiffies + msecs_to_jiffies(iscan->timer_ms); in wl_iw_iscan_set_scan()
1462 add_timer(&iscan->timer); in wl_iw_iscan_set_scan()
1463 iscan->timer_on = 1; in wl_iw_iscan_set_scan()
1812 iscan_info_t *iscan; in wl_iw_iscan_get_scan() local
1826 iscan = &wext_info->iscan; in wl_iw_iscan_get_scan()
1827 if ((!iscan) || (iscan->sysioc_pid < 0)) { in wl_iw_iscan_get_scan()
1832 if (iscan->iscan_state == ISCAN_STATE_SCANING) { in wl_iw_iscan_get_scan()
1838 p_buf = iscan->list_hdr; in wl_iw_iscan_get_scan()
1840 while (p_buf != iscan->list_cur) { in wl_iw_iscan_get_scan()
3444 iscan_info_t *iscan; in wl_iw_ioctl() local
3448 iscan = &wext_info->iscan; in wl_iw_ioctl()
3486 if (iscan) in wl_iw_ioctl()
3658 iscan_info_t *iscan = &wext_info->iscan; in wl_iw_event() local
3801 if ((iscan) && (iscan->sysioc_pid >= 0) && in wl_iw_event()
3802 (iscan->iscan_state != ISCAN_STATE_IDLE)) in wl_iw_event()
3803 up(&iscan->sysioc_sem); in wl_iw_event()
3815 if ((!iscan) || (iscan->sysioc_pid < 0)) { in wl_iw_event()
4023 iscan_info_t *iscan = (iscan_info_t *)data; in wl_iw_timerfunc() local
4024 iscan->timer_on = 0; in wl_iw_timerfunc()
4025 if (iscan->iscan_state != ISCAN_STATE_IDLE) { in wl_iw_timerfunc()
4027 up(&iscan->sysioc_sem); in wl_iw_timerfunc()
4070 wl_iw_iscan(iscan_info_t *iscan, wlc_ssid_t *ssid, uint16 action) in wl_iw_iscan() argument
4094 (void) dev_iw_iovar_setbuf(iscan->dev, "iscan", params, params_size, in wl_iw_iscan()
4095 iscan->ioctlbuf, WLC_IOCTL_SMLEN); in wl_iw_iscan()
4103 wl_iw_iscan_get(iscan_info_t *iscan) in wl_iw_iscan_get() argument
4113 if (iscan->list_cur) { in wl_iw_iscan_get()
4114 buf = iscan->list_cur; in wl_iw_iscan_get()
4115 iscan->list_cur = buf->next; in wl_iw_iscan_get()
4122 if (!iscan->list_hdr) in wl_iw_iscan_get()
4123 iscan->list_hdr = buf; in wl_iw_iscan_get()
4125 ptr = iscan->list_hdr; in wl_iw_iscan_get()
4142 iscan->dev, in wl_iw_iscan_get()
4158 static void wl_iw_send_scan_complete(iscan_info_t *iscan) in wl_iw_send_scan_complete() argument
4165 wireless_send_event(iscan->dev, SIOCGIWSCAN, &wrqu, NULL); in wl_iw_send_scan_complete()
4172 iscan_info_t *iscan = (iscan_info_t *)data; in _iscan_sysioc_thread() local
4178 while (down_interruptible(&iscan->sysioc_sem) == 0) { in _iscan_sysioc_thread()
4179 if (iscan->timer_on) { in _iscan_sysioc_thread()
4180 del_timer(&iscan->timer); in _iscan_sysioc_thread()
4181 iscan->timer_on = 0; in _iscan_sysioc_thread()
4187 status = wl_iw_iscan_get(iscan); in _iscan_sysioc_thread()
4199 wl_iw_iscan(iscan, NULL, WL_SCAN_ACTION_CONTINUE); in _iscan_sysioc_thread()
4204 iscan->timer.expires = jiffies + msecs_to_jiffies(iscan->timer_ms); in _iscan_sysioc_thread()
4205 add_timer(&iscan->timer); in _iscan_sysioc_thread()
4206 iscan->timer_on = 1; in _iscan_sysioc_thread()
4210 iscan->iscan_state = ISCAN_STATE_IDLE; in _iscan_sysioc_thread()
4211 wl_iw_send_scan_complete(iscan); in _iscan_sysioc_thread()
4216 iscan->timer.expires = jiffies + msecs_to_jiffies(iscan->timer_ms); in _iscan_sysioc_thread()
4217 add_timer(&iscan->timer); in _iscan_sysioc_thread()
4218 iscan->timer_on = 1; in _iscan_sysioc_thread()
4222 iscan->iscan_state = ISCAN_STATE_IDLE; in _iscan_sysioc_thread()
4223 wl_iw_send_scan_complete(iscan); in _iscan_sysioc_thread()
4231 complete_and_exit(&iscan->sysioc_exited, 0); in _iscan_sysioc_thread()
4242 iscan_info_t *iscan; in wl_iw_detach() local
4248 iscan = &wext_info->iscan; in wl_iw_detach()
4249 if (iscan->sysioc_pid >= 0) { in wl_iw_detach()
4250 KILL_PROC(iscan->sysioc_pid, SIGTERM); in wl_iw_detach()
4251 wait_for_completion(&iscan->sysioc_exited); in wl_iw_detach()
4254 while (iscan->list_hdr) { in wl_iw_detach()
4255 buf = iscan->list_hdr->next; in wl_iw_detach()
4256 kfree(iscan->list_hdr); in wl_iw_detach()
4257 iscan->list_hdr = buf; in wl_iw_detach()
4274 iscan_info_t *iscan = NULL; in wl_iw_attach() local
4291 iscan = &wext_info->iscan; in wl_iw_attach()
4293 iscan->kthread = NULL; in wl_iw_attach()
4295 iscan->sysioc_pid = -1; in wl_iw_attach()
4297 iscan->dev = dev; in wl_iw_attach()
4298 iscan->iscan_state = ISCAN_STATE_IDLE; in wl_iw_attach()
4301 iscan->timer_ms = 2000; in wl_iw_attach()
4302 init_timer_compat(&iscan->timer, wl_iw_timerfunc, iscan); in wl_iw_attach()
4304 sema_init(&iscan->sysioc_sem, 0); in wl_iw_attach()
4305 init_completion(&iscan->sysioc_exited); in wl_iw_attach()
4307 iscan->kthread = kthread_run(_iscan_sysioc_thread, iscan, "iscan_sysioc"); in wl_iw_attach()
4308 iscan->sysioc_pid = iscan->kthread->pid; in wl_iw_attach()
4310 iscan->sysioc_pid = kernel_thread(_iscan_sysioc_thread, iscan, 0); in wl_iw_attach()
4312 if (iscan->sysioc_pid < 0) { in wl_iw_attach()