Android Wi-Fi源码分析之WifiService操作Wi-Fi(一):分析Wifi.c中的wifi_load_driver()函数
来源:互联网 发布:js获取复选框的值 编辑:程序博客网 时间:2024/06/04 18:00
Wi-Fi源码分析之WifiService操作Wi-Fi(一)
分析Wifi.c中的wifi_load_driver()函数
int wifi_load_driver(){ ALOGD("============wifi_load_driver================"); /* WIFI_DRIVER_MODULE_PATH定义wlan driver的文件路径名. 我这里并没有定义 */#ifdef WIFI_DRIVER_MODULE_PATH ALOGD("============wifi_load_driver:WIFI_DRIVER_MODULE_PATH================"); char driver_status[PROPERTY_VALUE_MAX]; int count = 100; /* wait at most 20 seconds for completion */ if (is_wifi_driver_loaded()) { return 0; } /* DRIVER_MODULE_PATH里保存WIFI_DRIVER_MODULE_PATH宏定义的文件路径名; * 如果WIFI_DRIVER_MODULE_PATH定义了就在此处通过 insmod向内核添加wlan driver*/ if (insmod(DRIVER_MODULE_PATH, DRIVER_MODULE_ARG) < 0) return -1; /* FIRMWARE_LOADER 变量指向 WIFI_FIRMWARE_LOADER宏定义的 wlan 固件加载程序文件路径名 * DRIVER_PROP_NAME 的值为"wlan.driver.status"; * 如果没有指定 wlan 固件加载程序,则直接设置"wlan.driver.status"的属性为"ok" * 否则 通过"ctl.start"方式来启动 wlan 固件加载程序 * */ if (strcmp(FIRMWARE_LOADER,"") == 0) { /* usleep(WIFI_DRIVER_LOADER_DELAY); */ property_set(DRIVER_PROP_NAME, "ok"); } else { property_set("ctl.start", FIRMWARE_LOADER); } sched_yield(); while (count-- > 0) { if (property_get(DRIVER_PROP_NAME, driver_status, NULL)) { if (strcmp(driver_status, "ok") == 0) return 0; else if (strcmp(DRIVER_PROP_NAME, "failed") == 0) { wifi_unload_driver(); return -1; } } usleep(200000); } property_set(DRIVER_PROP_NAME, "timeout"); wifi_unload_driver(); return -1;#else /*如果没有定义宏WIFI_DRIVER_MODULE_PATH,则直接设置"wlan.driver.status"的属性为"ok"*/ property_set(DRIVER_PROP_NAME, "ok"); return 0;#endif}
阅读全文
0 0
- Android Wi-Fi源码分析之WifiService操作Wi-Fi(一):分析Wifi.c中的wifi_load_driver()函数
- Android Wi-Fi源码分析之WifiService操作Wi-Fi(二):WifiStateMachine.java中的SUP_CONNECTION_EVENT分析
- Android Wi-Fi源码分析之wpa_supplicant初始化(一)
- android Wi-Fi集成之分析
- Android Wi-Fi源码分析之wpa_supplicant初始化(三):wpa_supplicant_add_iface函数分析
- Android Wi-Fi源码分析之wpa_supplicant初始化(四):wpa_supplicant_init_iface函数分析
- Wi-Fi scan 分析
- Android Wi-Fi源码分析之wpa_supplicant初始化(二):wpa_supplicant_init中的三个关键点
- Android Wi-Fi wifi scan流程分析(Android 7.0)
- Android Wi-Fi WifiMonitor分析(Android 7.0)
- Android N Wi-Fi 启动流程分析
- Android N Wi-Fi 扫描流程分析
- Android Wi-Fi基本操作
- Android Wi-Fi基本操作
- Android Wi-Fi 系统源码wifiSettings源码分析(Android 5.1 Base)
- ANdroid Wi-Fi 移植
- Android Wi-Fi connect & auto connect流程分析(Android 7.0)
- 什么是WiFi(Wi-Fi)
- 学会在博客中使用gif
- bit mask
- 09_STL包括容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数六个部分
- android按两次返回退出程序
- java CAS
- Android Wi-Fi源码分析之WifiService操作Wi-Fi(一):分析Wifi.c中的wifi_load_driver()函数
- CSS3中不熟悉的属性2:display:box和display:flex的区别
- Linux下常用服务的端口号整理
- 关于线程池的理解
- CC2540、nRF51822应用开发比较
- React生命周期
- 二叉树
- 配置文件报错:不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
- [YTU]_2626( B 统计程序设计基础课程学生的平均成绩)