diff --git a/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c b/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c index 20b7532..8c5959f 100644 --- a/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c +++ b/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c @@ -1310,7 +1310,13 @@ void fATST(void *arg) { } #if 0 -#include "wlan_lib.h" +#if 1 +#include "drv_types.h" // or #include "wlan_lib.h" +#else +#include "wifi_constants.h" +#include "wifi_structures.h" +#include "wlan_lib.h" // or #include "drv_types.h" +#endif #include "hal_com_reg.h" // extern Rltk_wlan_t rltk_wlan_info[2]; void fATXT(void *arg) diff --git a/RTL00_SDKV35a/component/common/api/lwip_netconf.c b/RTL00_SDKV35a/component/common/api/lwip_netconf.c index 4c368ba..903bd59 100644 --- a/RTL00_SDKV35a/component/common/api/lwip_netconf.c +++ b/RTL00_SDKV35a/component/common/api/lwip_netconf.c @@ -103,8 +103,8 @@ struct netif xnetif[NET_IF_NUM]; /* network interface structure */ * @retval None */ #if CONFIG_WLAN -extern int error_flag; -extern rtw_mode_t wifi_mode; +extern char error_flag; +extern unsigned char wifi_mode; // rtw_mode_t #endif int lwip_init_done = 0; @@ -204,7 +204,7 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) { } for (;;) { - //printf("\n\r ========DHCP_state:%d============\n\r",DHCP_state); + //info_printf("\n\r ========DHCP_state:%d============\n\r",DHCP_state); switch (DHCP_state) { case DHCP_START: { #if CONFIG_WLAN diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c index 40ebfa7..b0d16ad 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c @@ -1,16 +1,20 @@ //----------------------------------------------------------------------------// +#include +#include #include "FreeRTOS.h" #include "task.h" #include "semphr.h" -#include -#include "main.h" -#include #include #include -#include #include -#include -#include "tcpip.h" +#if 1 +#include "drv_types.h" // or #include "wlan_lib.h" +#else +#include "wifi_constants.h" +#include "wifi_structures.h" +//#include "wlan_lib.h" // or #include "drv_types.h" +#endif +#include #include #if CONFIG_EXAMPLE_WLAN_FAST_CONNECT @@ -23,7 +27,6 @@ extern int inic_start(void); extern int inic_stop(void); #endif -#include "wlan_lib.h" #if CONFIG_DEBUG_LOG > 0 #undef printf @@ -40,8 +43,6 @@ extern int inic_stop(void); /****************************************************** * Constants ******************************************************/ -#define SCAN_USE_SEMAPHORE 0 - #define RTW_JOIN_TIMEOUT 15000 #define JOIN_ASSOCIATED (uint32_t)(1 << 0) @@ -69,12 +70,11 @@ extern struct netif xnetif[NET_IF_NUM]; /****************************************************** * Variables Definitions ******************************************************/ -internal_scan_handler_t scan_result_handler_ptr = { - 0, 0, 0, RTW_FALSE, 0, 0, 0, 0, 0 }; +internal_scan_handler_t scan_result_handler_ptr; static internal_join_result_t* join_user_data; -rtw_mode_t wifi_mode = RTW_MODE_NONE; +unsigned char wifi_mode = RTW_MODE_NONE; // rtw_mode_t //extern rtw_mode_t wifi_mode; -int error_flag = RTW_UNKNOWN; +char error_flag = RTW_UNKNOWN; uint32_t rtw_join_status; #if ATCMD_VER == ATVER_2 extern unsigned char dhcp_mode_sta; @@ -210,68 +210,9 @@ static int wifi_connect_local(rtw_network_info_t *pWifi) { pWifi->security_type, __func__); break; } -#if DD_WIFI_CONN // дублирование с wifi_connect_bssid_local() - if(ret == 0) - ret = wext_set_ssid(WLAN0_NAME, pWifi->ssid.val, pWifi->ssid.len); -#endif return ret; } -#if DD_WIFI_CONN // дублирование с wifi_connect_bssid_local() -static int wifi_connect_bssid_local(rtw_network_info_t *pWifi) -{ - int ret = 0; - u8 bssid[12] = {0}; - - if(is_promisc_enabled()) - promisc_set(0, NULL, 0); - - if(!pWifi) return -1; - switch(pWifi->security_type) { - case RTW_SECURITY_OPEN: - ret = wext_set_key_ext(WLAN0_NAME, IW_ENCODE_ALG_NONE, NULL, 0, 0, 0, 0, NULL, 0); - break; - case RTW_SECURITY_WEP_PSK: - case RTW_SECURITY_WEP_SHARED: - ret = wext_set_auth_param(WLAN0_NAME, IW_AUTH_80211_AUTH_ALG, IW_AUTH_ALG_SHARED_KEY); - if(ret == 0) - ret = wext_set_key_ext(WLAN0_NAME, IW_ENCODE_ALG_WEP, NULL, pWifi->key_id, 1 /* set tx key */, 0, 0, pWifi->password, pWifi->password_len); - break; - case RTW_SECURITY_WPA_TKIP_PSK: - case RTW_SECURITY_WPA2_TKIP_PSK: - ret = wext_set_auth_param(WLAN0_NAME, IW_AUTH_80211_AUTH_ALG, IW_AUTH_ALG_OPEN_SYSTEM); - if(ret == 0) - ret = wext_set_key_ext(WLAN0_NAME, IW_ENCODE_ALG_TKIP, NULL, 0, 0, 0, 0, NULL, 0); - if(ret == 0) - ret = wext_set_passphrase(WLAN0_NAME, pWifi->password, pWifi->password_len); - break; - case RTW_SECURITY_WPA_AES_PSK: - case RTW_SECURITY_WPA2_AES_PSK: - case RTW_SECURITY_WPA2_MIXED_PSK: - ret = wext_set_auth_param(WLAN0_NAME, IW_AUTH_80211_AUTH_ALG, IW_AUTH_ALG_OPEN_SYSTEM); - if(ret == 0) - ret = wext_set_key_ext(WLAN0_NAME, IW_ENCODE_ALG_CCMP, NULL, 0, 0, 0, 0, NULL, 0); - if(ret == 0) - ret = wext_set_passphrase(WLAN0_NAME, pWifi->password, pWifi->password_len); - break; - default: - ret = -1; - printf("WIFICONF: security type(0x%x) is not supported.\n", pWifi->security_type); - break; - } - if(ret == 0) { - memcpy(bssid, pWifi->bssid.octet, ETH_ALEN); - if(pWifi->ssid.len) { - bssid[ETH_ALEN] = '#'; - bssid[ETH_ALEN + 1] = '@'; - memcpy(bssid + ETH_ALEN + 2, &pWifi, sizeof(pWifi)); - } - ret = wext_set_bssid(WLAN0_NAME, bssid); - } - return ret; -} -#endif - void wifi_rx_beacon_hdl(char* buf, int buf_len, int flags, void* userdata) { //printf("Beacon!\n"); } @@ -563,9 +504,7 @@ int wifi_connect( wifi_reg_event_handler(WIFI_EVENT_DISCONNECT, wifi_disconn_hdl, NULL); wifi_reg_event_handler(WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, wifi_handshake_done_hdl, NULL); -#if DD_WIFI_CONN // дублирование с wifi_connect_bssid_local() - wifi_connect_local(&join_result->network_info); -#else + rtw_network_info_t *pWifi = &join_result->network_info; if (wifi_connect_local(pWifi) == 0) { @@ -593,7 +532,6 @@ int wifi_connect( join_result->network_info.ssid.len); }; } -#endif join_user_data = join_result; if (semaphore == NULL) { @@ -618,7 +556,7 @@ int wifi_connect( #endif if (rtw_down_timeout_sema(&join_result->join_sema, RTW_JOIN_TIMEOUT) == RTW_FALSE) { - printf("RTW API: Join bss timeout\n"); + warning_printf("RTW API: Join bss timeout\n"); if (password_len) { rtw_free(join_result->network_info.password); } @@ -652,137 +590,6 @@ int wifi_connect( wifi_handshake_done_hdl); return result; } -/* - -int wifi_connect_bssid( - unsigned char bssid[ETH_ALEN], - char *ssid, - rtw_security_t security_type, - char *password, - int bssid_len, - int ssid_len, - int password_len, - int key_id, - void *semaphore) { - xSemaphoreHandle join_semaphore; - rtw_result_t result = RTW_SUCCESS; - - if ((rtw_join_status & JOIN_SIMPLE_CONFIG ) - || (rtw_join_status & JOIN_AIRKISS )) { - return RTW_ERROR; - } - - rtw_join_status = 0; //clear for last connect status - error_flag = RTW_UNKNOWN; //clear for last connect status - internal_join_result_t *join_result = - (internal_join_result_t *) rtw_zmalloc( - sizeof(internal_join_result_t)); - if (!join_result) { - return RTW_NOMEM; - } - if (ssid_len && ssid) { - join_result->network_info.ssid.len = ssid_len > 32 ? 32 : ssid_len; - rtw_memcpy(join_result->network_info.ssid.val, ssid, ssid_len); - } - rtw_memcpy(join_result->network_info.bssid.octet, bssid, bssid_len); - - if ((((password_len > RTW_MAX_PSK_LEN) || (password_len < RTW_MIN_PSK_LEN)) - && ((security_type == RTW_SECURITY_WPA_TKIP_PSK) - || (security_type == RTW_SECURITY_WPA_AES_PSK) - || (security_type == RTW_SECURITY_WPA2_AES_PSK) - || (security_type == RTW_SECURITY_WPA2_TKIP_PSK) - || (security_type == RTW_SECURITY_WPA2_MIXED_PSK))) - || (((password_len != 5) && (password_len != 13)) - && ((security_type == RTW_SECURITY_WEP_PSK) - || (security_type == RTW_SECURITY_WEP_SHARED)))) { - return RTW_INVALID_KEY; - } - join_result->network_info.password_len = password_len; - if (password_len) { - // add \0 to the end - join_result->network_info.password = rtw_zmalloc(password_len + 1); - if (!join_result->network_info.password) { - return RTW_NOMEM; - } - rtw_memcpy(join_result->network_info.password, password, password_len); - } - - join_result->network_info.security_type = security_type; - join_result->network_info.key_id = key_id; - - if (semaphore == NULL) { - rtw_init_sema(&join_result->join_sema, 0); - if (!join_result->join_sema) { - return RTW_NORESOURCE; - } - join_semaphore = join_result->join_sema; - } else { - join_result->join_sema = semaphore; - } - wifi_reg_event_handler(WIFI_EVENT_NO_NETWORK, wifi_no_network_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_CONNECT, wifi_connected_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_DISCONNECT, wifi_disconn_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, - wifi_handshake_done_hdl, NULL); -#if DD_WIFI_CONN // дублирование с wifi_connect_bssid_local() - wifi_connect_bssid_local(&join_result->network_info); -#else - rtw_network_info_t *pWifi = &join_result->network_info; - if (wifi_connect_local(pWifi) == 0) { - struct { - u8 bssid[ETH_ALEN + 2]; - void * p; - } bs = { 0 }; - memcpy(bs.bssid, pWifi->bssid.octet, ETH_ALEN); - if (pWifi->ssid.len) { - bs.bssid[ETH_ALEN] = '#'; - bs.bssid[ETH_ALEN + 1] = '@'; - bs.p = pWifi; - } - wext_set_bssid(WLAN0_NAME, bssid); - } -#endif - - join_user_data = join_result; - - if (semaphore == NULL) { - if (rtw_down_timeout_sema(&join_result->join_sema, RTW_JOIN_TIMEOUT) - == RTW_FALSE) { - printf("RTW API: Join bss timeout\n"); - if (password_len) { - rtw_free(join_result->network_info.password); - } - rtw_free((u8*)join_result); - rtw_free_sema(&join_semaphore); - result = RTW_TIMEOUT; - goto error; - } else { - rtw_free_sema(&join_semaphore); - if (join_result->network_info.password_len) { - rtw_free(join_result->network_info.password); - } - rtw_free((u8*)join_result); - if (wifi_is_connected_to_ap() != RTW_SUCCESS) { - result = RTW_ERROR; - goto error; - } - } - } - - result = RTW_SUCCESS; - -#if CONFIG_EXAMPLE_WLAN_FAST_CONNECT - restore_wifi_info_to_flash(); -#endif - - error: join_user_data = NULL; - wifi_unreg_event_handler(WIFI_EVENT_CONNECT, wifi_connected_hdl); - wifi_unreg_event_handler(WIFI_EVENT_NO_NETWORK, wifi_no_network_hdl); - wifi_unreg_event_handler(WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, - wifi_handshake_done_hdl); - return result; -} -*/ int wifi_disconnect(void) { int ret = 0; @@ -995,14 +802,13 @@ int wifi_rf_off(void) { //----------------------------------------------------------------------------// int wifi_on(rtw_mode_t mode) { int ret = 0; -//pvvx int timeout = 20; // 20 sec ?! int timeout = wifi_test_timeout_ms / wifi_test_timeout_step_ms; int idx; int devnum = 1; static int event_init = 0; if (rltk_wlan_running(WLAN0_IDX)) { - printf("WIFI is already running\n"); + warning_printf("WIFI is already running\n"); return 0; } @@ -1057,24 +863,25 @@ int wifi_on(rtw_mode_t mode) { int wifi_off(void) { // int ret = 0; -//pvvx int timeout = 20; // 20 sec ?! + uint32 timeout = xTaskGetTickCount(); - if ((rltk_wlan_running(WLAN0_IDX) == 0) - && (rltk_wlan_running(WLAN1_IDX) == 0)) { - info_printf("WIFI is not running\n"); - return 0; - } #if CONFIG_LWIP_LAYER dhcps_deinit(); LwIP_DHCP(0, DHCP_STOP); LwIP_DHCP(1, DHCP_STOP); #endif + if ((rltk_wlan_running(WLAN0_IDX) == 0) + && (rltk_wlan_running(WLAN1_IDX) == 0)) { + info_printf("WIFI is not running\n"); + return 0; + } + info_printf("Deinitializing WIFI ...\n"); + #if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP - if ((wifi_mode == RTW_MODE_AP) || (wifi_mode == RTW_MODE_STA_AP)) + // @todo wpas_wps_deinit(); #endif - info_printf("Deinitializing WIFI ...\n"); rltk_wlan_deinit(); while (1) { @@ -1119,20 +926,24 @@ int wifi_get_lps_dtim(unsigned char *dtim) { return wext_get_lps_dtim(WLAN0_NAME, dtim); } //----------------------------------------------------------------------------// +/* static void wifi_ap_sta_assoc_hdl(char* buf, int buf_len, int flags, void* userdata) { //USER TODO - + debug_printf("ap_sta_assoc\n"); } static void wifi_ap_sta_disassoc_hdl(char* buf, int buf_len, int flags, void* userdata) { //USER TODO + debug_printf("ap_sta_disassoc\n"); } +*/ int wifi_get_last_error(void) { return error_flag; } + #if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP int wpas_wps_init(const char* ifname); #endif @@ -1159,23 +970,22 @@ int wifi_start_ap(char *ssid, rtw_security_t security_type, char *password, int if (is_promisc_enabled()) promisc_set(0, NULL, 0); - +/* + wifi_unreg_event_handler(WIFI_EVENT_STA_ASSOC, wifi_ap_sta_assoc_hdl); wifi_reg_event_handler(WIFI_EVENT_STA_ASSOC, wifi_ap_sta_assoc_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_STA_DISASSOC, wifi_ap_sta_disassoc_hdl, - NULL); - + wifi_unreg_event_handler(WIFI_EVENT_STA_DISASSOC, wifi_ap_sta_disassoc_hdl); + wifi_reg_event_handler(WIFI_EVENT_STA_DISASSOC, wifi_ap_sta_disassoc_hdl, NULL); +*/ ret = wext_set_mode(ifname, IW_MODE_MASTER); if (ret < 0) goto exit; -// if(!channel) channel = 1; + if(channel < 1 || channel > 14) channel = 1; ret = wext_set_channel(ifname, channel); //Set channel before starting ap if (ret < 0) goto exit; - switch (security_type) { - case RTW_SECURITY_OPEN: - break; - case RTW_SECURITY_WPA2_AES_PSK: + if(security_type != RTW_SECURITY_OPEN) { // case RTW_SECURITY_WPA2_AES_PSK: + security_type = RTW_SECURITY_WPA2_AES_PSK; ret = wext_set_auth_param(ifname, IW_AUTH_80211_AUTH_ALG, IW_AUTH_ALG_OPEN_SYSTEM); if (ret == 0) @@ -1183,11 +993,6 @@ int wifi_start_ap(char *ssid, rtw_security_t security_type, char *password, int NULL, 0); if (ret == 0) ret = wext_set_passphrase(ifname, (u8*) password, password_len); - break; - default: - ret = -1; - printf("WIFICONF: security type is not supported\n"); - break; } if (ret < 0) goto exit; @@ -1204,61 +1009,6 @@ int wifi_start_ap(char *ssid, rtw_security_t security_type, char *password, int #endif exit: return ret; } -/* -int wifi_start_ap_with_hidden_ssid(char *ssid, rtw_security_t security_type, - char *password, int ssid_len, int password_len, int channel) { - const char *ifname = WLAN0_NAME; - int ret = 0; - - if (wifi_mode == RTW_MODE_STA_AP) { - ifname = WLAN1_NAME; - } - - if (is_promisc_enabled()) - promisc_set(0, NULL, 0); - - wifi_reg_event_handler(WIFI_EVENT_STA_ASSOC, wifi_ap_sta_assoc_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_STA_DISASSOC, wifi_ap_sta_disassoc_hdl, - NULL); - - ret = wext_set_mode(ifname, IW_MODE_MASTER); - if (ret < 0) - goto exit; - ret = wext_set_channel(ifname, channel); //Set channel before starting ap - if (ret < 0) - goto exit; - - switch (security_type) { - case RTW_SECURITY_OPEN: - break; - case RTW_SECURITY_WPA2_AES_PSK: - ret = wext_set_auth_param(ifname, IW_AUTH_80211_AUTH_ALG, - IW_AUTH_ALG_OPEN_SYSTEM); - if (ret == 0) - ret = wext_set_key_ext(ifname, IW_ENCODE_ALG_CCMP, NULL, 0, 0, 0, 0, - NULL, 0); - if (ret == 0) - ret = wext_set_passphrase(ifname, (u8*) password, password_len); - break; - default: - ret = -1; - printf("WIFICONF: security type is not supported\n"); - break; - } - if (ret < 0) - goto exit; - - ret = set_hidden_ssid(ifname, 1); - if (ret < 0) - goto exit; - - ret = wext_set_ap_ssid(ifname, (u8*) ssid, ssid_len); -#if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP - wpas_wps_init(ifname); -#endif - exit: return ret; -} -*/ void wifi_scan_each_report_hdl(char* buf, int buf_len, int flags, void* userdata) { int i = 0; @@ -1484,9 +1234,9 @@ int wifi_scan_networks(rtw_scan_result_handler_t results_handler, void* user_dat #if SCAN_USE_SEMAPHORE rtw_bool_t result; if(NULL == scan_result_handler_ptr.scan_semaphore) - rtw_init_sema(&scan_result_handler_ptr.scan_semaphore, 1); + rtw_init_sema(&scan_result_handler_ptr.scan_semaphore, 1); - scan_result_handler_ptr.scan_start_time = rtw_get_current_time(); +// scan_result_handler_ptr.scan_start_time = rtw_get_current_time(); /* Initialise the semaphore that will prevent simultaneous access - cannot be a mutex, since * we don't want to allow the same thread to start a new scan */ result = (rtw_bool_t)rtw_down_timeout_sema(&scan_result_handler_ptr.scan_semaphore, SCAN_LONGEST_WAIT_TIME); @@ -1504,12 +1254,11 @@ int wifi_scan_networks(rtw_scan_result_handler_t results_handler, void* user_dat count--; } if (count == 0) { - printf("[%d]WiFi: Scan is running. Wait 2s timeout.\n", - rtw_get_current_time()); + printf("WiFi: Scan is running. Wait 2s timeout.\n"); return RTW_TIMEOUT; } } - scan_result_handler_ptr.scan_start_time = rtw_get_current_time(); +// scan_result_handler_ptr.scan_start_time = rtw_get_current_time(); scan_result_handler_ptr.scan_running = 1; #endif @@ -1997,38 +1746,3 @@ int wifi_set_ch_deauth(__u8 enable) { //----------------------------------------------------------------------------// #endif //#if CONFIG_WLAN -#if CONFIG_DEBUG_LOG > 4 -extern void dump_bytes(uint32 addr, int size); - -static void test_rtk() { - printf("rltk_wlan_info = %p\n", &rltk_wlan_info); -// dump_bytes((u32)&rltk_wlan_info, 16); - _adapter *ad = rltk_wlan_info[1].dev; - printf("adapter = %p\n", ad); -// dump_bytes((u32)ad, 16); -// printf("bSurpriseRemoved [%p] = %d, +%d\n", &ad->bSurpriseRemoved, ad->bSurpriseRemoved, (u32)&ad->bSurpriseRemoved - (u32)ad); -// dump_bytes((u32)&ad->bSurpriseRemoved, 32); - printf("mlmepriv +%d, mlmeextpriv +%d, cmdpriv +d%\n", - (u32)(&ad->mlmepriv) - (u32)(ad), - (u32)(&ad->mlmeextpriv) - (u32)(ad), - (u32)(&ad->cmdpriv) - (u32)(ad)); - printf("xmitpriv +%d, recvpriv +%d, stapriv +%d\n", - (u32)(&ad->xmitpriv) - (u32)(ad), (u32)(&ad->recvpriv) - (u32)(ad), - (u32)(&ad->stapriv) - (u32)(ad)); - printf("bDriverStopped %d, hw_init_completed %d, cmdThread %d\n", - (u32)(&ad->bDriverStopped) - (u32)(ad), - (u32)(&ad->hw_init_completed) - (u32)(ad), - (u32)(&ad->cmdThread) - (u32)(ad)); - printf("intf_start %d, bup %d, pcodatapriv %d\n", - (u32)(&ad->intf_start) - (u32)(ad), (u32)(&ad->bup) - (u32)(ad), - (u32)(&ad->pcodatapriv) - (u32)(ad)); - printf("Sizeof(adapter) = %d\n", sizeof(struct _ADAPTER)); - if (sizeof(struct _ADAPTER) != 6088) { - printf("Error: Check aligned WiFi struct!\n"); - } -} - -MON_RAM_TAB_SECTION COMMAND_TABLE console_commands_wifi[] = { - { "RTK", 0, test_rtk, ": Test WiFi struct align"}, -}; -#endif diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h index 8946aa3..99ff05d 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.h @@ -8,7 +8,7 @@ #include "wifi_util.h" #include "wifi_ind.h" #include -#include "wifi_api.h" + #ifdef __cplusplus extern "C" { @@ -72,20 +72,21 @@ typedef struct { /****************************************************** * Structures ******************************************************/ +#define SCAN_USE_SEMAPHORE 0 + typedef struct internal_scan_handler{ rtw_scan_result_t** pap_details; rtw_scan_result_t * ap_details; - int scan_cnt; - rtw_bool_t scan_complete; - unsigned char max_ap_size; rtw_scan_result_handler_t gscan_result_handler; #if SCAN_USE_SEMAPHORE void * scan_semaphore; -#else - int scan_running; #endif + // unsigned int scan_start_time; void * user_data; - unsigned int scan_start_time; + unsigned char scan_cnt; + unsigned char max_ap_size; + volatile unsigned char scan_complete; + volatile unsigned char scan_running; } internal_scan_handler_t; typedef struct { @@ -569,7 +570,7 @@ int wifi_set_pscan_chan(__u8 * channel_list,__u8 * pscan_config, __u8 length); * * @return RTW_SUCCESS or RTW_ERROR */ -int wifi_get_setting(const char *ifname,rtw_wifi_setting_t *pSetting); +int wifi_get_setting(const char *ifname, rtw_wifi_setting_t *pSetting); /** Show the network information * diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c index f59fb0d..6640c45 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.c @@ -4,8 +4,17 @@ #include #include #include +#if 1 +#include "drv_types.h" // or #include "wlan_lib.h" +#else +#include "wifi_constants.h" +#include "wifi_structures.h" +#include "wlan_lib.h" // or #include "drv_types.h" +#endif #include +#define USE_WIFI_ADAPTER 1 // использовать прямое обращение в тело драйвера WiFi + int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) { memcpy(pwrq->ifr_name, ifname, 5); int ret = rltk_wlan_control(request, (void *) pwrq); @@ -23,8 +32,35 @@ int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) { return ret; } +#ifdef USE_WIFI_ADAPTER +extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h +LOCAL _adapter * get_padapter(const char *ifname) { + if(ifname[4] == '0') { + return *(_adapter **)((rltk_wlan_info[0].dev)->priv); + } else { + return *(_adapter **)((rltk_wlan_info[1].dev)->priv); + } + return NULL; +}; +#endif + /* ssid = NULL -> not connected */ int wext_get_ssid(const char *ifname, __u8 *ssid) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad != NULL && (pad->mlmepriv.fw_state & 0x41) != 0) { + int len = pad->mlmepriv.cur_network.network.Ssid.SsidLength; + if(len > 32) rtw_memcpy(ssid, pad->mlmepriv.cur_network.network.Ssid.Ssid, 32); + else { + rtw_memcpy(ssid, &pad->mlmepriv.cur_network.network.Ssid.Ssid, len); + ssid[len] = '\0'; + debug_printf("s=[%s]\n", ssid); + } + ret = RTW_SUCCESS; + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); iwr.u.essid.pointer = ssid; @@ -43,6 +79,7 @@ int wext_get_ssid(const char *ifname, __u8 *ssid) { ssid[ret] = '\0'; } return ret; +#endif } int wext_set_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) { @@ -164,6 +201,20 @@ int wext_set_passphrase(const char *ifname, const __u8 *passphrase, } int wext_get_passphrase(const char *ifname, __u8 *passphrase) { +#if USE_WIFI_ADAPTER + extern int rtw_wx_get_passphrase(struct net_device *dev, struct iw_request_info *a, union iwreq_data *wrqu, char *extra); + struct net_device * pdev = rltk_wlan_info[0].dev; + if(ifname[4] != '0') + pdev = rltk_wlan_info[1].dev; + rtw_result_t ret = RTW_ERROR; + if(pdev) { + uint16 len[4]; + ret = rtw_wx_get_passphrase(pdev, 0, &len, passphrase); + if(ret == RTW_SUCCESS) passphrase[len[2]] = '\0'; + debug_printf("pas[%d]-<%s>\n", len[2], passphrase); + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); iwr.u.passphrase.pointer = (void *) passphrase; @@ -173,6 +224,7 @@ int wext_get_passphrase(const char *ifname, __u8 *passphrase) { passphrase[ret] = '\0'; } return ret; +#endif } #if 0 @@ -198,6 +250,18 @@ int wext_get_mac_address(const char *ifname, char * mac) #endif int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + ret = rtw_pm_set_ips(pad, ips_mode); // 2 режима 1,2 ! + if(ret == RTW_SUCCESS) { + LeaveAllPowerSaveMode(pad); + ret = rtw_pm_set_lps(pad, lps_mode); + } + } + return ret; +#else struct iwreq iwr; __u16 pindex = 7; __u8 para[16]; // 7 + (1+1+1) + (1+1+1) @@ -214,8 +278,9 @@ int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) { iwr.u.data.pointer = ¶[0]; iwr.u.data.length = pindex; return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); +#endif } - +/* int wext_disable_powersave(const char *ifname) { struct iwreq iwr; __u16 pindex = 7; @@ -234,9 +299,22 @@ int wext_disable_powersave(const char *ifname) { iwr.u.data.length = pindex; return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); } +*/ int wext_set_tdma_param(const char *ifname, __u8 slot_period, __u8 rfon_period_len_1, __u8 rfon_period_len_2, __u8 rfon_period_len_3) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + ret = rtw_pm_set_tdma_param(pad, + slot_period, + rfon_period_len_1, + rfon_period_len_2, + rfon_period_len_3); + } + return ret; +#else struct iwreq iwr; int ret = -1; __u16 pindex = 7; @@ -254,9 +332,18 @@ int wext_set_tdma_param(const char *ifname, __u8 slot_period, iwr.u.data.pointer = para; iwr.u.data.length = pindex; return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); +#endif } int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + ret = rtw_pm_set_lps_dtim(pad, lps_dtim); + } + return ret; +#else struct iwreq iwr; int ret = -1; __u16 pindex = 7; @@ -274,10 +361,19 @@ int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) { iwr.u.data.length = pindex; ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); return ret; +#endif } int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) { - +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + *lps_dtim = rtw_pm_get_lps_dtim(pad); + ret = RTW_SUCCESS; + } + return ret; +#else struct iwreq iwr; int ret = -1; __u16 pindex = 7; @@ -303,6 +399,7 @@ int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) { ret = -1; } return ret; +#endif } int wext_set_tos_value(const char *ifname, __u8 *tos_value) { @@ -416,21 +513,49 @@ int wext_set_mode(const char *ifname, int mode) { } int wext_get_mode(const char *ifname, int *mode) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + uint16 f = pad->mlmepriv.fw_state; + if(f & 8) *mode = 2; + else if(f & 0x60) *mode = 1; + else if(!(f & 0x10)) *mode = 0; + else *mode = 3; + ret = RTW_SUCCESS; + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); int ret = iw_ioctl(ifname, SIOCGIWMODE, &iwr); if (ret >= 0) *mode = iwr.u.mode; return ret; +#endif } int wext_set_ap_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) { +#ifdef USE_WIFI_ADAPTER + struct net_device * pdev = rltk_wlan_info[0].dev; + if(ifname[4] != '0') + pdev = rltk_wlan_info[1].dev; + rtw_result_t ret = RTW_ERROR; + if(pdev) { + uint16 len[2]; + len[0] = ssid_len; + len[1] = (ssid_len != 0); + ret = rtw_wx_set_ap_essid(pdev, 0, &len, ssid); + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); iwr.u.essid.pointer = (void *) ssid; iwr.u.essid.length = ssid_len; iwr.u.essid.flags = (ssid_len != 0); return iw_ioctl(ifname, SIOCSIWPRIVAPESSID, &iwr); +#endif } int wext_set_country(const char *ifname, rtw_country_code_t country_code) { @@ -441,12 +566,25 @@ int wext_set_country(const char *ifname, rtw_country_code_t country_code) { } int wext_get_rssi(const char *ifname, int *rssi) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + if(pad->mlmepriv.fw_state & 1) { + *rssi = pad->recvpriv.rssi; // +2932 + } + else *rssi = 0; + ret = RTW_SUCCESS; + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); int ret = iw_ioctl(ifname, SIOCGIWSENS, &iwr); if (ret >= 0) *rssi = 0 - iwr.u.sens.value; return ret; +#endif } int wext_set_pscan_channel(const char *ifname, @@ -483,22 +621,50 @@ int wext_set_pscan_channel(const char *ifname, return ret; } +//extern int rtw_wx_set_freq(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); + int wext_set_channel(const char *ifname, __u8 ch) { +#if 0 //def USE_WIFI_ADAPTER + struct net_device * pdev = rltk_wlan_info[0].dev; + if(ifname[4] != '0') + pdev = rltk_wlan_info[1].dev; + rtw_result_t ret = RTW_ERROR; + if(pdev) { + ret = rtw_wx_set_freq(pdev, ch, NULL, NULL); + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); iwr.u.freq.m = 0; iwr.u.freq.e = 0; iwr.u.freq.i = ch; return iw_ioctl(ifname, SIOCSIWFREQ, &iwr); +#endif } int wext_get_channel(const char *ifname, __u8 *ch) { +#ifdef USE_WIFI_ADAPTER + _adapter * pad = get_padapter(ifname); + rtw_result_t ret = RTW_ERROR; + if(pad) { + if(pad->mlmepriv.fw_state & 1) { + *ch = pad->mlmepriv.cur_network.network.Configuration.DSConfig;// .Reserved[1]; //.PhyInfo.Optimum_antenna; // + } + else { + *ch = pad->mlmeextpriv.cur_channel; // + } + ret = RTW_SUCCESS; + } + return ret; +#else struct iwreq iwr; memset(&iwr, 0, sizeof(iwr)); int ret = iw_ioctl(ifname, SIOCGIWFREQ, &iwr); if (ret >= 0) *ch = iwr.u.freq.i; return ret; +#endif } int wext_register_multicast_address(const char *ifname, rtw_mac_t *mac) { diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.h b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.h index aa691d6..b3c6602 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_util.h +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_util.h @@ -32,6 +32,7 @@ int wext_set_mac_address(const char *ifname, char * mac); int wext_get_mac_address(const char *ifname, char * mac); int wext_enable_powersave(const char *ifname, __u8 lps_mode, __u8 ips_mode); int wext_disable_powersave(const char *ifname); +#define wext_disable_powersave(n) wext_enable_powersave(n, 0, 0) int wext_set_tdma_param(const char *ifname, __u8 slot_period, __u8 rfon_period_len_1, __u8 rfon_period_len_2, __u8 rfon_period_len_3); int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim); int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim); diff --git a/RTL00_SDKV35a/component/common/api/wifi_api.c b/RTL00_SDKV35a/component/common/api/wifi_api.c index e965837..ef776b7 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api.c +++ b/RTL00_SDKV35a/component/common/api/wifi_api.c @@ -4,11 +4,20 @@ * Created on: 01/11/2017 * Author: pvvx */ -#include "FreeRTOS.h" -#include -#include "main.h" - +#include "user_config.h" #include +#include "rtl8195a.h" +#include "drv_types.h" +#include +#include "FreeRTOS.h" +#if 1 +#include "drv_types.h" // or #include "wlan_lib.h" +#else +#include "wifi_constants.h" +#include "wifi_structures.h" +//#include "wlan_lib.h" // or #include "drv_types.h" +#endif + #if CONFIG_EXAMPLE_WLAN_FAST_CONNECT #error "Udnef CONFIG_EXAMPLE_WLAN_FAST_CONNECT!" @@ -28,8 +37,6 @@ #include "ethernet_mii/ethernet_mii.h" #endif -#include "wlan_lib.h" - #include "flash_eep.h" #include "feep_config.h" @@ -37,6 +44,17 @@ #include "main.h" #include "wifi_user_set.h" +#if 0 +#undef debug_printf +#define debug_printf(fmt, ...) rtl_printf(fmt, ##__VA_ARGS__) +#undef info_printf +#define info_printf(fmt, ...) rtl_printf(fmt, ##__VA_ARGS__) +#undef warning_printf +#define warning_printf(fmt, ...) rtl_printf(fmt, ##__VA_ARGS__) +#undef error_printf +#define error_printf(fmt, ...) rtl_printf(fmt, ##__VA_ARGS__) +#endif + #if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP extern void cmd_ap_wps(int argc, char **argv); extern int wpas_wps_dev_config(u8 *dev_addr, u8 bregistrar); @@ -46,7 +64,7 @@ extern int wpas_wps_dev_config(u8 *dev_addr, u8 bregistrar); //--- Wlan Config Init------------------- WIFI_CONFIG wifi_cfg = { .mode = DEF_WIFI_MODE, // rtw_mode_t - .sleep = DEF_WIFI_ST_SLEEP, + .adaptivity = DEF_WIFI_ADAPTIVITY, // rtw_adaptivity_mode_t .country_code = DEF_WIFI_COUNTRY,// rtw_country_code_t .tx_pwr = DEF_WIFI_TX_PWR, // rtw_tx_pwr_percentage_t .bgn = DEF_WIFI_BGN, // rtw_network_mode_t @@ -57,7 +75,7 @@ WIFI_CONFIG wifi_cfg = { SOFTAP_CONFIG wifi_ap_cfg = { .ssid = DEF_AP_SSID, .password = DEF_AP_PASSWORD, - .security_type = DEF_AP_SECURITY, // RTW_SECURITY_WPA2_AES_PSK or RTW_SECURITY_OPEN + .security = DEF_AP_SECURITY, // RTW_SECURITY_WPA2_AES_PSK or RTW_SECURITY_OPEN .beacon_interval = DEF_AP_BEACON, .channel = DEF_AP_CHANNEL, .ssid_hidden = 0, @@ -75,9 +93,11 @@ STATION_CONFIG wifi_st_cfg = { .password = DEF_ST_PASSWORD, .bssid = DEF_ST_BSSID, .flg = DEF_ST_BSSID, - .security_type = DEF_ST_SECURITY, + .security = DEF_ST_SECURITY, .autoreconnect = DEF_ST_AUTORECONNECT, - .reconnect_pause = DEF_ST_RECONNECT_PAUSE + .reconnect_pause = DEF_ST_RECONNECT_PAUSE, + .sleep = DEF_ST_SLEEP, + .dtim = DEF_ST_LPS_DTIM }; DHCP_CONFIG wifi_st_dhcp = { .ip = DEF_ST_IP, @@ -86,10 +106,20 @@ DHCP_CONFIG wifi_st_dhcp = { .mode = 1 }; -rtw_mode_t wifi_run_mode = RTW_MODE_NONE; +unsigned char wifi_run_mode = RTW_MODE_NONE; // rtw_mode_t +unsigned char wifi_st_status; -extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char*, int, char*, int, - int); +typedef int (*wlan_init_done_ptr)(void); +typedef int (*write_reconnect_ptr)(uint8_t *data, uint32_t len); +//Function +#if CONFIG_AUTO_RECONNECT +extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char*, int, char*, int, int); +#endif +extern wlan_init_done_ptr p_wlan_init_done_callback; +//extern write_reconnect_ptr p_write_reconnect_ptr; +extern struct netif xnetif[NET_IF_NUM]; +extern uint8_t rtw_power_percentage_idx; +extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h #define PARM_RECONNECT 1 @@ -121,7 +151,8 @@ FEEP_ELEMENT feep_tab[] = { { FEEP_ID_AP_DHCP_CFG, sizeof(wifi_ap_dhcp), &wifi_ap_dhcp }, // Bit2 BID_AP_DHCP_CFG { FEEP_ID_ST_DHCP_CFG, sizeof(wifi_st_dhcp), &wifi_st_dhcp }, // Bit3 BID_ST_DHCP_CFG { FEEP_ID_WIFI_CFG, sizeof(wifi_cfg), &wifi_cfg }, // Bit4 BID_WIFI_CFG -// { FEEP_ID_LWIP_CFG, sizeof(lwip_conn_info), &lwip_conn_info }, // Bit5 + { FEEP_ID_AP_HOSTNAME, LWIP_NETIF_HOSTNAME_SIZE, &lwip_host_name[1] }, // Bit5 BID_AP_HOSTNAME + { FEEP_ID_ST_HOSTNAME, LWIP_NETIF_HOSTNAME_SIZE, &lwip_host_name[0] }, // Bit5 BID_ST_HOSTNAME { 0, 0, NULL } }; @@ -152,17 +183,7 @@ uint32 write_wifi_cfg(uint32 flg) return ret; } -typedef int (*wlan_init_done_ptr)(void); -typedef int (*write_reconnect_ptr)(uint8_t *data, uint32_t len); -//Function -#if CONFIG_AUTO_RECONNECT -extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char*, int, char*, int, - int); -#endif -extern wlan_init_done_ptr p_wlan_init_done_callback; -//extern write_reconnect_ptr p_write_reconnect_ptr; -extern struct netif xnetif[NET_IF_NUM]; - +#if CONFIG_WLAN_CONNECT_CB _WEAK void connect_start(void) { info_printf("\%s: Time at start %d ms.\n", __func__, xTaskGetTickCount()); @@ -172,18 +193,42 @@ _WEAK void connect_close(void) { info_printf("\%s: Time at start %d ms.\n", __func__, xTaskGetTickCount()); } +#endif -int wlan_init_done_callback(void) { - info_printf("WiFi Init after %d ms\n", xTaskGetTickCount()); +#ifdef NOT_USE_CALLS +LOCAL int wlan_init_done_callback(void) { + printf("WiFi Init after %d ms\n", xTaskGetTickCount()); return 0; } +#endif // #ifdef NOT_USE_CALLS //char wlan_st_name[] = WLAN0_NAME; char wlan_st_name[] = WLAN0_NAME; char wlan_ap_name[] = WLAN1_NAME; char wlan_st_netifn = 0; char wlan_ap_netifn = 1; -extern rtw_mode_t wifi_mode; // новый режим работы + + +uint32 get_new_ip(void) +{ + if(!(wifi_cfg.mode ^ wifi_run_mode)) { + return current_netif->ip_addr.addr; + } else if(wifi_cfg.mode == RTW_MODE_AP) { + return wifi_ap_dhcp.ip; + } else if(wifi_st_dhcp.mode == 2) { + return wifi_st_dhcp.ip; + } + return 0; +} +uint8 * get_new_hostname(void) +{ + if(!(wifi_cfg.mode ^ wifi_run_mode)) { + return current_netif->hostname; + } else if(wifi_cfg.mode == RTW_MODE_AP) { + return lwip_host_name[1]; + }; + return lwip_host_name[0]; +} LOCAL uint8 chk_ap_netif_num(void) { @@ -202,13 +247,95 @@ LOCAL uint8 chk_ap_netif_num(void) return wlan_ap_netifn; } -rtw_result_t wifi_run_ap(void) { - chk_ap_netif_num(); +extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h + +/*LOCAL _adapter * get_padapter(int num) { + if(rltk_wlan_info[num].enable) { + return *(_adapter **)((rltk_wlan_info[0].dev)->priv); + } + return NULL; +};*/ +#define get_padapter(num) (*(_adapter **)((rltk_wlan_info[num].dev)->priv)); + +LOCAL rtw_result_t _wext_set_lps_dtim(int adapter_num, uint8 lps_dtim ) { + _adapter * pad = get_padapter(adapter_num); + rtw_result_t ret = RTW_ERROR; + if(pad) { + ret = rtw_pm_set_lps_dtim(pad, lps_dtim); + } + return ret; +} + +LOCAL rtw_result_t _wext_enable_powersave(int adapter_num, uint8 ips_mode, uint8 lps_mode) { + _adapter * pad = get_padapter(adapter_num); + rtw_result_t ret = RTW_ERROR; + if(pad) { + ret = rtw_pm_set_ips(pad, ips_mode); // 2 режима 1,2 ! + if(ret == RTW_SUCCESS) { + LeaveAllPowerSaveMode(pad); + ret = rtw_pm_set_lps(pad, lps_mode); + } + } + return ret; +} + +LOCAL int _wext_cmp_ssid(int adapter_num, uint8 *ssid) +{ + _adapter * pad = get_padapter(adapter_num); + int ret = 0; + if((pad != NULL) && (pad->mlmepriv.fw_state & 0x41) != 0) { + int len = pad->mlmepriv.cur_network.network.Ssid.SsidLength; + if(len < 32) len++; + else len = 32; + ret = (rtl_memcmp(ssid, &pad->mlmepriv.cur_network.network.Ssid.Ssid, len) == 0); + debug_printf("%d s[%d]'%s'\n", pad->mlmepriv.fw_state, len, ssid); + } + return ret; +} + +#ifdef NOT_USE_CALLS + +LOCAL rtw_result_t _wext_get_mode(int adapter_num, int *mode) { + _adapter * pad = get_padapter(adapter_num); + rtw_result_t ret = RTW_ERROR; + if(pad) { + uint16 f = pad->mlmepriv.fw_state; + if(f & 8) *mode = 2; + else if(f & 0x60) *mode = 1; + else if(!(f & 0x10)) *mode = 0; + else *mode = 3; + ret = RTW_SUCCESS; + } + return ret; +} + +LOCAL rtw_result_t _wext_get_channel(int adapter_num, uint8 *ch) +{ + _adapter * pad = get_padapter(adapter_num); + rtw_result_t ret = RTW_ERROR; + if(pad) { + if(pad->mlmepriv.fw_state & 1) { + *ch = pad->mlmepriv.htpriv.ch_offset; + } + else { + *ch = pad->mlmeextpriv.cur_channel; + } + ret = RTW_SUCCESS; + } + return ret; +} + +#endif // #ifdef NOT_USE_CALLS + + +LOCAL rtw_result_t wifi_run_ap(void) { rtw_result_t ret = RTW_NOTAP; if( (wifi_mode == RTW_MODE_AP) || (wifi_mode == RTW_MODE_STA_AP) ){ info_printf("Starting AP (%s, netif%d)...\n", wlan_ap_name, wlan_ap_netifn); +/* netif_set_addr(&xnetif[WLAN_AP_NETIF_NUM], &wifi_ap_dhcp.ip, &wifi_ap_dhcp.mask, &wifi_ap_dhcp.gw); +*/ if(wext_set_sta_num(wifi_ap_cfg.max_sta) != 0) { // Max number of STAs, should be 1..3, default is 3 error_printf("AP not set max connections %d!\n", wifi_ap_cfg.max_sta); }; @@ -220,47 +347,57 @@ rtw_result_t wifi_run_ap(void) { wifi_ap_cfg.channel = 1; } ret = wifi_start_ap(wifi_ap_cfg.ssid, //char *ssid, - wifi_ap_cfg.security_type, //rtw_security_t ecurity_type, + wifi_ap_cfg.security, //rtw_security_t ecurity_type, wifi_ap_cfg.password, //char *password, wifi_ap_cfg.channel, //int channel wifi_ap_cfg.ssid_hidden); // - wifi_run_mode |= RTW_MODE_AP; +// wifi_run_mode |= RTW_MODE_AP; if (ret != RTW_SUCCESS) { error_printf("Error(%d): Start AP failed!\n\n", ret);; } else { - int timeout = 10000 / 200; + int timeout = wifi_test_timeout_ms / wifi_test_timeout_step_ms; while (1) { +#if 1 + if (_wext_cmp_ssid(WLAN_AP_NETIF_NUM, &wifi_ap_cfg.ssid )) { +#else char essid[33]; - if (wext_get_ssid(wlan_ap_name, (unsigned char *) essid) > 0) { - if (strcmp((const char * ) essid, - (const char * )wifi_ap_cfg.ssid) - == 0) { + if ((wext_get_ssid(wlan_ap_name, (unsigned char *) essid) > 0) + &&(strcmp((const char * ) essid, (const char * )wifi_ap_cfg.ssid) == 0)) { +#endif #ifdef CONFIG_DONT_CARE_TP pnetiff->flags |= NETIF_FLAG_IPSWITCH; #endif - dhcps_ip4addr_pool_start = DEF_AP_DHCP_START; - dhcps_ip4addr_pool_end = DEF_AP_DHCP_STOP; - dhcps_init(&xnetif[WLAN_AP_NETIF_NUM]); + if(wifi_ap_dhcp.mode) { +#if defined(DEF_AP_DHCP_START) && defined(DEF_AP_DHCP_STOP) + dhcps_ip4addr_pool_start = DEF_AP_DHCP_START; + dhcps_ip4addr_pool_end = DEF_AP_DHCP_STOP; +#endif + dhcps_init(&xnetif[WLAN_AP_NETIF_NUM]); + }; info_printf("AP '%s' started after %d ms\n", wifi_ap_cfg.ssid, xTaskGetTickCount()); show_wifi_ap_ip(); if(wifi_cfg.save_flg & (BID_WIFI_AP_CFG | BID_AP_DHCP_CFG)) write_wifi_cfg(wifi_cfg.save_flg & (BID_WIFI_AP_CFG | BID_AP_DHCP_CFG)); ret = RTW_SUCCESS; +#if CONFIG_WLAN_CONNECT_CB + // extern void connect_start(void); + connect_start(); +#endif break; - } } if (timeout == 0) { error_printf("Start AP timeout!\n"); ret = RTW_TIMEOUT; break; } - vTaskDelay(200 / portTICK_RATE_MS); + vTaskDelay(wifi_test_timeout_step_ms / portTICK_RATE_MS); timeout--; } } } return ret; + } LOCAL rtw_result_t StartStDHCPClient(void) @@ -300,14 +437,23 @@ LOCAL rtw_result_t StartStDHCPClient(void) ret = RTW_ERROR; } } + if(ret == RTW_SUCCESS) { + show_wifi_st_ip(); + wifi_st_status = WIFI_STA_CONNECTED; +#if CONFIG_WLAN_CONNECT_CB + // extern void connect_start(void); + connect_start(); +#endif + } return ret; } -static void wifi_autoreconnect_thread_(void *param) { +LOCAL void wifi_autoreconnect_thread_(void *param) { int ret = RTW_ERROR; struct wifi_autoreconnect_param *reconnect_param = (struct wifi_autoreconnect_param *) param; printf("auto reconnect ...\n"); + wifi_st_status = WIFI_STA_RECONNECT; ret = wifi_connect( wifi_st_cfg.bssid, wifi_st_cfg.flg, @@ -326,14 +472,7 @@ static void wifi_autoreconnect_thread_(void *param) { if(wifi_cfg.save_flg & BID_WIFI_ST_CFG) write_wifi_cfg(BID_WIFI_ST_CFG); // Start DHCPClient - ret = StartStDHCPClient(); - if(ret == RTW_SUCCESS) { - show_wifi_st_ip(); -#if CONFIG_WLAN_CONNECT_CB - // extern void connect_start(void); - connect_start(); -#endif - } + StartStDHCPClient(); } vTaskDelete(NULL); } @@ -363,17 +502,17 @@ LOCAL void st_set_autoreconnect(uint8 mode, uint8 count, uint16 timeout) { ad->mlmeextpriv.auto_reconnect = (mode != 0); } -rtw_result_t wifi_run_st(void) { +LOCAL rtw_result_t wifi_run_st(void) { rtw_result_t ret = RTW_SUCCESS; - chk_ap_netif_num(); +// chk_ap_netif_num(); if((wifi_mode == RTW_MODE_STA) || (wifi_mode == RTW_MODE_STA_AP)) { #if CONFIG_AUTO_RECONNECT // p_wlan_autoreconnect_hdl = NULL; if (wifi_st_cfg.autoreconnect) { st_set_autoreconnect(1, wifi_st_cfg.autoreconnect, wifi_st_cfg.reconnect_pause); -// ret = wext_set_autoreconnect(WLAN0_NAME, 1, wifi_st_cfg.autoreconnect, wifi_st_cfg.reconnect_pause); -// if (ret != RTW_SUCCESS) -// warning_printf("ERROR: Operation failed! Error=%d\n", ret); + ret = wext_set_autoreconnect(WLAN0_NAME, 1, wifi_st_cfg.autoreconnect, wifi_st_cfg.reconnect_pause); + if (ret != RTW_SUCCESS) + warning_printf("ERROR: Operation failed! Error=%d\n", ret); } #endif info_printf("Connected to AP (%s, netif%d)...\n", wlan_st_name, wlan_st_netifn); @@ -381,71 +520,60 @@ rtw_result_t wifi_run_st(void) { wifi_st_cfg.bssid, wifi_st_cfg.flg, wifi_st_cfg.ssid, - wifi_st_cfg.security_type, + idx_to_rtw_security(wifi_st_cfg.security), wifi_st_cfg.password, -1, NULL); - wifi_run_mode |= RTW_MODE_STA; + wifi_st_status = WIFI_STA_START; +// wifi_run_mode |= RTW_MODE_STA; if (ret != RTW_SUCCESS) { error_printf("%s: Operation failed! Error(%d)\n", __func__, ret); } else { if(wifi_cfg.save_flg & BID_WIFI_ST_CFG) write_wifi_cfg(BID_WIFI_ST_CFG); // Start DHCPClient - ret = StartStDHCPClient(); - if(ret == RTW_SUCCESS) { - show_wifi_st_ip(); -#if CONFIG_WLAN_CONNECT_CB - // extern void connect_start(void); - connect_start(); -#endif - } + StartStDHCPClient(); } }; return ret; } -int _wifi_on(rtw_mode_t mode) { +LOCAL int _wifi_on(rtw_mode_t mode) { int ret = 0; - uint32 timeout = xTaskGetTickCount(); - uint8 devnum; - - if (rltk_wlan_running(WLAN0_IDX)) { +/* + if (!((rltk_wlan_running(WLAN0_IDX) == 0) && (rltk_wlan_running(WLAN1_IDX) == 0))) { warning_printf("WIFI is already running\n"); return 0; } - - static int event_init = 0; - if (event_init == 0) { - init_event_callback_list(); - event_init = 1; - } - wifi_mode = mode; +*/ info_printf("Initializing WIFI...\n"); + uint8 devnum = (mode == RTW_MODE_STA_AP); // flag = 1 -> 2 netif + wifi_mode = mode; + chk_ap_netif_num(); + // set wifi mib - // adaptivity - wext_set_adaptivity(RTW_ADAPTIVITY_DISABLE); -// wext_set_adaptivity(RTW_ADAPTIVITY_NORMAL); -// wext_set_adaptivity(RTW_ADAPTIVITY_CARRIER_SENSE); + wext_set_adaptivity(wifi_cfg.adaptivity & 3); // rtw_adaptivity_mode_t - devnum = (mode == RTW_MODE_STA_AP); // flag use 2 netif + ret = rltk_wlan_init(WLAN0_IDX, mode); - ret = rltk_wlan_init(0, mode); + netif_set_up(&xnetif[0]); if (ret < 0) return ret; if(devnum) { - netif_set_up(&xnetif[1]); - ret = rltk_wlan_init(1, mode); + ret = rltk_wlan_init(WLAN1_IDX, mode); if (ret < 0) return ret; + netif_set_up(&xnetif[1]); } else { netif_set_down(&xnetif[1]); } - rltk_wlan_start(0); - if(devnum) rltk_wlan_start(1); + + uint32 timeout = xTaskGetTickCount(); + rltk_wlan_start(WLAN0_IDX); + if(devnum) rltk_wlan_start(WLAN1_IDX); while (1) { - if (rltk_wlan_running(0) && - rltk_wlan_running(devnum) ) { + if (rltk_wlan_running(WLAN0_IDX) + && rltk_wlan_running(devnum) ) { #if CONFIG_DEBUG_LOG > 2 printf("WIFI initialized (%d ms)\n", xTaskGetTickCount() - timeout); #endif @@ -462,7 +590,7 @@ int _wifi_on(rtw_mode_t mode) { extern int lwip_init_done; -void _LwIP_Init(void) +LOCAL void _LwIP_Init(void) { if(!lwip_init_done) { int idx; @@ -470,14 +598,14 @@ void _LwIP_Init(void) /* Create tcp_ip stack thread */ tcpip_init( NULL, NULL ); - chk_ap_netif_num(); // Исполняется после _wifi_on() +// chk_ap_netif_num(); // Исполняется после _wifi_on() for(idx = 0; idx < NET_IF_NUM; idx++) { xnetif[idx].name[0] = 'r'; xnetif[idx].name[1] = '0' + idx; } netif_add(&xnetif[WLAN_ST_NETIF_NUM], (struct netif *)&wifi_st_dhcp.ip, (struct netif *)&wifi_st_dhcp.mask, (struct netif *)&wifi_st_dhcp.gw, NULL, ðernetif_init, &tcpip_input); netif_add(&xnetif[WLAN_AP_NETIF_NUM], (struct netif *)&wifi_ap_dhcp.ip, (struct netif *)&wifi_ap_dhcp.mask, (struct netif *)&wifi_ap_dhcp.gw, NULL, ðernetif_init, &tcpip_input); - #if CONFIG_ETHERNET // && NET_IF_NUM > 2 +#if CONFIG_ETHERNET // && NET_IF_NUM > 2 { struct ip_addr ipaddr; struct ip_addr netmask; @@ -487,7 +615,7 @@ void _LwIP_Init(void) gw.addr = DEF_EH_GW; netif_add(&xnetif[2], &ipaddr, &netmask, &gw, NULL, ðernetif_mii_init, &tcpip_input); } - #endif +#endif /* Registers the default network interface. */ netif_set_default(&xnetif[0]); /* When the netif is fully configured this function must be called.*/ @@ -496,8 +624,8 @@ void _LwIP_Init(void) } info_printf("interface %d is initialized\n", idx); lwip_init_done = 1; - // для отслеживания первого старта ? -// wifi_mode = RTW_MODE_NONE; + + init_event_callback_list(); } } @@ -505,28 +633,23 @@ int wifi_run(rtw_mode_t mode) { int ret = 0; #if CONFIG_DEBUG_LOG > 4 debug_printf("\n%s(%d), %d\n", __func__, mode, wifi_run_mode); + debug_printf("old mode = %d, new mode = %d\n", wifi_run_mode, mode); #endif - if(wifi_run_mode != mode) { - if(wifi_run_mode & RTW_MODE_AP) { -#if CONFIG_DEBUG_LOG > 4 - debug_printf("dhcps_deinit()\n"); -#endif - dhcps_deinit(); - } + if(wifi_mode) { // != mode) { info_printf("Deinitializing WIFI ...\n"); wifi_off(); - wifi_run_mode = RTW_MODE_NONE; + wifi_st_status = WIFI_STA_OFF; +// wifi_run_mode = RTW_MODE_NONE; vTaskDelay(30); + } + if (mode != RTW_MODE_NONE) { if (_wifi_on(mode) < 0) { error_printf("Wifi On failed!\n"); goto error_end; }; - }; - if (mode != RTW_MODE_NONE) { if(wifi_set_country(wifi_cfg.country_code) != RTW_SUCCESS) { error_printf("WiFi: Error set tx country_code (%d)!", wifi_cfg.country_code); }; -// extern uint8_t rtw_power_percentage_idx; if(rtw_power_percentage_idx != wifi_cfg.tx_pwr) { if(rltk_set_tx_power_percentage(wifi_cfg.tx_pwr) != RTW_SUCCESS) { error_printf("WiFi: Error set tx power (%d)!", wifi_cfg.tx_pwr); @@ -535,50 +658,83 @@ int wifi_run(rtw_mode_t mode) { if(wifi_set_network_mode(wifi_cfg.bgn) != RTW_SUCCESS) { error_printf("WiFi: Error set network mode (%d)!", wifi_cfg.bgn); } - debug_printf("mode == wifi_mode? (%d == %d?)\n", mode, wifi_mode); - switch(wifi_mode) { + debug_printf("mode=%d, wifi_mode=%d, old_mоde=%d\n", mode, wifi_mode, wifi_run_mode); + + if(mode <= RTW_MODE_STA_AP) { + struct netif * pnif = &xnetif[WLAN_ST_NETIF_NUM]; +#if LWIP_NETIF_HOSTNAME + // @todo ethernetif_init()... + pnif->hostname = lwip_host_name[0]; +#ifdef USE_NETBIOS + netbios_set_name(WLAN_ST_NETIF_NUM, lwip_host_name[0]); +#endif +#endif + netif_set_addr(&xnetif[WLAN_ST_NETIF_NUM], &wifi_st_dhcp.ip, + &wifi_st_dhcp.mask, &wifi_st_dhcp.gw); + pnif = &xnetif[WLAN_AP_NETIF_NUM]; +#if LWIP_NETIF_HOSTNAME + // @todo ethernetif_init()... + pnif->hostname = lwip_host_name[1]; +#ifdef USE_NETBIOS + netbios_set_name(WLAN_AP_NETIF_NUM, lwip_host_name[1]); +#endif +#endif + netif_set_addr(&xnetif[WLAN_AP_NETIF_NUM], &wifi_ap_dhcp.ip, + &wifi_ap_dhcp.mask, &wifi_ap_dhcp.gw); + + } + switch(mode) { case RTW_MODE_STA_AP: - wifi_run_ap(); - wifi_run_st(); - break; + ret = wifi_run_ap() | wifi_run_st(); +// _wext_enable_powersave(0, 0, 0); +// _wext_set_lps_dtim(0, 0); + break; case RTW_MODE_STA: - wifi_run_st(); - break; + ret = wifi_run_st(); + if(_wext_set_lps_dtim(0, wifi_st_cfg.dtim)!= RTW_SUCCESS) { + error_printf("WiFi: Error set DTIM(%d)!", wifi_st_cfg.dtim); + }; + if(_wext_enable_powersave(0, wifi_st_cfg.sleep & 1, (wifi_st_cfg.sleep >> 1) & 1) != RTW_SUCCESS) { + error_printf("WiFi: Error set powersave mode!"); + }; + break; case RTW_MODE_AP: - wifi_run_ap(); + ret = wifi_run_ap(); +// _wext_enable_powersave(WLAN0_NAME, 0, 0); break; #if 0// CONFIG_ENABLE_?? case RTW_MODE_PROMISC: + // @todo break; #endif #if CONFIG_ENABLE_P2P case RTW_MODE_P2P: + // @todo break; #endif default: + ret = 1; error_printf("WiFi: Error mode(%d)\n", wifi_mode); - } -#if CONFIG_INTERACTIVE_MODE - /* Initial uart rx swmaphore*/ - vSemaphoreCreateBinary(uart_rx_interrupt_sema); - xSemaphoreTake(uart_rx_interrupt_sema, 1/portTICK_RATE_MS); - start_interactive_mode(); -#endif - if(wifi_cfg.sleep) { - if(wext_enable_powersave(WLAN0_NAME, 1, 1) != RTW_SUCCESS) { - error_printf("WiFi: Error set powersave mode!"); - }; - } - ret = 1; + }; + wifi_run_mode = mode; + if(ret == 0 && (wifi_cfg.save_flg & BID_WIFI_CFG)) { + wifi_cfg.mode = mode; + write_wifi_cfg(BID_WIFI_CFG); + }; } else { - ret = 1; + ret = 0; error_end: #if CONFIG_WLAN_CONNECT_CB connect_close(); #endif + if(wifi_run_mode) { + wifi_disconnect(); + }; wifi_off(); + wifi_st_status = WIFI_STA_OFF; + wifi_run_mode = RTW_MODE_NONE; + chk_ap_netif_num(); }; - chk_ap_netif_num(); return ret; } @@ -587,7 +743,7 @@ void wifi_init(void) { debug_printf("\nLoad Config\n"); read_wifi_cfg(wifi_cfg.load_flg); // DEF_LOAD_CFG // Call back from wlan driver after wlan init done - p_wlan_init_done_callback = wlan_init_done_callback; +// p_wlan_init_done_callback = wlan_init_done_callback; // Call back from application layer after wifi_connection success // p_write_reconnect_ptr = wlan_write_reconnect_data_to_flash; p_wlan_autoreconnect_hdl = NULL; @@ -643,7 +799,7 @@ unsigned char *tab_txt_rtw_eccryption[] = { rtw_security_t idx_to_rtw_security(unsigned char idx) { - if(idx > 8) idx = 5; // RTW_SECURITY_WPA2_MIXED_PSK + if(idx > IDX_SECURITY_UNKNOWN - 1) idx = IDX_SECURITY_WPA2_AES_PSK; return (rtw_security_t)tab_code_rtw_secyrity[idx]; } @@ -654,6 +810,12 @@ unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type) return i; } +unsigned char * idx_security_to_str(unsigned char idx) +{ + if(idx > IDX_SECURITY_UNKNOWN) idx = IDX_SECURITY_UNKNOWN; + return tab_txt_rtw_secyrity[idx]; +} + unsigned char * rtw_security_to_str(rtw_security_t rtw_sec_type) { return tab_txt_rtw_secyrity[rtw_security_to_idx(rtw_sec_type)]; @@ -673,16 +835,18 @@ void show_wifi_MAC(void) { void show_wifi_st_cfg(void) { printf("\tSSID: '%s'\n", wifi_st_cfg.ssid); printf("\tPassword: '%s'\n", wifi_st_cfg.password); - printf("\tSecurity type: %p\n", wifi_st_cfg.security_type); + printf("\tSecurity type: %s\n", idx_security_to_str(wifi_st_cfg.security)); printf("\tAuto-reconnect: %d\n", wifi_st_cfg.autoreconnect); printf("\tReconnect pause: %d\n", wifi_st_cfg.reconnect_pause); + printf("\tSleep mode: %p\n", wifi_st_cfg.sleep); + printf("\tDTIM: %d\n", wifi_st_cfg.dtim); } void show_wifi_ap_cfg(void) { printf("\tSSID: '%s'\n", wifi_ap_cfg.ssid); printf("\tSSID hidden: %d\n", wifi_ap_cfg.ssid_hidden); printf("\tPassword: '%s'\n", wifi_ap_cfg.password); - printf("\tSecurity type: %p\n", wifi_ap_cfg.security_type); + printf("\tSecurity type: %s\n", (wifi_ap_cfg.security)? tab_txt_rtw_secyrity[IDX_SECURITY_WPA2_AES_PSK] : tab_txt_rtw_secyrity[IDX_SECURITY_OPEN]); printf("\tChannel: %d\n", wifi_ap_cfg.channel); printf("\tBeacon interval: %d ms\n", wifi_ap_cfg.beacon_interval); printf("\tMax connections: %d\n", wifi_ap_cfg.max_sta); @@ -691,9 +855,9 @@ void show_wifi_ap_cfg(void) { void show_wifi_cfg(void) { printf("\tStart mode: %p\n", wifi_cfg.mode); printf("\tCountry code: %d\n", wifi_cfg.country_code); - printf("\tSleep mode: %p\n", wifi_cfg.sleep); printf("\tNetwork mode: %d\n", wifi_cfg.bgn); printf("\tTx power: %d\n", wifi_cfg.tx_pwr); + printf("\tAdaptivity: %d\n", wifi_cfg.adaptivity); printf("\tLoad flags: %p\n", wifi_cfg.load_flg); printf("\tSave flags: %p\n", wifi_cfg.save_flg); } diff --git a/RTL00_SDKV35a/component/common/api/wifi_api.h b/RTL00_SDKV35a/component/common/api/wifi_api.h index 17df697..461f19b 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api.h +++ b/RTL00_SDKV35a/component/common/api/wifi_api.h @@ -29,8 +29,10 @@ extern char str_rom_57ch3Dch0A[]; // "========================================== #define BID_AP_DHCP_CFG (1 << 2) #define BID_ST_DHCP_CFG (1 << 3) #define BID_WIFI_CFG (1 << 4) +#define BID_AP_HOSTNAME (1 << 5) +#define BID_ST_HOSTNAME (1 << 6) -#define BID_ALL_WIFI_CFG (BID_WIFI_AP_CFG|BID_WIFI_ST_CFG|BID_AP_DHCP_CFG|BID_ST_DHCP_CFG) +#define BID_ALL_WIFI_CFG (BID_WIFI_AP_CFG|BID_WIFI_ST_CFG|BID_AP_DHCP_CFG|BID_ST_DHCP_CFG|BID_AP_HOSTNAME|BID_ST_HOSTNAME) #define WLAN_ST_NETIF_NUM wlan_st_netifn #define WLAN_AP_NETIF_NUM wlan_ap_netifn @@ -40,9 +42,11 @@ extern char str_rom_57ch3Dch0A[]; // "========================================== #define FEEP_ID_WIFI_ST_CFG 0x5453 // id:'ST' #define FEEP_ID_AP_DHCP_CFG 0x4144 // id:'DA' #define FEEP_ID_ST_DHCP_CFG 0x5344 // id:'DS' -#define FEEP_ID_UART_CFG 0x5530 // id:'0U', type: UART_LOG_CONF -#define FEEP_ID_LWIP_CFG 0x4C30 // id:'0L', type: struct atcmd_lwip_conf -#define FEEP_ID_DHCP_CFG 0x4430 // id:'0D', type: struct +#define FEEP_ID_AP_HOSTNAME 0x4148 // id:'HA' +#define FEEP_ID_ST_HOSTNAME 0x5348 // id:'HP' +//#define FEEP_ID_UART_CFG 0x5530 // id:'0U', type: UART_LOG_CONF +//#define FEEP_ID_LWIP_CFG 0x4C30 // id:'0L', type: struct atcmd_lwip_conf +//#define FEEP_ID_DHCP_CFG 0x4430 // id:'0D', type: struct //========================================= #define IW_PASSPHRASE_MAX_SIZE 64 #define NDIS_802_11_LENGTH_SSID 32 @@ -54,32 +58,34 @@ extern char str_rom_57ch3Dch0A[]; // "========================================== //--- Wlan Config struct------------------- typedef struct _wifi_config { unsigned char mode; // rtw_mode_t - unsigned char sleep; + unsigned char adaptivity; // rtw_adaptivity_mode_t unsigned char country_code; // rtw_country_code_t unsigned char tx_pwr; // rtw_tx_pwr_percentage_t unsigned char bgn; // 802.11 rtw_network_mode_t - unsigned char load_flg; + unsigned char load_flg; // см. BID_WIFI_CFG.. unsigned char save_flg; } WIFI_CONFIG, *PWIFI_CONFIG; //---- Interface 0 - wlan0 - AP - struct -- typedef struct _softap_config { - unsigned char ssid[NDIS_802_11_LENGTH_SSID]; - unsigned char password[IW_PASSPHRASE_MAX_SIZE]; - rtw_security_t security_type; // RTW_SECURITY_WPA2_AES_PSK or RTW_SECURITY_OPEN - uint16 beacon_interval; // Note: support 100 ~ 60000 ms, default 100 - unsigned char channel; // 1..14 + unsigned char ssid[NDIS_802_11_LENGTH_SSID+1]; + unsigned char password[IW_PASSPHRASE_MAX_SIZE+1]; + unsigned short beacon_interval; // Note: support 100 ~ 60000 ms, default 100 unsigned char ssid_hidden; // Note: default 0 + unsigned char security; // 0 = RTW_SECURITY_OPEN, 1 = RTW_SECURITY_WPA2_AES_PSK + unsigned char channel; // 1..14 unsigned char max_sta; // 1..3 } SOFTAP_CONFIG, *PSOFTAP_CONFIG; //---- Interface 1 - wlan1 - ST - struct - typedef struct _station_config { - unsigned char ssid[NDIS_802_11_LENGTH_SSID]; - unsigned char password[IW_PASSPHRASE_MAX_SIZE]; - rtw_security_t security_type; + unsigned char ssid[NDIS_802_11_LENGTH_SSID+1]; + unsigned char password[IW_PASSPHRASE_MAX_SIZE+1]; unsigned char bssid[6]; // Note: If bssid set is not ff.ff.ff.ff.ff.ff || 00:00:00:00:00:00 + unsigned char flg; // station will connect to the router with both ssid[], else if set flg - bssid[] matched. + unsigned char security; // IDX_SECURITY unsigned char autoreconnect; // 0 - none, 1..254 - count, 255 - all unsigned char reconnect_pause; // in sec - unsigned char flg; // station will connect to the router with both ssid[], else if set flg - bssid[] matched. + unsigned char sleep; // 0 - Off, 1 - IPS, 2 - LPS, 3 - IPS/LPS mode + unsigned char dtim; // LPS DTIM (2..) // rtw_adaptivity_mode_t } STATION_CONFIG, *PSTATION_CONFIG; //--- LwIP Config ------------------------- @@ -106,13 +112,39 @@ extern SOFTAP_CONFIG wifi_ap_cfg; extern DHCP_CONFIG wifi_ap_dhcp; extern STATION_CONFIG wifi_st_cfg; extern DHCP_CONFIG wifi_st_dhcp; -extern rtw_mode_t wifi_run_mode; -extern rtw_mode_t wifi_mode; +extern unsigned char wifi_run_mode; // rtw_mode_t +extern unsigned char wifi_mode; // rtw_mode_t +extern unsigned char wifi_st_status; // WIFI_STA_ENUM extern char wlan_st_name[]; extern char wlan_ap_name[]; extern char wlan_st_netifn; extern char wlan_ap_netifn; +/* WiFi Station & scan security */ +typedef enum { + IDX_SECURITY_OPEN = 0, //0 Open security + IDX_SECURITY_WEP_PSK, //1 WEP Security with open authentication + IDX_SECURITY_WEP_SHARED, //2 WEP Security with shared authentication + IDX_SECURITY_WPA_TKIP_PSK, //3 WPA Security with TKIP + IDX_SECURITY_WPA_AES_PSK, //4 WPA Security with AES + IDX_SECURITY_WPA2_TKIP_PSK, //5 WPA2 Security with TKIP + IDX_SECURITY_WPA2_AES_PSK, //6 WPA2 Security with AES + IDX_SECURITY_WPA2_MIXED_PSK, //7 WPA2 Security with AES & TKIP + IDX_SECURITY_WPA_WPA2_MIXED, //8 WPA/WPA2 Security + IDX_SECURITY_UNKNOWN //9 +} IDX_SECURITY; + +/* wifi_st_status */ +typedef enum { + WIFI_STA_OFF, + WIFI_STA_START, + WIFI_STA_RECONNECT, + WIFI_STA_CONNECTED +} WIFI_STA_ENUM; + + +uint8 * get_new_hostname(void); +uint32 get_new_ip(void); void show_wifi_ap_ip(void); void show_wifi_st_ip(void); @@ -127,7 +159,27 @@ void wifi_init(void); rtw_security_t idx_to_rtw_security(unsigned char idx); unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type); unsigned char * rtw_security_to_str(rtw_security_t rtw_sec_type); +unsigned char * idx_security_to_str(unsigned char idx); + +/* -------- Api WiFi Scan ------------------------------- */ +#include "wifi_conf.h" +#include "timers.h" + +#define SCAN_CHANNELS 14 +#define MAX_AP_SIZE 32 + +typedef struct web_scan_handler{ + TimerHandle_t timer; + rtw_scan_result_t * ap_details; + unsigned char ap_count; + unsigned char start_show; + unsigned char used_data; + volatile unsigned char flg; +} web_scan_handler_t; +extern web_scan_handler_t web_scan_handler_ptr; +typedef rtw_result_t (*api_scan_result_handler_t)(internal_scan_handler_t * ap_scan_result); +rtw_result_t api_wifi_scan(api_scan_result_handler_t scan_result_cb); +void wifi_close_scan(void); -void _LwIP_Init(void); #endif // _WIFI_API_H_ diff --git a/RTL00_SDKV35a/component/common/api/wifi_api_scan.c b/RTL00_SDKV35a/component/common/api/wifi_api_scan.c index f9fa93e..556668e 100644 --- a/RTL00_SDKV35a/component/common/api/wifi_api_scan.c +++ b/RTL00_SDKV35a/component/common/api/wifi_api_scan.c @@ -29,7 +29,13 @@ #include "ethernet_mii/ethernet_mii.h" #endif -#include "wlan_lib.h" +#if 1 +#include "drv_types.h" // or #include "wlan_lib.h" +#else +#include "wifi_constants.h" +#include "wifi_structures.h" +#include "wlan_lib.h" // or #include "drv_types.h" +#endif #include "flash_eep.h" #include "feep_config.h" @@ -39,93 +45,78 @@ #include "wifi_user_set.h" /****************************************************** - * Constants + * ******************************************************/ -#define SCAN_USE_SEMAPHORE 0 -#define MAX_AP_SIZE 64 + +web_scan_handler_t web_scan_handler_ptr; + +/* -------- WiFi Scan ------------------------------- */ +volatile uint8_t scan_end; extern internal_scan_handler_t scan_result_handler_ptr; void wifi_scan_each_report_hdl(char* buf, int buf_len, int flags, void* userdata); -/* - xQueueWiFiScan = xQueueCreate(25, sizeof(rtw_scan_result_t)); // Create a queue... - if(xQueueWebSrv) { -*/ -LOCAL void _wifi_scan_done_hdl(char* buf, int buf_len, int flags, void* userdata) { - int i = 0; - internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; - rtw_scan_handler_result_t scan_result_report; +LOCAL void _wifi_scan_done_hdl(char* buf, int buf_len, int flags, void* userdata); - for (i = 0; i < pscan_rec->scan_cnt; i++) { - rtw_memcpy(&scan_result_report.ap_details, - pscan_rec->pap_details[i], - sizeof(rtw_scan_result_t)); - scan_result_report.scan_complete = pscan_rec->scan_complete; - scan_result_report.user_data = pscan_rec->user_data; - (*pscan_rec->gscan_result_handler)(&scan_result_report); +void wifi_set_timer_scan(int ms) { + if(web_scan_handler_ptr.flg) { + if(xTimerChangePeriod(web_scan_handler_ptr.timer, ms, portMAX_DELAY) != pdPASS) { + error_printf("Error xTimerChangePeriod\n"); + } } - - pscan_rec->scan_complete = RTW_TRUE; - scan_result_report.scan_complete = RTW_TRUE; - (*pscan_rec->gscan_result_handler)(&scan_result_report); - - rtw_free(pscan_rec->ap_details); - rtw_free(pscan_rec->pap_details); -#if SCAN_USE_SEMAPHORE - rtw_up_sema(&pscan_rec->scan_semaphore); -#else - pscan_rec->scan_running = 0; -#endif - wifi_unreg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl); - wifi_unreg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl); +} +/* -------- WiFi Scan Close ------------------------- */ +void wifi_close_scan(void) +{ + internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; + web_scan_handler_t * pwscn_rec = &web_scan_handler_ptr; + printf("Close scan rec\n"); + if(pscan_rec->scan_running) { + wifi_unreg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl); + wifi_unreg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl); + if(pscan_rec->ap_details) rtw_free(pscan_rec->ap_details); + rtw_memset((void *) pscan_rec, 0, sizeof(internal_scan_handler_t)); + } + if(pwscn_rec->flg) { + if(pwscn_rec->timer) xTimerDelete(pwscn_rec->timer, portMAX_DELAY); + if(pwscn_rec->ap_details) rtw_free(pwscn_rec->ap_details); + rtw_memset(pwscn_rec, 0, sizeof(web_scan_handler_t)); + } +// pscan_rec->scan_complete = 1; +} +/* -------- WiFi Scan Done ------------------------- */ +LOCAL void _wifi_scan_done_hdl(char* buf, int buf_len, int flags, void* userdata) { + internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; + web_scan_handler_t * pwscn_rec = &web_scan_handler_ptr; + if(pscan_rec->gscan_result_handler) { + // сторонний вывод + (*pscan_rec->gscan_result_handler)(pscan_rec); + } + else { + // оставить структуру pscan_rec->pap_details[i] для вывода в web scan на 5 сек + if(pwscn_rec->flg && pscan_rec->scan_cnt) { + debug_printf("\nScan done, wait read rec\n"); + if(xTimerChangePeriod(pwscn_rec->timer, 5000, portMAX_DELAY) != pdPASS) { +// error_printf("Error xTimerChangePeriod\n"); + } else { + if(pwscn_rec->ap_details) rtw_free(pwscn_rec->ap_details); + pwscn_rec->ap_details = pscan_rec->ap_details; + pwscn_rec->ap_count = pscan_rec->scan_cnt; + wifi_unreg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl); + wifi_unreg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl); + rtw_memset((void *) pscan_rec, 0, sizeof(internal_scan_handler_t)); + pwscn_rec->flg = 2; + } + return; + }; + } + wifi_close_scan(); return; } -/* -------- WiFi Scan ------------------------------- */ -LOCAL int _wifi_scan(rtw_scan_type_t scan_type, rtw_bss_type_t bss_type) { - int ret; - scan_buf_arg * pscan_buf; - u16 flags = scan_type | (bss_type << 8); - wifi_reg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl, NULL); - wifi_reg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl, NULL); - return wext_set_scan(WLAN0_NAME, NULL, 0, flags); -} - -/* -------- WiFi Scan ------------------------------- */ +/* -------- WiFi Scan Start ------------------------- */ LOCAL int _wifi_scan_networks(rtw_scan_result_handler_t results_handler) { internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; -#if SCAN_USE_SEMAPHORE - rtw_bool_t result; - if(NULL == pscan_rec->scan_semaphore) - rtw_init_sema(&pscan_rec->scan_semaphore, 1); - - pscan_rec->scan_start_time = rtw_get_current_time(); - /* Initialise the semaphore that will prevent simultaneous access - cannot be a mutex, since - * we don't want to allow the same thread to start a new scan */ - result = (rtw_bool_t)rtw_down_timeout_sema(&pscan_rec->scan_semaphore, SCAN_LONGEST_WAIT_TIME); - if ( result != RTW_TRUE ) - { - /* Return error result, but set the semaphore to work the next time */ - rtw_up_sema(&pscan_rec->scan_semaphore); - return RTW_TIMEOUT; - } -#else - if (pscan_rec->scan_running) { - int count = 100; - while (pscan_rec->scan_running && count > 0) { - rtw_msleep_os(20); - count--; - } - if (count == 0) { - printf("[%d]WiFi: Scan is running. Wait 2s timeout.\n", - rtw_get_current_time()); - return RTW_TIMEOUT; - } - } - pscan_rec->scan_start_time = rtw_get_current_time(); - pscan_rec->scan_running = 1; -#endif - pscan_rec->gscan_result_handler = results_handler; pscan_rec->max_ap_size = MAX_AP_SIZE; pscan_rec->ap_details = (rtw_scan_result_t*) rtw_zmalloc(MAX_AP_SIZE * sizeof(rtw_scan_result_t) + MAX_AP_SIZE * sizeof(rtw_scan_result_t*)); @@ -133,19 +124,19 @@ LOCAL int _wifi_scan_networks(rtw_scan_result_handler_t results_handler) { pscan_rec->pap_details = (rtw_scan_result_t**) (&pscan_rec->ap_details[MAX_AP_SIZE]); pscan_rec->scan_cnt = 0; pscan_rec->scan_complete = RTW_FALSE; - pscan_rec->user_data = NULL; // ????????? - - if (_wifi_scan(RTW_SCAN_COMMAMD << 4 | RTW_SCAN_TYPE_ACTIVE, RTW_BSS_TYPE_ANY) == RTW_SUCCESS) { + pscan_rec->user_data = NULL; + wifi_reg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl, NULL); + wifi_reg_event_handler(WIFI_EVENT_SCAN_DONE, _wifi_scan_done_hdl, NULL); + if(wext_set_scan(WLAN0_NAME, NULL, 0, RTW_SCAN_TYPE_ACTIVE | (RTW_SCAN_COMMAMD << 4) | (RTW_BSS_TYPE_ANY << 8)) == RTW_SUCCESS) { return RTW_SUCCESS; - }; - rtw_free((u8*)pscan_rec->ap_details); + } }; - rtw_memset((void *) pscan_rec, 0, sizeof(internal_scan_handler_t)); + wifi_close_scan(); return RTW_ERROR; } -/* -------- WiFi Scan ------------------------------- */ -#define scan_channels 14 -/* -------- WiFi Scan ------------------------------- */ + +/* -------- wext_set_pscan_channels ----------------- */ + LOCAL int wext_set_pscan_channels(void) { struct iwreq iwr; int ret = -1; @@ -153,21 +144,18 @@ LOCAL int wext_set_pscan_channels(void) { int i = 0; rtw_memset(&iwr, 0, sizeof(iwr)); //Format of para:function_name num_channel chan1... pscan_config1 ... - iwr.u.data.length = (scan_channels + scan_channels + 1) + 12; - para = pvPortMalloc((scan_channels + scan_channels + 1) + 12); //size:num_chan + num_time + length + function_name + iwr.u.data.length = (SCAN_CHANNELS + SCAN_CHANNELS + 1) + 12; + para = rtw_malloc(iwr.u.data.length); //size:num_chan + num_time + length + function_name iwr.u.data.pointer = para; if (para != NULL) { - //Cmd - rtw_memcpy((char*) para, "PartialScan", 12); - //length - *(para + 12) = scan_channels; - for (i = 0; i < scan_channels; i++) { + rtw_memcpy((char*) para, "PartialScan", 12); //Cmd + *(para + 12) = SCAN_CHANNELS; // length + for (i = 0; i < SCAN_CHANNELS; i++) { *(para + 13 + i) = i + 1; - *((__u16 *) (para + 13 + scan_channels + i)) = PSCAN_ENABLE; + *((__u16 *) (para + 13 + SCAN_CHANNELS + i)) = PSCAN_ENABLE; } - ret = iw_ioctl(WLAN0_NAME, SIOCDEVPRIVATE, &iwr); - vPortFree(para); + rtw_free(para); } #if CONFIG_DEBUG_LOG > 3 else { @@ -176,49 +164,38 @@ LOCAL int wext_set_pscan_channels(void) { #endif return ret; } + /* -------- WiFi Scan ------------------------------- */ -LOCAL volatile uint8_t scan_end; -/* -------- WiFi Scan ------------------------------- */ -LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result ) +rtw_result_t api_wifi_scan(api_scan_result_handler_t scan_result_cb) { - if (malloced_scan_result->scan_complete != RTW_TRUE) { - rtw_scan_result_t* record = &malloced_scan_result->ap_details; - record->SSID.val[record->SSID.len] = 0; /* Ensure the SSID is null terminated */ - if(scan_end == 1) { - printf("\nScan networks:\n\n"); - printf("N\tType\tMAC\t\t\tSignal\tCh\tWPS\tSecyrity\tSSID\n\n"); - }; - printf("%d\t", scan_end++); - printf("%s\t", (record->bss_type == RTW_BSS_TYPE_ADHOC)? "Adhoc": "Infra"); - printf(MAC_FMT, MAC_ARG(record->BSSID.octet)); - printf("\t%d\t", record->signal_strength); - printf("%d\t", record->channel); - printf("%d\t", record->wps_type); - { - uint8 * s = rtw_security_to_str(record->security); - printf("%s\t", s); - if(strlen(s) < 8) printf("\t"); - } - printf("%s\n", record->SSID.val); - } else { - scan_end = 0; - printf("\n"); - } - return RTW_SUCCESS; -} -/* -------- WiFi Scan ------------------------------- */ -void api_wifi_scan(void) -{ - scan_end = 1; - if(wext_set_pscan_channels() < 0){ - error_printf("ERROR: wifi set partial scan channel fail\n"); - } else if(_wifi_scan_networks(_scan_result_handler) != RTW_SUCCESS){ - error_printf("ERROR: wifi scan failed\n"); - } else { + internal_scan_handler_t * pscan_rec = &scan_result_handler_ptr; + web_scan_handler_t * pwscn_rec = &web_scan_handler_ptr; + if ((!pscan_rec->scan_running) + && (!pwscn_rec->flg)) { + pscan_rec->scan_running = 1; + rtw_memset(pwscn_rec, 0, sizeof(web_scan_handler_t)); + pwscn_rec->flg = 1; + debug_printf("\nStart scan...\n"); + pwscn_rec->timer = xTimerCreate("webscan", 2500, pdFALSE, NULL, (TimerCallbackFunction_t)wifi_close_scan); + if(!pwscn_rec->timer) { +// error_printf("Error xTimerCreate\n"); + } else if(xTimerStart(pwscn_rec->timer, portMAX_DELAY) != pdPASS) { +// error_printf("Error xTimerStart\n"); + } else if(wext_set_pscan_channels() < 0) { +// error_printf("ERROR: wifi set partial scan channel fail\n"); + } else if(_wifi_scan_networks(scan_result_cb) != RTW_SUCCESS) { +// error_printf("ERROR: wifi scan failed\n"); + } else if(scan_result_cb) { int i = 300; - while(i-- && scan_end) { + while(i-- && pscan_rec->scan_running) { vTaskDelay(10); }; - }; + return RTW_SUCCESS; + } else + return RTW_SUCCESS; + wifi_close_scan(); + return RTW_ERROR; + }; + return RTW_TIMEOUT; } diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/hal_intf.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/hal_intf.h index 8457298..d42628f 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/hal_intf.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/hal_intf.h @@ -234,7 +234,7 @@ struct hal_ops { void (*disable_interrupt)(_adapter *padapter); s32 (*interrupt_handler)(_adapter *padapter); - void (*clear_interrupt)(_adapter *padapter); +//pvvx void (*clear_interrupt)(_adapter *padapter); // нету в SDK ! #ifdef CONFIG_WOWLAN void (*disable_interrupt_but_cpwm2)(_adapter *padapter); diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/rtw_mlme_ext.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/rtw_mlme_ext.h index b504f25..4d14c3d 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/rtw_mlme_ext.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/rtw_mlme_ext.h @@ -480,16 +480,16 @@ typedef struct _RT_CHANNEL_INFO extern int rtw_is_channel_set_contains_channel(RT_CHANNEL_INFO *channel_set, const u32 channel_num, int *pchannel_idx); -#ifdef CONFIG_CUSTOM_IE -#ifndef _CUS_IE_ -#define _CUS_IE_ -typedef struct _cus_ie +//#ifdef CONFIG_CUSTOM_IE +//#ifndef _CUS_IE_ +//#define _CUS_IE_ +typedef struct __cus_ie { u8 *ie; u8 type; -}rtw_custom_ie_t, *p_rtw_custom_ie_t; -#endif /* _CUS_IE_ */ -#endif +}_rtw_custom_ie_t, *_p_rtw_custom_ie_t; +//#endif /* _CUS_IE_ */ +//#endif struct mlme_ext_priv { @@ -563,7 +563,7 @@ struct mlme_ext_priv #endif u8 partial_scan; #ifdef CONFIG_CUSTOM_IE - p_rtw_custom_ie_t cus_ven_ie; + _p_rtw_custom_ie_t cus_ven_ie; u8 ie_num; #endif diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_lib.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_lib.h index 5044832..2ecfeee 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_lib.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_lib.h @@ -364,7 +364,7 @@ typedef int (*iw_handler)(struct net_device *, struct iw_request_info *, union iwreq_data *, char *); struct _NDIS_802_11_SSID { - uint32_t SsidLength; + uint32_t SsidLength; //+164 uint8_t Ssid[36]; }; typedef struct _NDIS_802_11_SSID NDIS_802_11_SSID; @@ -422,7 +422,7 @@ struct _WLAN_BSSID_EX { uint32_t Length; NDIS_802_11_MAC_ADDRESS MacAddress; uint8_t Reserved[2]; - NDIS_802_11_SSID Ssid; + NDIS_802_11_SSID Ssid; // +164 uint32_t Privacy; NDIS_802_11_RSSI Rssi; NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; @@ -514,21 +514,21 @@ enum _RT_SCAN_TYPE //: sint32_t typedef enum _RT_SCAN_TYPE RT_SCAN_TYPE; struct mlme_priv { - _lock lock; - sint fw_state; - uint8_t bScanInProcess; - uint8_t to_join; - uint8_t *nic_hdl; - _list *pscanned; - _queue free_bss_pool; - _queue scanned_queue; - uint8_t *free_bss_buf; - uint16_t num_of_scanned; - uint8_t *scan_buf; - uint32_t scan_buf_len; - uint16_t scan_cnt; - uint16_t scan_type; - NDIS_802_11_SSID assoc_ssid; + _lock lock; //+12 + sint fw_state; //+16 + uint8_t bScanInProcess; //+20 + uint8_t to_join; //+21 + uint8_t *nic_hdl; //+24 + _list *pscanned; //+28 + _queue free_bss_pool; //+32 + _queue scanned_queue; //+44 + uint8_t *free_bss_buf; //+56 + uint16_t num_of_scanned; //+60 + uint8_t *scan_buf; //+64 + uint32_t scan_buf_len; //+68 + uint16_t scan_cnt; //+72 + uint16_t scan_type; //+74 + NDIS_802_11_SSID assoc_ssid; //+76 uint8_t assoc_bssid[6]; struct wlan_network cur_network; uint32_t scan_interval; @@ -687,7 +687,7 @@ struct mlme_ext_priv { //__attribute__((packed))? uint8_t mlmeext_init; struct atomic_t event_seq; uint16_t mgnt_seq; - uint8_t cur_channel; + uint8_t cur_channel; // padapter+1270 uint8_t cur_bwmode; uint8_t cur_ch_offset; uint8_t cur_wireless_mode; @@ -845,7 +845,7 @@ struct _atr_aligned8_ recv_priv { uint16_t rxbuffersize; uint8_t is_signal_dbg; uint8_t signal_strength_dbg; - int8_t rssi; + int8_t rssi; // +2932 int8_t rxpwdb; uint8_t signal_strength; uint8_t signal_qual; @@ -1980,7 +1980,7 @@ struct hal_ops { struct _atr_aligned4_ _ADAPTER { uint16_t HardwareType; uint16_t interface_type; //+2 - uint32_t work_mode; + uint32_t work_mode; //+4 struct dvobj_priv *dvobj; //+8 struct mlme_priv mlmepriv; //+12 [1244] struct mlme_ext_priv mlmeextpriv; //+1256 [912] diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_structures.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_structures.h index 32e9006..e1f9fde 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_structures.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wifi_structures.h @@ -125,7 +125,7 @@ typedef struct rtw_scan_handler_result { * @brief The structure is used to store the WIFI setting gotten from WIFI driver. */ typedef struct rtw_wifi_setting { - rtw_mode_t mode; + rtw_mode_t mode; unsigned char ssid[33]; unsigned char channel; rtw_security_t security_type; diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_bssdef.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_bssdef.h index 8701d02..2c86f31 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_bssdef.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_bssdef.h @@ -617,7 +617,7 @@ typedef struct _WLAN_BSSID_EX u8 Reserved[1]; //[0]: IS beacon frame u8 bP2pNetwork; #else - u8 Reserved[2]; //[0]: IS beacon frame + u8 Reserved[2]; //[0]: IS beacon frame (padapter+163) #endif NDIS_802_11_SSID Ssid; u32 Privacy; diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_lib.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_lib.h index 0c5936b..33364c2 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_lib.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/include/wlan_lib.h @@ -254,7 +254,7 @@ extern struct sk_buff *rltk_wlan_alloc_skb(unsigned int total_len); extern void rltk_wlan_send_skb(int idx, struct sk_buff *skb); extern void rltk_netif_rx(struct sk_buff *skb); extern int rltk_del_station(const char *ifname, u8 *hwaddr); -extern int rltk_get_auto_chl(const char *ifname, u8 *channel_set, int channel_num, int a4); +extern int rltk_get_auto_chl(const char *ifname, u8 *channel_set, int channel_num); extern int rltk_set_tx_power_percentage(rtw_tx_pwr_percentage_t power_percentage_idx); extern int rltk_wlan_control(unsigned long cmd, void *data); extern unsigned char rltk_wlan_running(unsigned char idx); diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h index d21e683..c874909 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wireless.h @@ -512,13 +512,13 @@ typedef long long __i64; #define IW_QUAL_QUAL_UPDATED 0x01 /* Value was updated since last read */ #define IW_QUAL_LEVEL_UPDATED 0x02 #define IW_QUAL_NOISE_UPDATED 0x04 -#define IW_QUAL_ALL_UPDATED 0x07 -#define IW_QUAL_DBM 0x08 /* Level + Noise are dBm */ +#define IW_QUAL_ALL_UPDATED 0x07 +#define IW_QUAL_DBM 0x08 /* Level + Noise are dBm */ #define IW_QUAL_QUAL_INVALID 0x10 /* Driver doesn't provide value */ #define IW_QUAL_LEVEL_INVALID 0x20 #define IW_QUAL_NOISE_INVALID 0x40 -#define IW_QUAL_RCPI 0x80 /* Level + Noise are 802.11k RCPI */ -#define IW_QUAL_ALL_INVALID 0x70 +#define IW_QUAL_RCPI 0x80 /* Level + Noise are 802.11k RCPI */ +#define IW_QUAL_ALL_INVALID 0x70 /* Frequency flags */ #define IW_FREQ_AUTO 0x00 /* Let the driver decides */ @@ -567,7 +567,7 @@ typedef long long __i64; #define IW_TXPOW_RANGE 0x1000 /* Range of value between min/max */ /* Retry limits and lifetime flags available */ -#define IW_RETRY_ON 0x0000 /* No details... */ +#define IW_RETRY_ON 0x0000 /* No details... */ #define IW_RETRY_TYPE 0xF000 /* Type of parameter */ #define IW_RETRY_LIMIT 0x1000 /* Maximum number of retries*/ #define IW_RETRY_LIFETIME 0x2000 /* Maximum duration of retries in us */ @@ -631,10 +631,10 @@ typedef long long __i64; #define IW_AUTH_WPA_VERSION_WPA2 0x00000004 /* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */ -#define IW_AUTH_CIPHER_NONE 0x00000001 +#define IW_AUTH_CIPHER_NONE 0x00000001 #define IW_AUTH_CIPHER_WEP40 0x00000002 -#define IW_AUTH_CIPHER_TKIP 0x00000004 -#define IW_AUTH_CIPHER_CCMP 0x00000008 +#define IW_AUTH_CIPHER_TKIP 0x00000004 +#define IW_AUTH_CIPHER_CCMP 0x00000008 #define IW_AUTH_CIPHER_WEP104 0x00000010 /* IW_AUTH_KEY_MGMT values (bit field) */ @@ -644,7 +644,7 @@ typedef long long __i64; /* IW_AUTH_80211_AUTH_ALG values (bit field) */ #define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001 #define IW_AUTH_ALG_SHARED_KEY 0x00000002 -#define IW_AUTH_ALG_LEAP 0x00000004 +#define IW_AUTH_ALG_LEAP 0x00000004 /* IW_AUTH_ROAMING_CONTROL values */ #define IW_AUTH_ROAMING_ENABLE 0 /* driver/firmware based roaming */ @@ -666,15 +666,15 @@ typedef long long __i64; /* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */ #define IW_MICFAILURE_KEY_ID 0x00000003 /* Key ID 0..3 */ -#define IW_MICFAILURE_GROUP 0x00000004 +#define IW_MICFAILURE_GROUP 0x00000004 #define IW_MICFAILURE_PAIRWISE 0x00000008 #define IW_MICFAILURE_STAKEY 0x00000010 -#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported) +#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported) */ /* Bit field values for enc_capa in struct iw_range */ -#define IW_ENC_CAPA_WPA 0x00000001 -#define IW_ENC_CAPA_WPA2 0x00000002 +#define IW_ENC_CAPA_WPA 0x00000001 +#define IW_ENC_CAPA_WPA2 0x00000002 #define IW_ENC_CAPA_CIPHER_TKIP 0x00000004 #define IW_ENC_CAPA_CIPHER_CCMP 0x00000008 @@ -698,8 +698,8 @@ typedef long long __i64; /* Modulations bitmasks */ #define IW_MODUL_ALL 0x00000000 /* Everything supported */ -#define IW_MODUL_FH 0x00000001 /* Frequency Hopping */ -#define IW_MODUL_DS 0x00000002 /* Original Direct Sequence */ +#define IW_MODUL_FH 0x00000001 /* Frequency Hopping */ +#define IW_MODUL_DS 0x00000002 /* Original Direct Sequence */ #define IW_MODUL_CCK 0x00000004 /* 802.11b : 5.5 + 11 Mb/s */ #define IW_MODUL_11B (IW_MODUL_DS | IW_MODUL_CCK) #define IW_MODUL_PBCC 0x00000008 /* TI : 5.5 + 11 + 22 Mb/s */ @@ -714,8 +714,8 @@ typedef long long __i64; #define IW_MODUL_CUSTOM 0x40000000 /* Driver specific */ /* Bitrate flags available */ -#define IW_BITRATE_TYPE 0x00FF /* Type of value */ -#define IW_BITRATE_UNICAST 0x0001 /* Maximum/Fixed unicast bitrate */ +#define IW_BITRATE_TYPE 0x00FF /* Type of value */ +#define IW_BITRATE_UNICAST 0x0001 /* Maximum/Fixed unicast bitrate */ #define IW_BITRATE_BROADCAST 0x0002 /* Fixed broadcast bitrate */ /****************************** TYPES ******************************/ @@ -772,7 +772,7 @@ struct iw_freq struct iw_quality { __u8 qual; /* link quality (%retries, SNR, - %missed beacons or better...) */ + %missed beacons or better...) */ __u8 level; /* signal level (dBm) */ __u8 noise; /* noise level (dBm) */ __u8 updated; /* Flags to know if updated */ @@ -988,7 +988,7 @@ union iwreq_data struct iw_param txpower; /* default transmit power */ struct iw_param rts; /* RTS threshold threshold */ struct iw_param frag; /* Fragmentation threshold */ - __u32 mode; /* Operation mode */ + __u32 mode; /* Operation mode */ struct iw_param retry; /* Retry limits & lifetime */ struct iw_point encoding; /* Encoding stuff : tokens */ diff --git a/RTL00_SDKV35a/component/common/mbed/hal_ext/flash_eep.h b/RTL00_SDKV35a/component/common/mbed/hal_ext/flash_eep.h index 4a2d7a9..18604ca 100644 --- a/RTL00_SDKV35a/component/common/mbed/hal_ext/flash_eep.h +++ b/RTL00_SDKV35a/component/common/mbed/hal_ext/flash_eep.h @@ -31,9 +31,9 @@ extern "C" { enum eFMEMORY_ERRORS { FMEM_NOT_FOUND = -1, // -1 - не найден FMEM_FLASH_ERR = -2, // -2 - flash rd/wr/erase error - FMEM_ERROR = -3, // -3 - error - FMEM_OVR_ERR = -4, // -4 - переполнение FMEMORY_SCFG_BANK_SIZE - FMEM_MEM_ERR = -5 // -5 - heap alloc error + FMEM_ERROR = -3, // -3 - error + FMEM_OVR_ERR = -4, // -4 - переполнение FMEMORY_SCFG_BANK_SIZE + FMEM_MEM_ERR = -5 // -5 - heap alloc error }; //----------------------------------------------------------------------------- // extern QueueHandle_t flash_mutex; diff --git a/RTL00_SDKV35a/component/common/network/dhcp/dhcps.c b/RTL00_SDKV35a/component/common/network/dhcp/dhcps.c index e183a8c..ad5be28 100644 --- a/RTL00_SDKV35a/component/common/network/dhcp/dhcps.c +++ b/RTL00_SDKV35a/component/common/network/dhcp/dhcps.c @@ -521,7 +521,7 @@ void dhcps_init(struct netif * pnetif) memset(&ip_table, 0, sizeof(struct table)); if((dhcps_ip4addr_pool_end | dhcps_ip4addr_pool_start) == 0) { - dhcps_ip4addr_pool_start = 1; + dhcps_ip4addr_pool_start = 2; dhcps_ip4addr_pool_end = 255; } diff --git a/RTL00_SDKV35a/component/os/freertos/freertos_service.c b/RTL00_SDKV35a/component/os/freertos/freertos_service.c index 2d91563..b8c68eb 100644 --- a/RTL00_SDKV35a/component/os/freertos/freertos_service.c +++ b/RTL00_SDKV35a/component/os/freertos/freertos_service.c @@ -622,12 +622,14 @@ _timerHandle _freertos_timerCreate( const signed char *pcTimerName, if(xTimerPeriodInTicks == TIMER_MAX_DELAY) { xTimerPeriodInTicks = portMAX_DELAY; } +// printf("xTimerCreate: %s, %u, %u, %p\n", pcTimerName, xTimerPeriodInTicks, uxAutoReload, pxCallbackFunction); return xTimerCreate((const char *)pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction); } u32 _freertos_timerDelete( _timerHandle xTimer, osdepTickType xBlockTime ) { +// printf("xTimerDelete: %p\n", xTimer); return (u32)xTimerDelete(xTimer, xBlockTime); } diff --git a/build/bin/ota.bin b/build/bin/ota.bin index 493449b..deb8174 100644 Binary files a/build/bin/ota.bin and b/build/bin/ota.bin differ diff --git a/build/bin/ram_2.bin b/build/bin/ram_2.bin index 044db16..fcb5f7c 100644 Binary files a/build/bin/ram_2.bin and b/build/bin/ram_2.bin differ diff --git a/build/bin/ram_2.ns.bin b/build/bin/ram_2.ns.bin index 8cef69f..d9bbde5 100644 Binary files a/build/bin/ram_2.ns.bin and b/build/bin/ram_2.ns.bin differ diff --git a/build/bin/ram_2.p.bin b/build/bin/ram_2.p.bin index a068510..ad736d9 100644 Binary files a/build/bin/ram_2.p.bin and b/build/bin/ram_2.p.bin differ diff --git a/build/bin/ram_all.bin b/build/bin/ram_all.bin index 2de153e..551bb7b 100644 Binary files a/build/bin/ram_all.bin and b/build/bin/ram_all.bin differ diff --git a/build/obj/build.nmap b/build/obj/build.nmap index 3bea650..9aa56e3 100644 --- a/build/obj/build.nmap +++ b/build/obj/build.nmap @@ -1,5 +1,6 @@ U __aeabi_d2iz U __aeabi_f2d + U dhcp_mode_sta U mfl_code_to_length 00000000 A __vectors_table 00000000 D __rom_image_end__ @@ -7,7 +8,7 @@ 00000101 A Reset_Handler 00000109 A NMI_Handler 0000010d A HardFault_Handler -00000110 A UartLogRamCmdTableSize +00000120 A UartLogRamCmdTableSize 00000121 A MemManage_Handler 00000125 A BusFault_Handler 00000129 A UsageFault_Handler @@ -907,2294 +908,2294 @@ 10008944 T memset 1000894c T sscanf 10008966 T __aeabi_llsr -1000897c T wlan_init_done_callback -10008980 t chk_ap_netif_num -100089cc t wifi_autoreconnect_hdl_ -10008a1c T read_wifi_cfg -10008a64 T write_wifi_cfg -10008aa4 t StartStDHCPClient -10008b0c T _wifi_on -10008bc8 T _LwIP_Init -10008c74 T idx_to_rtw_security -10008c88 T rtw_security_to_idx -10008ca8 T rtw_security_to_str -10008cbc T show_wifi_ap_ip -10008cf0 T wifi_run_ap -10008e0c T show_wifi_st_ip -10008e40 T wifi_run_st -10008f08 T wifi_run -10009000 T wifi_init -10009034 t wifi_autoreconnect_thread_ -10009094 T show_wifi_st_cfg -100090e4 T show_wifi_ap_cfg -10009150 T show_wifi_cfg -100091b0 t mp3_cfg_read -100091e8 t user_init_thrd -10009200 t tskmad -1000941c t tskreader -10009824 T render_sample_block -10009898 T set_dac_sample_rate -100098dc T connect_close -10009904 T connect_start -100099a4 t fATWS -10009a84 T ShowMemInfo -10009ab0 T main -10009b04 t fATSN -10009b8c t _scan_result_handler -10009c80 t fATWI -10009db8 t fATOF -10009dbc t fATON -10009dc0 t fATWR -10009ddc t fATPN -10009eb4 t fATPA -10009f94 t fATSP -10009fd8 t fATDS -1000a000 t fATSW -1000a00a t fATSD -1000a014 t fATST -1000a084 T print_hex_dump -1000a0b4 T dump_bytes -1000a148 t fATSB -1000a180 T print_udp_pcb -1000a1ec T print_tcp_pcb -1000a2c4 t fATLW -1000a2d4 T RamFifoClose -1000a330 T RamFifoInit -1000a484 T RamFifoRead -1000a540 T RamFifoWrite -1000a5f4 T RamFifoFill -1000a620 T RamFifoFree -1000a634 T RamFifoLen -1000a640 t decode_header -1000a7b0 T mad_header_init -1000a7dc T mad_frame_finish -1000a7f4 T mad_header_decode -1000aa90 T mad_frame_decode -1000ab14 T mad_frame_mute -1000ab5e T mad_frame_init -1000ab7c t III_requantize -1000abf8 t III_aliasreduce -1000ac60 t fastsdct -1000ad98 t III_imdct_l -1000b1b0 t III_imdct_s -1000b304 t III_overlap -1000b32e t III_freqinver -1000b378 t III_decode -1000c394 T mad_layer_III -1000c7f8 T mad_bit_init -1000c804 T mad_bit_length -1000c81c T mad_bit_nextbyte -1000c828 T mad_bit_skip -1000c858 T mad_bit_read -1000c8c4 T mad_bit_crc -1000c9b8 t scale -1000c9c4 t dct32 -1000d258 t synth_half -1000d69c t synth_full -1000daf0 T mad_synth_mute -1000db28 T mad_synth_init -1000db4c T mad_synth_frame -1000dbe0 t scale_rational -1000dc54 T mad_timer_set -1000dd3c T mad_stream_init -1000dd6e T mad_stream_finish -1000dd80 T mad_stream_buffer -1000dd94 T mad_stream_sync -1000dddc T mad_stream_errorstr -1000df38 t i2s_test_tx_complete -1000df50 T i2sClose -1000dfdc T i2sInit -1000e150 T i2sSetRate -1000e1d8 T i2sPushPWMSamples -1000e340 W __low_level_init -1000e344 T SystemCoreClockUpdate -1000e358 t print_on -1000e370 W console_help -1000e3b0 T GetArgvRam -1000e460 T get_eap_phase -1000e464 T get_eap_method -1000e468 T eap_autoreconnect_hdl -1000e46c t wifi_no_network_hdl -1000e484 t wifi_ap_sta_disassoc_hdl -1000e488 T wifi_scan_done_hdl -1000e4f8 t wifi_handshake_done_hdl -1000e514 t wifi_disconn_hdl -1000e57c t wifi_connected_hdl -1000e5b0 T wifi_scan_each_report_hdl -1000e6f0 t wifi_ap_sta_assoc_hdl -1000e6f2 T wifi_rx_beacon_hdl -1000e6f4 T wifi_connect -1000eb28 T wifi_set_country -1000eb34 T wifi_off -1000eba8 T wifi_start_ap -1000ecc0 T wifi_scan -1000ed18 T wifi_scan_networks -1000edc8 T wifi_set_pscan_chan -1000ede0 T wifi_get_setting -1000ee90 T wifi_show_setting -1000ef54 T wifi_set_network_mode -1000ef6c T wifi_indication -1000efa8 T wifi_reg_event_handler -1000effc T wifi_unreg_event_handler -1000f040 T init_event_callback_list -1000f050 T promisc_deinit -1000f054 T promisc_recv_func -1000f058 T promisc_set -1000f05c T is_promisc_enabled -1000f066 T iw_ioctl -1000f082 T wext_get_ssid -1000f0cc T wext_set_ssid -1000f100 T wext_set_bssid -1000f14a T is_broadcast_ether_addr -1000f16c T wext_set_auth_param -1000f19a T wext_set_key_ext -1000f29a T wext_get_enc_ext -1000f2fc T wext_set_passphrase -1000f330 T wext_get_passphrase -1000f360 T wext_enable_powersave -1000f3b8 T wext_set_mode -1000f3dc T wext_get_mode -1000f406 T wext_set_ap_ssid -1000f43a T wext_set_country -1000f460 T wext_set_pscan_channel -1000f4e0 T wext_set_channel -1000f50e T wext_get_channel -1000f53a T wext_set_scan -1000f56a T wext_get_scan -1000f59c T wext_wlan_indicate -1000f6e4 T wext_set_adaptivity -1000f70c T wext_set_sta_num -1000f710 T LwIP_DHCP -1000f804 t netconn_recv_data -1000f8d4 T netconn_new_with_proto_and_callback -1000f934 T netconn_delete -1000f958 T netconn_getaddr -1000f99c T netconn_connect -1000f9dc T netconn_recv_tcp_pbuf -1000f9f0 T netconn_recv -1000fa78 T netconn_recved -1000faa4 T netconn_send -1000fae0 T netconn_write_partly -1000fb70 T netconn_gethostbyname -1000fbc8 t recv_udp -1000fc38 t recv_raw -1000fcbc t setup_tcp -1000fd00 t err_tcp -1000fd98 t do_connected -1000fe04 t do_writemore -1000ff04 t do_close_internal -1000fff0 t poll_tcp -10010040 t do_dns_found -1001006c t sent_tcp -100100ba t recv_tcp -10010134 T do_newconn -100101c4 T netconn_alloc -10010230 T netconn_free -1001025c t netconn_drain -100102ec T do_delconn -10010378 T do_connect -1001040c T do_send -1001047c T do_recv -100104bc T do_write -100104f6 T do_getaddr -1001056c T do_gethostbyname -10010598 T netbuf_delete -100105b8 T netbuf_free -100105ce T netbuf_ref -10010608 T lwip_gethostbyname -10010654 t get_socket -10010674 t alloc_socket -100106e4 t event_callback -10010814 T lwip_socket_init -10010816 T lwip_close -10010868 T lwip_connect -100108c4 T lwip_recvfrom -10010a7c T lwip_read -10010a90 T lwip_sendto -10010b3c T lwip_send -10010bb4 T lwip_socket -10010c28 T lwip_write -10010c30 t tcpip_thread -10010cb4 T tcpip_input -10010cfc T tcpip_callback_with_block -10010d50 T tcpip_timeout -10010d94 T tcpip_apimsg -10010dec T tcpip_init -10010e30 t autoip_start_probing -10010e7c t autoip_arp_announce -10010ea8 T autoip_start -10010f3c T autoip_tmr -1001104c T autoip_arp_reply -100110f4 t icmp_send_response.isra.0 -10011164 T icmp_input -10011288 T icmp_dest_unreach -10011292 T icmp_time_exceeded -1001129c t igmp_send -10011340 t igmp_delaying_member -1001137c t igmp_lookup_group.part.1 -100113b4 T igmp_init -100113d0 T igmp_report_groups -100113f4 T igmp_lookfor_group -10011414 T igmp_start -10011450 T igmp_input -10011514 T igmp_tmr -10011540 t lwip_standard_chksum -10011598 T inet_chksum_pseudo -1001161e T inet_chksum -1001162a T inet_chksum_pbuf -10011670 T ip_route -100116ac T ip_input -10011884 T ip_output_if_opt -100119d8 T ip_output_if -100119fa T ip_output -10011a32 T ip4_addr_isbroadcast -10011a6a T ipaddr_aton -10011b80 T ipaddr_addr -10011b98 T ipaddr_ntoa_r -10011c30 T ipaddr_ntoa -10011c3c t ipfrag_free_pbuf_custom -10011c54 t ip_reass_free_complete_datagram -10011cd4 t ip_reass_remove_oldest_datagram -10011d48 T ip_reass_tmr -10011d70 T ip_reass -10012020 T ip_frag -1001218c T lwip_htons -10012192 T lwip_ntohs -10012198 T lwip_htonl -1001219c T lwip_ntohl -100121a0 t dhcp_set_state -100121b0 t dhcp_option -100121d0 t dhcp_option_byte -100121e2 t dhcp_option_short -10012204 t dhcp_option_long -10012248 t dhcp_create_msg -1001239c t dhcp_delete_msg -100123b2 t dhcp_check -100123d8 t dhcp_bind -100124ac t dhcp_option_trailer -100124d8 t dhcp_discover -1001258c t dhcp_reboot -10012630 t dhcp_option_hostname.isra.1 -10012670 t dhcp_rebind -10012704 t dhcp_select -100127f0 t dhcp_recv -10012bf4 T dhcp_arp_reply -10012c74 T dhcp_renew -10012d08 T dhcp_release -10012db0 T dhcp_coarse_tmr -10012e3c T dhcp_fine_tmr -10012ed8 T dhcp_release_unicast -10012f9c T dhcp_stop -10012fcc T dhcp_start -1001306c t dns_parse_name -10013088 t dns_recv -1001321c t dns_send -100132ec t dns_check_entry -1001339c T dns_setserver -100133bc T dns_init -10013414 T dns_tmr -10013440 T dns_gethostbyname -10013580 T lwip_init -100135a8 T sys_timeout -10013608 T tcp_timer_needed -1001363c t tcpip_tcp_timer -10013674 T sys_timeouts_init -100136e8 t dns_timer -10013704 t igmp_timer -1001371c t autoip_timer -10013734 t dhcp_timer_fine -10013750 t dhcp_timer_coarse -1001376c t arp_timer -10013788 t ip_reass_timer -100137a4 T sys_untimeout -100137ec T sys_timeouts_mbox_fetch -10013850 T netif_init -10013854 T netif_set_ipaddr -100138ac T netif_set_addr -100138c8 T netif_add -1001392c T netif_set_gw -10013934 T netif_set_netmask -1001393c T netif_set_default -10013948 T netif_set_up -1001397e T netif_set_down -10013998 t pbuf_free_ooseq_callback -100139cc t pbuf_pool_is_empty -10013a08 T pbuf_alloced_custom -10013a5c T pbuf_header -10013ab4 T pbuf_free -10013af4 T pbuf_alloc -10013c18 T pbuf_realloc -10013c4c T pbuf_clen -10013c5c T pbuf_ref -10013c76 T pbuf_cat -10013c92 T pbuf_chain -10013ca2 T pbuf_copy -10013d3e T pbuf_copy_partial -10013da6 T pbuf_coalesce -10013dd4 T raw_input -10013e4c T raw_connect -10013e56 T raw_recv -10013e5c T raw_sendto -10013eec T raw_send -10013ef4 T raw_remove -10013f1c T raw_new -10013f50 t tcp_new_port -10013fa0 T tcp_init -10013fbc T tcp_update_rcv_ann_wnd -10013ff2 T tcp_recved -1001402c T tcp_seg_free -10014046 T tcp_segs_free -10014058 T tcp_seg_copy -10014080 T tcp_arg -10014084 T tcp_recv -1001408a T tcp_sent -10014090 T tcp_err -10014096 T tcp_accept -1001409a T tcp_poll -100140a4 T tcp_pcb_purge -100140e4 T tcp_slowtmr -100143a0 T tcp_pcb_remove -10014408 t tcp_close_shutdown -10014538 T tcp_close -10014550 T tcp_recv_null -10014574 T tcp_process_refused_data -100145d4 T tcp_fasttmr -1001464c T tcp_tmr -10014670 T tcp_shutdown -100146c0 T tcp_abandon -10014758 T tcp_abort -10014760 T tcp_next_iss -10014778 T tcp_alloc -10014898 T tcp_new -1001489e T tcp_eff_send_mss -100148bc T tcp_connect -10014a18 t tcp_oos_insert_segment -10014a98 t tcp_receive -10015270 t tcp_parseopt.isra.0 -100152f4 T tcp_input -10015b4c t tcp_pbuf_prealloc -10015ba0 t tcp_create_segment -10015c68 t tcp_output_alloc_header.constprop.0 -10015cd2 T tcp_write -10016022 T tcp_enqueue_flags -100160ca T tcp_send_fin -10016112 T tcp_send_empty_ack -10016170 T tcp_output -100163e8 T tcp_rst -10016480 T tcp_rexmit_rto -100164ae T tcp_rexmit -100164fe T tcp_rexmit_fast -10016554 T tcp_keepalive -100165a6 T tcp_zero_window_probe -10016650 T udp_init -1001666c T udp_input -100167f4 T udp_bind -1001689c T udp_sendto_if -1001699a T udp_sendto -100169d0 T udp_send -100169dc T udp_connect -10016a24 T udp_disconnect -10016a34 T udp_recv -10016a3c T udp_remove -10016a64 T udp_new -10016a88 t etharp_free_entry -10016ab8 t etharp_find_entry -10016b94 t etharp_send_ip -10016bc8 T etharp_tmr -10016c08 T etharp_cleanup_netif -10016c30 T etharp_raw -10016cec T etharp_request -10016d18 t etharp_output_to_arp_index -10016d60 T etharp_query -10016e64 T etharp_output -10016f5c T ethernet_input -1001714c t low_level_output -100171a8 t arp_timer -100171c4 T ethernetif_recv -1001723c T ethernetif_init -10017280 T lwip_POST_SLEEP_PROCESSING -1001729c T rltk_wlan_set_netif_info -100172bc T rltk_wlan_send -10017350 T rltk_wlan_recv -100173bc T netif_is_valid_IP -100173f0 T netif_get_idx -10017408 T netif_rx -10017418 T netif_post_sleep_processing -1001741c T sys_mbox_new -10017436 T sys_mbox_free -1001744a T sys_mbox_post -1001746a T sys_mbox_trypost -1001748c T sys_arch_mbox_fetch -100174d6 T sys_arch_mbox_tryfetch -100174f6 T sys_mbox_valid -10017500 T sys_mbox_set_invalid -10017506 T sys_sem_new -10017542 T sys_arch_sem_wait -10017582 T sys_sem_signal -1001758e T sys_sem_free -10017594 T sys_sem_valid -1001759e T sys_sem_set_invalid -100175a4 T sys_init -100175c8 T sys_thread_new_tcm -10017630 T sys_arch_protect -1001763a T sys_arch_unprotect -10017640 t mark_ip_in_table -10017684 t dhcps_initialize_message -10017734 t add_offer_options -10017824 T dhcps_handle_state_machine_change -100178f4 t dhcps_receive_udp_packet_handler -10017bc0 T dhcps_deinit -10017be8 T dhcps_init -10017cf0 t prvInsertBlockIntoFreeList -10017d38 t vPortDefineHeapRegions.constprop.1 -10017dd8 T pvPortMalloc -10017eb8 T __vPortFree -10017efc T vPortSetExtFree -10017f18 T vPortFree -10017f48 T xPortGetFreeHeapSize -10017f54 t prvPortStartFirstTask -10017f74 T pxPortInitialiseStack -10017f90 T vPortSVCHandler -10017fb0 t pxCurrentTCBConst2 -10017fb4 T vPortYield -10017fcc T ulPortSetInterruptMask -10017fdc t prvTaskExitError -10017fe4 T vPortEnterCritical -10018000 T vPortClearInterruptMask -10018008 T vPortExitCritical -1001801c T xPortPendSVHandler -1001805c t pxCurrentTCBConst -10018060 T xPortSysTickHandler -10018084 W vPortSuppressTicksAndSleep -1001819c W vPortSetupTimerInterrupt -100181ec T xPortStartScheduler -1001821c T vApplicationIdleHook -10018220 T vApplicationStackOverflowHook -1001823c T osKernelSysTick -10018240 T vListInitialise -10018256 T vListInitialiseItem -1001825c T vListInsertEnd -10018274 T vListInsert -100182a4 T uxListRemove -100182c4 t prvCopyDataToQueue -1001832e t prvCopyDataFromQueue -10018356 t prvUnlockQueue -100183be T xQueueGenericReset -10018418 T xQueueGenericCreate -10018464 T xQueueCreateCountingSemaphore -10018476 T xQueueGenericSend -10018554 T xQueueCreateMutex -1001859e T xQueueGenericSendFromISR -10018602 T xQueueGenericReceive -10018706 T uxQueueMessagesWaiting -10018718 T vQueueDelete -1001872e T vQueueWaitForMessageRestricted -10018768 t prvGenerateRunTimeOfPeroid -100187a8 t prvGetExpectedIdleTime -100187d8 t prvListTaskWithinSingleList -100188c0 t prvResetNextTaskUnblockTime -100188e4 t prvAddCurrentTaskToDelayedList -10018934 T xTaskGenericCreate -10018ae8 T vTaskDelete -10018b88 T uxTaskPriorityGet -10018ba4 T vTaskPrioritySet -10018c5c T vTaskStartScheduler -10018cb4 T vTaskSuspendAll -10018cc4 T xTaskGetTickCount -10018cdc T pcTaskGetTaskName -10018cec T vTaskStepTick -10018cfc T xTaskIncrementTick -10018e7c T xTaskResumeAll -10018f44 T vTaskDelay -10018f94 t prvIdleTask -1001901c T uxTaskGetSystemState -100190cc T vTaskSwitchContext -10019184 T vTaskPlaceOnEventList -100191e0 T vTaskPlaceOnEventListRestricted -10019224 T xTaskRemoveFromEventList -10019294 T vTaskSetTimeOutState -100192ac T xTaskCheckForTimeOut -100192f8 T vTaskMissedYield -10019304 T eTaskConfirmSleepModeStatus -10019324 T xTaskGetSchedulerState -10019344 T vTaskPriorityInherit -100193d8 T xTaskPriorityDisinherit -10019448 T sprintf_pcTaskName -10019468 T vTaskList -10019518 T vTaskGetRunTimeStats -100195d8 T pvTaskIncrementMutexHeldCount -100195f0 T vTaskGetCurrentTCB -100195fc t prvCheckForValidListAndQueue -10019648 t prvInsertTimerInActiveList -10019684 T xTimerCreateTimerTask -100196c0 T xTimerCreate -100196fc T xTimerGenericCommand -10019790 t prvSwitchTimerLists -10019800 t prvTimerTask -10019964 T xTimerIsTimerActive -1001997c t device_mutex_init -100199c0 T device_mutex_lock -100199f0 T device_mutex_unlock -10019a0c t _freertos_systime_to_sec -10019a16 t _freertos_ms_to_systime -10019a18 t _freertos_sec_to_systime -10019a20 t _freertos_usleep_os -10019a22 t _freertos_ATOMIC_SET -10019a26 t _freertos_ATOMIC_READ -10019a2a t _freertos_modular64 -10019a9e t _freertos_thread_enter -10019aa0 t _freertos_enter_critical -10019aa4 t _freertos_exit_critical -10019aa8 t _freertos_ATOMIC_SUB_RETURN -10019ac0 t _freertos_ATOMIC_DEC_RETURN -10019ad6 t _freertos_ATOMIC_ADD_RETURN -10019aee t _freertos_ATOMIC_INC_RETURN -10019b04 t _freertos_ATOMIC_SUB -10019b1c t _freertos_ATOMIC_DEC -10019b22 t _freertos_ATOMIC_ADD -10019b3a t _freertos_ATOMIC_INC -10019b40 t _freertos_enter_critical_from_isr -10019b50 T _freertos_malloc -10019b54 T _freertos_zmalloc -10019b6c t _freertos_memset -10019b70 T _freertos_mfree -10019b74 t _freertos_get_current_time -10019b78 t _freertos_spinunlock_irqsave -10019b8e t _freertos_spinunlock -10019b9a t _freertos_mutex_put -10019b9e T _freertos_wakeup_task -10019ba4 t _freertos_up_sema -10019ba8 t _freertos_exit_critical_mutex -10019bb4 T _freertos_timerCreate -10019bb8 T _freertos_timerDelete -10019bcc T _freertos_timerStop -10019be0 T _freertos_timerChangePeriod -10019bfa T _freertos_timerIsTimerActive -10019bfe T _freertos_acquire_wakelock -10019c04 T _freertos_release_wakelock -10019c0a T _freertos_get_scheduler_state -10019c2a t _freertos_thread_exit -10019c30 t _freertos_GetFreeHeapSize -10019c34 t _freertos_yield_os -10019c38 t _freertos_udelay_os -10019c3c t _freertos_mdelay_os -10019c40 t _freertos_deinit_xqueue -10019c5a t _freertos_spinlock_free -10019c6c t _freertos_mutex_free -10019c70 t _freertos_free_sema -10019c74 t _freertos_push_to_xqueue -10019c9c t _freertos_pop_from_xqueue -10019cc4 t _freertos_down_sema -10019ce6 t _freertos_init_xqueue -10019d00 t _freertos_spinlock_irqsave -10019d3c t _freertos_spinlock -10019d74 t _freertos_enter_critical_mutex -10019dac t _freertos_mutex_get -10019de4 t _freertos_spinlock_init -10019df2 t _freertos_mutex_init -10019df8 t _freertos_exit_critical_from_isr -10019e04 t _freertos_up_sema_from_isr -10019e2c t _freertos_init_sema -10019e3c t _freertos_create_task -10019eb4 t _freertos_memcmp -10019ec2 t _freertos_memcpy -10019ec8 t _freertos_delete_task -10019f14 t _freertos_mutex_get_timeout -10019f50 t _freertos_systime_to_ms -10019f52 t _freertos_msleep_os -10019f56 T save_and_cli -10019f5a T restore_flags -10019f5e T cli -10019f64 T _freertos_arc4random -10019f94 t _freertos_get_random_bytes -10019fd2 T RtlInitSema -10019fe0 T RtlUpSemaFromISR -1001a000 T RtlDownSema -1001a014 T RtlUdelayOS -1001a018 T _htons -1001a01e T _ntohs -1001a024 T _rtw_zvmalloc -1001a044 T _rtw_vmfree -1001a068 T _rtw_malloc -1001a078 T _rtw_zmalloc -1001a088 T _rtw_mfree -1001a098 T deinit_mem_monitor -1001a09a T rtw_vmfree -1001a09e T rtw_mfree -1001a0a4 T rtw_memcpy -1001a0b4 T rtw_memcmp -1001a0c4 T rtw_memset -1001a0d4 T rtw_init_listhead -1001a0da T rtw_is_list_empty -1001a0e4 T rtw_list_insert_head -1001a0f0 T rtw_list_insert_tail -1001a0fc T rtw_list_delete -1001a10c T rtw_init_sema -1001a11c T rtw_free_sema -1001a12c T rtw_up_sema -1001a13c T rtw_up_sema_from_isr -1001a14c T rtw_down_timeout_sema -1001a15c T rtw_down_sema -1001a170 T rtw_mutex_init -1001a180 T rtw_mutex_free -1001a190 T rtw_mutex_put -1001a1a0 T rtw_mutex_get_timeout -1001a1b4 T rtw_enter_critical_from_isr -1001a1c4 T rtw_enter_critical -1001a1c8 T rtw_exit_critical_from_isr -1001a1d8 T rtw_exit_critical -1001a1dc T rtw_enter_critical_mutex -1001a1ec T rtw_exit_critical_mutex -1001a1fc T rtw_queue_empty -1001a206 T rtw_end_of_queue_search -1001a210 T rtw_spinlock_init -1001a220 T rtw_init_queue -1001a22c T rtw_spinlock_free -1001a23c T rtw_spin_lock -1001a24c T rtw_enter_critical_bh -1001a250 T rtw_spin_unlock -1001a260 T rtw_exit_critical_bh -1001a264 T rtw_get_current_time -1001a274 T rtw_systime_to_ms -1001a288 T rtw_systime_to_sec -1001a29c T rtw_ms_to_systime -1001a2b0 T rtw_sec_to_systime -1001a2c4 T rtw_get_passing_time_ms -1001a2d8 T rtw_msleep_os -1001a2e8 T rtw_usleep_os -1001a2f8 T rtw_mdelay_os -1001a308 T rtw_udelay_os -1001a318 T ATOMIC_SET -1001a328 T ATOMIC_INC -1001a338 T ATOMIC_INC_RETURN -1001a34c T ATOMIC_DEC_RETURN -1001a360 T ATOMIC_DEC_AND_TEST -1001a370 T rtw_modular64 -1001a38c T rtw_get_random_bytes -1001a3a0 T rtw_getFreeHeapSize -1001a3b0 T init_mem_monitor -1001a3c0 T add_mem_usage -1001a3f4 T rtw_zvmalloc -1001a414 T rtw_malloc -1001a434 T rtw_zmalloc -1001a454 T rtw_netif_queue_stopped -1001a458 T rtw_netif_wake_queue -1001a45a T rtw_netif_start_queue -1001a45c T rtw_netif_stop_queue -1001a45e T flush_signals_thread -1001a460 T rtw_acquire_wakelock -1001a470 T rtw_release_wakelock -1001a480 T rtw_create_task -1001a49c T rtw_delete_task -1001a4ac T rtw_wakeup_task -1001a4bc T rtw_timerCreate -1001a4d8 T rtw_timerDelete -1001a4ec T rtw_timerIsTimerActive -1001a500 T rtw_timerStop -1001a514 T rtw_timerChangePeriod -1001a528 T rtw_thread_enter -1001a538 T rtw_thread_exit -1001a548 T tcm_heap_free -1001a5c8 T tcm_heap_init -1001a618 T tcm_heap_freeSpace -1001a658 T tcm_heap_malloc -1001a6f8 T tcm_heap_calloc -1001a710 T flash_init -1001a7ac T flash_turnon -1001a7c4 T flash_erase_sector -1001a7f0 T flash_stream_read -1001a8c0 T flash_stream_write -1001aa18 T i2s_init -1001aaf0 T i2s_set_dma_buffer -1001ab42 T i2s_tx_irq_handler -1001ab48 T i2s_set_param -1001ab7c T i2s_deinit -1001ab80 T i2s_enable -1001ab84 T i2s_disable -1001ab88 W pinmap_merge -1001abc4 W pinmap_find_peripheral -1001abdc W pinmap_peripheral -1001ac14 T sleep_ex_selective -1001ac28 T deepsleep_ex -1001ac4c T us_ticker_read -1001ac78 T En32KCalibration -1001ad0c T WDGInitial -1001ad98 T WDGStart -1001adb0 T WDGRefresh -1001adcc T I2SISRHandle -1001ae88 T RtkI2SDeInit -1001af68 T RtkI2SEnable -1001afa4 T RtkI2SDisable -1001afe0 T RtkI2SLoadDefault -1001b044 T HalI2SOpInit -1001b0c0 T RtkI2SInit -1001b284 T HalI2SInit -1001b2c2 T HalI2SDisable -1001b2e8 T HalI2SEnable -1001b30c T HalI2SDeInit -1001b364 T HalTimerOpInit_Patch -1001b3a0 T freertos_ready_to_sleep -1001b3b0 T freertos_pre_sleep_processing -1001b474 T freertos_post_sleep_processing -1001b498 T acquire_wakelock -1001b4d8 T release_wakelock -1001b534 T get_wakelock_status -1001b540 T HalI2SInitRtl8195a_Patch -1001b642 T HalI2SSetRateRtl8195a -1001b688 T HalI2SSetWordLenRtl8195a -1001b6b0 T HalI2SSetChNumRtl8195a -1001b6d8 T HalI2SSetPageNumRtl8195a -1001b700 T HalI2SSetPageSizeRtl8195a -1001b72a T HalI2SSetDMABufRtl8195a -1001b794 T HalI2SGetTxPageRtl8195a -1001b7b4 T HalI2SPageSendRtl8195a -1001b800 T HalI2SClearAllOwnBitRtl8195a -1001b834 T HalI2SDMACtrlRtl8195a -1001b838 T HalTimerIrq2To7Handle_Patch -1001b88c T HalTimerIrqRegisterRtl8195a_Patch -1001b908 T HalTimerIrqUnRegisterRtl8195a_Patch -1001b980 T HalTimerDeInitRtl8195a_Patch -1001b9b4 T HalTimerReadCountRtl8195a_Patch -1001b9cc T HalTimerReLoadRtl8195a_Patch -1001ba00 T HalTimerInitRtl8195a_Patch -1001bad4 T HalTimerIrqEnRtl8195a -1001bae8 T HalTimerEnRtl8195a_Patch -1001bafc T HalTimerDisRtl8195a_Patch -1001bb10 t rtw_ht_operation_update -1001bbc2 t associated_clients_update.part.11 -1001bbfe T chk_sta_is_alive -1001bc3c T add_RATid -1001bd44 T update_sta_info_apmode -1001bdfc T update_beacon -1001c0bc T rtw_check_beacon_data -1001c7bc T associated_clients_update -1001c7c6 T bss_cap_update_on_sta_join -1001c976 T bss_cap_update_on_sta_leave -1001ca72 T ap_free_sta -1001cb24 T expire_timeout_chk -1001cc60 T rtw_sta_flush -1001cce4 T free_mlme_ap_info -1001cd30 T sta_info_update -1001cd6c T ap_sta_info_defer_update -1001cd9c T start_ap_mode -1001cddc T init_mlme_ap_info -1001cdf2 T stop_ap_mode -1001ce40 T rtw_generate_bcn_ie -1001d164 T set_hidden_ssid -1001d1bc T _rtw_init_evt_priv -1001d1ce T _rtw_free_cmd_priv -1001d1d8 T _rtw_enqueue_cmd -1001d204 T _rtw_dequeue_cmd -1001d238 T _rtw_observequeue_cmd -1001d24c T rtw_init_cmd_priv -1001d256 T rtw_init_evt_priv -1001d25a T rtw_free_evt_priv -1001d25c T rtw_free_cmd_priv -1001d260 T rtw_cmd_filter -1001d27e T rtw_free_cmd_obj -1001d2a8 T rtw_enqueue_cmd -1001d2fe T rtw_set_channel_plan_cmd_callback -1001d316 T rtw_survey_cmd_callback -1001d332 T rtw_disassoc_cmd_callback -1001d362 T rtw_joinbss_cmd_callback -1001d37e T rtw_setstaKey_cmdrsp_callback -1001d398 T rtw_cmd_thread -1001d4f4 T rtw_joinbss_cmd -1001d79e T rtw_disassoc_cmd -1001d7ec T rtw_setstakey_cmd -1001d8dc T rtw_clearstakey_cmd -1001d97c T rtw_dynamic_chk_wk_cmd -1001d9ce T rtw_set_chplan_cmd -1001da4e T dynamic_chk_wk_hdl -1001db16 T lps_ctrl_wk_hdl -1001db7a T rtw_lps_ctrl_wk_cmd -1001dbe4 T rtw_sitesurvey_cmd -1001dcac T rpt_timer_setting_wk_hdl -1001dcc0 T rtw_ps_cmd -1001dd1c T rtw_chk_hi_queue_cmd -1001dd70 T rtw_drvextra_cmd_hdl -1001de4c t rtw_free_mlme_ie_data -1001de64 T rtw_init_mlme_timer -1001dec0 T rtw_del_mlme_timer -1001dee0 T reconnect_timer_hdl -1001df80 T _rtw_init_mlme_priv -1001e002 T rtw_mfree_mlme_priv_lock -1001e01e T rtw_free_mlme_priv_ie_data -1001e056 T _rtw_free_mlme_priv -1001e07e T _rtw_alloc_network -1001e0ce T _rtw_free_network -1001e12e T _rtw_free_network_nolock -1001e154 T _rtw_find_network -1001e190 T _rtw_free_network_queue -1001e1d8 T rtw_if_up -1001e1f8 T rtw_get_capability_from_ie -1001e1fc T rtw_get_capability -1001e216 T rtw_get_beacon_interval_from_ie -1001e21a T rtw_init_mlme_priv -1001e232 T rtw_free_mlme_priv -1001e236 T rtw_free_network_queue -1001e23a T rtw_is_same_ibss -1001e250 T is_same_network -1001e2b4 T update_network -1001e34e T rtw_update_scanned_network -1001e460 T rtw_add_network -1001e49e T rtw_survey_event_callback -1001e54a T rtw_dummy_event_callback -1001e54c T rtw_free_assoc_resources -1001e616 T rtw_indicate_connect -1001e626 T rtw_indicate_disconnect -1001e648 T rtw_indicate_scan_done -1001e64c T rtw_joinbss_event_callback -1001e66a T search_max_mac_id -1001e6b2 T rtw_stassoc_hw_rpt -1001e6ea T rtw_stassoc_event_callback -1001e718 T rtw_stadel_event_callback -1001e7be T _rtw_join_timeout_handler -1001e848 T rtw_join_timeout_handler -1001e8a0 T rtw_scan_timeout_handler -1001e8d0 T _rtw_scan_timeout_handler -1001e8d4 T rtw_dynamic_check_timer_handlder -1001e92c T _dynamic_check_timer_handlder -1001e970 T rtw_select_and_join_from_scanned_queue -1001ea44 T rtw_surveydone_event_callback -1001eb5c T rtw_set_auth -1001ebac T rtw_set_key -1001ec6e T rtw_restruct_wmm_ie -1001ecd4 T rtw_restruct_sec_ie -1001ed40 T rtw_joinbss_reset -1001ed50 T rtw_restructure_ht_ie -1001ee30 T rtw_update_ht_cap -1001eeba T rtw_joinbss_event_prehandle -1001f0e6 T rtw_linked_check -1001f102 T rtw_buddy_adapter_up -1001f13a T check_buddy_fwstate -1001f158 t get_da -1001f178 t get_sa -1001f1a2 T OnAction -1001f1b4 T DoReserved -1001f1b8 t _mgt_dispatcher.isra.2 -1001f204 T rtw_is_channel_set_contains_channel -1001f226 T init_hw_mlme_ext -1001f23c T init_channel_set -1001f2d4 T free_mlme_ext_priv -1001f2fc T mgt_dispatcher -1001f384 T alloc_mgtxmitframe -1001f3bc T update_mgnt_tx_rate -1001f3c2 T update_mgntframe_attrib -1001f41e T rtw_build_mgnt_frame -1001f474 T dump_mgntframe -1001f48e T rtw_send_mgnt -1001f4ac t issue_action_BSSCoexistPacket -1001f6b8 T update_hidden_ssid -1001f70c T issue_beacon -1001f924 T issue_probersp -1001fbb4 T OnProbeReq -1001fc7c T issue_probereq -1001fe34 T issue_auth -1002009c T OnAuth -10020340 T issue_asocrsp -100205b4 T issue_assocreq -100208f0 T issue_nulldata -100209da T issue_qos_nulldata -10020b0c T issue_deauth -10020bf4 T issue_action_BA -10020e70 T OnAction_back -10020f3e T collect_bss_info -10021170 T start_clnt_auth -10021200 T start_clnt_assoc -10021234 T OnAuthClient -10021314 T report_scan_result_one -100214d4 T add_site_survey -1002165a T report_survey_event -10021898 T OnProbeRsp -100218cc T report_surveydone_event -10021930 T report_join_res -100219a0 T OnAssocRsp -10021aec T report_del_sta_event -10021b7e T receive_disconnect -10021bd4 T OnBeacon -10021d5c T OnDeAuth -10021eb4 T OnDisassoc -10022024 T report_add_sta_event -10022098 T OnAssocReq -10022688 T rtw_port_switch_chk -1002270c T update_sta_info -1002278c T mlmeext_sta_del_event_callback -1002280c T _linked_info_dump -1002286e T _linked_rx_signal_strehgth_display -100228a8 T linked_status_chk -10022b1c T survey_timer_hdl -10022bfc T _survey_timer_hdl -10022c00 T link_timer_hdl -10022c7e T _link_timer_hdl -10022c82 T addba_timer_hdl -10022ca2 T NULL_hdl -10022ca6 T setopmode_hdl -10022cec T disconnect_hdl -10022d98 T setauth_hdl -10022da8 T setkey_hdl -10022e00 T set_stakey_hdl -10022f04 T set_tx_beacon_cmd -10022f78 T mlme_evt_hdl -10022fc4 T tx_beacon_hdl -1002307e T check_buddy_mlmeinfo_state -10023098 T site_survey -10023268 T sitesurvey_cmd_hdl -10023376 T concurrent_chk_start_clnt_join -1002340c T start_clnt_join -100234e0 T join_cmd_hdl -10023604 T concurrent_chk_joinbss_done -100237cc T mlmeext_joinbss_event_callback -10023908 T set_chplan_hdl -10023924 T init_mlme_ext_timer -10023980 T init_mlme_ext_priv -10023abc t get_hdr_bssid -10023ae4 t filter_packet -10023b6c t promisc_get_encrypt -10023bbe t promisc_info_get -10023c62 t promisc_set_enable -10023cfe T _promisc_deinit -10023d50 T _promisc_recv_func -1002429c T _promisc_set -1002432c T _is_promisc_enabled -10024344 t SetEAPOL_KEYIV -100243e2 t ToDrv_SetPTK -1002448a t Message_ReplayCounter_OC2LI.isra.2 -100244b8 t Message_SmallerEqualReplayCounter.isra.4 -100244ea t Message_setReplayCounter.isra.5 -10024508 t INCLargeInteger -10024528 t INCOctet16_INTEGER -10024570 t INCOctet32_INTEGER -100245d0 t ToDrv_DisconnectSTA -10024694 t CheckMIC.constprop.14 -10024714 t CalcMIC.constprop.15 -10024774 T DecWPA2KeyData -10024828 T DecGTK -100248e4 T ToDrv_SetGTK -10024974 T init_wpa_sta_info -10024a60 T SendEAPOL -10025118 T ClientSendEAPOL -10025600 t ResendTimeout -10025688 T EAPOLKeyRecvd -10025800 T ClientEAPOLKeyRecvd -10025bc0 T psk_derive -10025c74 T psk_init -10025d64 T psk_strip_rsn_pairwise -10025de4 T psk_strip_wpa_pairwise -10025e64 T tkip_send_mic_failure_report -10025fd8 T pwr_state_check_handler -10025fdc T ips_enter -10026084 T ips_leave -1002619c T rtw_pwr_unassociated_idle -100261e6 T rtw_ps_processor -1002623e T PS_RDY_CHECK -100262a6 T rtw_set_ps_mode -10026314 T LPS_RF_ON_check -1002636a T LPS_Enter -100263d8 T LPS_Leave -10026414 T LeaveAllPowerSaveMode -10026424 T rtw_init_pwrctrl_priv -100264f8 T rtw_free_pwrctrl_priv -1002650c T _rtw_pwr_wakeup -100265e8 T rtw_pm_set_lps -10026630 T rtw_pm_set_ips -10026674 T rtw_pm_set_tdma_param -10026690 T rtw_pm_set_lps_dtim -1002669c T rtw_pm_get_lps_dtim -100266a8 t recvframe_pull -100266ca t recvframe_pull_tail -100266ec T rtw_signal_stat_timer_hdl -1002678a T _rtw_init_sta_recv_priv -100267a8 T _rtw_init_recv_priv -10026850 T rtw_mfree_recv_priv_lock -10026884 T _rtw_alloc_recvframe -100268b6 T rtw_alloc_recvframe -100268dc T rtw_free_recvframe -10026978 T _rtw_enqueue_recvframe -100269a4 T rtw_enqueue_recvframe -100269ce T rtw_free_recvframe_queue -10026a06 T rtw_free_uc_swdec_pending_queue -10026a2e T _rtw_free_recv_priv -10026a5e T rtw_free_buf_pending_queue -10026a62 T recvframe_chkmic -10026b60 T decryptor -10026bfc T portctrl -10026c72 T recv_decache -10026ca0 T process_pwrbit_data -10026ce0 T process_wmmps_data -10026d68 T count_rx_stats -10026ddc T sta2sta_data_frame -10026f18 T ap2sta_data_frame -10027044 T sta2ap_data_frame -100270cc T validate_recv_ctrl_frame -10027266 T validate_recv_data_frame -100274c0 T wlanhdr_to_ethhdr -100275fc T recvframe_defrag -100276a6 T recvframe_chk_defrag -1002775c T validate_recv_mgnt_frame -10027798 T validate_recv_frame -10027860 T recv_indicatepkt_reorder -10027882 T process_recv_indicatepkts -100278da T recv_func_prehandle -10027902 T recv_func_posthandle -10027966 T recv_func -100279f0 T rtw_recv_entry -10027a20 T rtw_recv_tasklet -10027a78 T rtw_wep_encrypt -10027abe T rtw_wep_decrypt -10027b04 T rtw_tkip_encrypt -10027b70 T rtw_tkip_decrypt -10027bdc T rtw_aes_encrypt -10027c48 T rtw_aes_decrypt -10027cac T rtw_init_sec_priv -10027d1e T rtw_free_sec_priv -10027d3e t wifi_mac_hash -10027d68 T _addba_timer_hdl -10027d6c T _rtw_init_stainfo -10027de6 T _rtw_init_sta_priv -10027ece T _rtw_free_sta_xmit_priv_lock -10027efa T rtw_mfree_stainfo -10027f26 T rtw_mfree_sta_priv_lock -10027f5c T _rtw_free_sta_priv -10027f7c T init_addba_retry_timer -10027fa4 T rtw_alloc_stainfo -1002806e T rtw_free_stainfo -10028210 T rtw_get_stainfo -1002828c T rtw_init_bcmc_stainfo -100282bc T rtw_get_bcmc_stainfo -100282e0 T rtw_free_all_stainfo -1002833a T cckrates_included -10028362 T cckratesonly_included -1002838a T networktype_to_raid_ex -100283e8 T judge_network_type -10028438 T ratetbl_val_2wifirate -1002844c T is_basicrate -10028478 T ratetbl2rateset -100284bc T get_rate_set -100284e6 T UpdateBrateTbl -10028518 T UpdateBrateTblForSoftAP -1002854c T Save_DM_Func_Flag -10028562 T Restore_DM_Func_Flag -10028578 T Switch_DM_Func -10028594 T Set_MSR -100285b8 T set_opmode -100285fc T SelectChannel -10028630 T SetBWMode -1002866c T set_channel_bwmode -100286c2 T get_my_bssid -100286c6 T get_beacon_interval -100286e4 T is_client_associated_to_ap -100286fc T is_client_associated_to_ibss -10028718 T is_IBSS_empty -1002873a T decide_wait_for_beacon_timeout -10028756 T invalidate_cam_all -1002875e T write_cam -100287d4 T clear_cam_entry -10028802 T flush_all_cam_entry -10028860 T WMM_param_handler -10028886 T WMMOnAssocRsp -10028954 T HT_caps_handler -100289f4 T HT_info_handler -10028a18 T HTOnAssocRsp -10028a50 T ERP_IE_handler -10028a6c T VCS_update -10028abe T rtw_check_bcn_info -10028cce T update_beacon_info -10028d24 T is_ap_in_tkip -10028d9c T wifirate2_ratetbl_inx -10028e08 T update_basic_rate -10028e36 T update_supported_rate -10028e60 T update_MCS_rate -10028e6c T support_short_GI -10028e9a T get_highest_rate_idx -10028eb4 T Update_RA_Entry -10028ebc T set_sta_rate -10028ec4 T update_tx_basic_rate -10028f1c T check_assoc_AP -10029010 T update_IOT_info -1002906e T update_capinfo -100290ec T update_wireless_mode -1002918c T update_bmc_sta_support_rate -100291b4 T update_TSF -100291c6 T correct_TSF -100291ce t _init_txservq -100291e4 t set_qos -10029234 T _rtw_init_sta_xmit_priv -1002927a T rtw_mfree_xmit_priv_lock -100292c6 T qos_acm -10029300 T xmitframe_addmic -1002945e T xmitframe_swencrypt -1002948a T rtw_make_wlanhdr -1002966a T rtw_txframes_pending -100296a6 T rtw_txframes_sta_ac_pending -100296dc T rtw_txframes_update_attrib_vcs_info -1002977c T rtw_put_snap -100297c0 T rtw_update_protection -10029806 T rtw_count_tx_stats -10029856 T rtw_free_xmitbuf_ext -10029898 T rtw_alloc_xmitframe -100298f0 T rtw_free_xmitframe -10029942 T rtw_free_xmitframe_queue -10029980 T rtw_get_sta_pending -100299c0 T rtw_xmit_classifier -10029a26 T rtw_xmitframe_enqueue -10029a34 T rtw_alloc_hwxmits -10029a8e T rtw_free_hwxmits -10029aa4 T _rtw_free_xmit_priv -10029b70 T rtw_init_hwxmits -10029b88 T _rtw_init_xmit_priv -10029d40 T rtw_get_ff_hwaddr -10029d54 T xmitframe_enqueue_for_sleeping_sta -10029f14 t dequeue_xmitframes_to_sleeping_queue -10029f6a T stop_sta_xmit -1002a052 T wakeup_sta_to_xmit -1002a268 T xmit_delivery_enabled_frames -1002a384 T rtw_xmit_tasklet -1002a3dc T rtw_xmit_mgnt -1002a3e0 T rtw_xmit -1002a70a T rtw_sctx_done_err -1002a716 T rtw_alloc_xmitbuf -1002a770 T rtw_free_xmitbuf -1002a7e2 T rtw_alloc_xmitbuf_ext -1002a868 T rtw_sctx_done -1002a86e t rtl8195a_free_rx_ring -1002a87c t bus_write32 -1002a8d8 t bus_write16 -1002a934 t bus_write8 -1002a990 t bus_read32 -1002a9ea t bus_read16 -1002aa46 t bus_read8 -1002aaa2 t rtl8195a_free_tx_ring -1002ab30 T rtl8195a_init_desc_ring -1002ac70 T rtl8195a_free_desc_ring -1002ac8c T rtl8195a_reset_desc_ring -1002ad22 T InitLxDmaRtl8195a -1002ae84 T rtl8195a_check_txdesc_closed -1002aefc t rtl8195a_tx_isr -1002afe0 T InterruptRecognized8195a -1002b070 T InitInterrupt8195a -1002b090 T EnableDMA8195a -1002b0b8 T EnableInterrupt8195a -1002b0f8 T DisableDMA8195a -1002b104 T DisableInterrupt8195a -1002b11c T UpdateInterruptMask8195a -1002b17e T CheckRxTgRtl8195a -1002b1b8 T rtl8192ee_check_rxdesc_remain -1002b1e8 T rtl8195a_recv_tasklet -1002b4fc T rtl8195a_tx_int_handler -1002b528 T InterruptHandle8195a -1002b79c T rtl8195a_xmit_tasklet -1002b7c4 T lxbus_set_intf_ops -1002b804 t GetTxBufDesc -1002b84e t UpdateFirstTxbdtoXmitBuf.isra.3 -1002b880 t check_nic_enough_desc.isra.4 -1002b8d0 T rtl8195ab_init_xmit_priv -1002b8de T rtl8195ab_free_xmit_priv -1002b8e6 T GetDmaTxbdIdx -1002b902 T rtl8195a_enqueue_xmitbuf -1002b926 T rtl8195a_dequeue_xmitbuf -1002b94a T SetTxbdForLxDMARtl8195ab -1002b9ca T UpdateTxbdHostIndex -1002ba08 T rtw_dump_xframe -1002bbda T check_tx_desc_resource -1002bc14 T rtw_dequeue_xframe -1002bca8 T rtw_xmitframe_coalesce -1002bf5c T rtl8195ab_xmitframe_resume -1002c052 T rtl8195ab_mgnt_xmit -1002c08e T rtl8195ab_hal_xmit -1002c19c t Hal_GetEfuseDefinition -1002c1cc t ResumeTxBeacon -1002c210 T UpdateHalRAMask8195A -1002c3a8 T HalLittleWifiMCUThreadRtl8195a -1002c3fc T HalCheckInReqStateThreadRtl8195a -1002c448 T HalTDMAChangeStateThreadRtl8195a -1002c494 t rtl8195a_read_chip_version -1002c508 t Hal_EfuseWordEnableDataWrite -1002c74c t Hal_EfusePowerSwitch -1002c760 t rtl8195a_free_hal_data -1002c77a t StopTxBeacon -1002c7c4 T SetHalODMVar8195A -1002c87c T rtl8195a_start_thread -1002c8e4 T rtl8195a_stop_thread -1002c908 t Hal_ReadEFuse -1002ca78 T GetHalODMVar8195A -1002ca8c t rtw_flash_map_update.part.12 -1002cb2c t rtw_flash_map_erase -1002cb70 t Hal_EfusePgPacketWrite -1002cdec t Hal_EfuseGetCurrentSize -1002cecc t rtw_flash_map_write -1002d09a T rtl8195a_InitBeaconParameters -1002d10a T _InitBurstPktLen_8195AB -1002d114 T rtl8195a_set_hal_ops -1002d1f4 T rtl8195a_init_default_value -1002d1f6 T rtl8195a_InitLLTTable -1002d240 T Hal_GetChnlGroup8195A -1002d27c T rtw_config_map_read -1002d368 T rtw_config_map_write -1002d414 T Hal_InitPGData -1002d472 T Hal_EfuseParseIDCode -1002d48a T Hal_ReadPowerValueFromPROM_8195A -1002d528 T Hal_EfuseParseTxPowerInfo_8195A -1002d5c0 T Hal_EfuseParseEEPROMVer_8195A -1002d5d6 T Hal_EfuseParsePackageType_8195A -1002d640 T Hal_EfuseParseChnlPlan_8195A -1002d670 T Hal_EfuseParseCustomerID_8195A -1002d686 T Hal_EfuseParseXtal_8195A -1002d69e T Hal_EfuseParseThermalMeter_8195A -1002d6c6 T Hal_ReadRFGainOffset -1002d716 T BWMapping_8195A -1002d736 T SCMapping_8195A -1002d75e T rtl8195a_update_txdesc -1002da2e T rtl8195a_fill_fake_txdesc -1002daec T SetHwReg8195A -1002e7ac T GetHwReg8195A -1002e840 T SetHalDefVar8195A -1002e920 T GetHalDefVar8195A -1002e944 T PHY_QueryBBReg_8195A_Safe -1002e970 T PHY_SetBBReg_8195A_Safe -1002e99c t phy_RFSerialRead_8195A -1002ea50 T PHY_QueryRFReg_8195A -1002ea68 T PHY_SetRFReg_8195A -1002eac0 T PHY_MACConfig8195A -1002eada T PHY_BBConfig8195A -1002ebea T PHY_RFConfig8195A -1002ebee T PHY_SetTxPowerIndex_8195A -1002ecf8 T phy_TxPwrAdjInPercentage -1002ed38 T PHY_GetTxPowerIndex_8195A -1002ee28 T PHY_SetTxPowerLevel8195A -1002ee2e T phy_SpurCalibration_8195A -1002f0e6 T phy_SetRegBW_8195A -1002f124 T phy_PostSetBwMode8195A -1002f280 T phy_SwChnl8195A -1002f328 T phy_SwChnlAndSetBwMode8195A -1002f378 T PHY_HandleSwChnlAndSetBW8195A -1002f428 T PHY_SetBWMode8195A -1002f44a T PHY_SwChnl8195A -1002f464 T PHY_SetSwChnlBWMode8195A -1002f482 t HalTimerEnable -1002f494 T InitTDMATimer -1002f4bc T ChangeStateByTDMA -1002f4cc T GetMinRateInRRSR -1002f500 T CheckInReqState -1002f510 T InitCheckStateTimer -1002f540 T InitGTimer1ms -1002f58c T DeInitGTimer1ms -1002f5d4 T ChangeTransmiteRate -1002f610 T PowerBitSetting -1002f68c T ChkandChangePS -1002f6f0 T IssueRsvdPagePacketSetting -1002f764 T IssuePSPoll -1002f790 T WaitTxStateMachineOk -1002f7e4 T IssueNullData -1002f874 T PsCloseRF -1002f8a8 T PsOpenRF -1002f8d8 T ChkTxQueueIsEmpty -1002f8f0 T InitPS -1002f960 T ConfigListenBeaconPeriod -1002f984 T PS_S2_Condition_Match -1002f9b8 T PS_S4_Condition_Match -1002fa34 T PS_32K_Condition_Match -1002fa70 T PS_S2ToS3ToS0State -1002fad8 T PS_S2ToS0State -1002faf4 T PS_S3ToS2orS0State -1002fb24 T PS_S0ToS1ToS2State -1002fb80 T PS_S1ToS0orS2State -1002fbb0 T PS_S2ToS4State -1002fbfc T PS_S0ToS6State -1002fc1c T PS_S6ToS0State -1002fc34 T CheckTSFIsStable -1002fc84 T WaitHWStateReady -1002fc94 T SysClkDown -1002fd04 T SysClkUp -1002fd50 T ResetPSParm -1002fdc4 T PS_S4ToS2State -1002fde8 T SleepTo32K -1002fe48 T Change_PS_State -1002fff4 T Legacy_PS_Setting -10030068 T PSModeSetting -1003010c T ChangePSStateByRPWM -10030150 T ChangeTDMAState -10030270 T TDMAChangeStateTask -1003029a T EnterPS -100302bc T SetSmartPSTimer -100302f8 T GTimer7Handle -10030354 T SmartPS2InitTimerAndToGetRxPkt -10030390 T PS_OnBeacon -10030440 T PSBcnEarlyProcess -100304fc T PSMtiBcnEarlyProcess -100305a8 T PSRxBcnProcess -100306f8 T TxPktInPSOn -10030736 T PsBcnToProcess -100307f0 T GTimer6Handle -1003083c T RPWMProcess -10030878 T PSSetMode -100308f0 T SpeRPT -10030a10 T ISR_BcnEarly -10030a7c T ISR_MtiBcnEarly -10030ab0 T ISR_RxBcn -10030acc T ISR_RxBCMD1 -10030afc T ISR_RxBCMD0 -10030b50 T ISR_RxUCMD1 -10030b8e T ISR_RxUCMD0 -10030bca T ISR_TxPktIn -10030bdc T ISR_TXCCX -10030be0 T H2CHDL_SetPwrMode -10030d08 T CheckInReqStateTask -10030d4e T HalGetNullTxRpt -10030d6c T ISR_TBTT -10030de4 T H2CHDL_BcnIgnoreEDCCA -10030df4 T PMUInitial -10030e44 T PMUTask -10030f50 T PHY_RF6052SetBandwidth8195A -10030f94 T PHY_RF6052_Config8195A -1003104c t process_rssi -10031082 T rtl8195a_query_rx_desc_status -10031132 T rtl8195a_query_rx_phy_status -1003128a T hal_com_get_channel_plan -100312be T HAL_IsLegalChannel -100312dc T MRateToHwRate -100312f0 T HwRateToMRate -10031304 T HalSetBrateCfg -100313b0 T Hal_MappingOutPipe -100313cc T hal_init_macaddr -100313f8 T hw_var_port_switch -10031680 T SetHwReg -1003168a T GetHwReg -1003168c T switch_power_saving_mode -100316d0 T rtw_bb_rf_gain_offset -10031718 T PHY_GetRateValuesOfTxPowerByRate -100318b0 T PHY_StoreTxPowerByRateNew -1003194c T PHY_InitTxPowerByRate -10031964 T PHY_StoreTxPowerByRate -1003197c T PHY_GetTxPowerIndexBase -10031a1c T PHY_GetTxPowerTrackingOffset -10031a48 T PHY_GetRateIndexOfTxPowerByRate -10031a5c T PHY_GetTxPowerByRate -10031abc T phy_StoreTxPowerByRateBase -10031b08 T PHY_SetTxPowerByRate -10031b44 T phy_ConvertTxPowerByRateInDbmToRelativeValues -10031c44 T PHY_TxPowerByRateConfiguration -10031c56 T PHY_SetTxPowerIndexByRateArray -10031c94 T PHY_SetTxPowerIndexByRateSection -10031cf8 T PHY_SetTxPowerLevelByPath -10031d2e T phy_GetWorldWideLimit -10031d5a T PHY_GetTxPowerLimit -10031e84 T PHY_ConvertTxPowerLimitToPowerIndex -10031fd4 T PHY_InitTxPowerLimit -1003201c T PHY_SetTxPowerLimit -10032098 T PHY_GetTxPowerIndex -100320a8 T rtw_hal_chip_configure -100320be T rtw_hal_read_chip_info -100320d4 T rtw_hal_read_chip_version -100320ea T rtw_hal_def_value_init -10032100 T rtw_hal_free_data -10032116 T rtw_hal_dm_init -1003212c T rtw_hal_dm_deinit -10032142 T rtw_hal_init -1003216c T rtw_hal_deinit -10032186 T rtw_hal_set_hwreg -10032194 T rtw_hal_get_hwreg -100321a2 T rtw_hal_set_def_var -100321b4 T rtw_hal_get_def_var -100321c6 T rtw_hal_set_odm_var -100321d4 T rtw_hal_get_odm_var -100321e2 T rtw_hal_enable_interrupt -10032204 T rtw_hal_disable_interrupt -10032226 T rtw_hal_inirp_init -10032238 T rtw_hal_inirp_deinit -1003224a T rtw_hal_irp_reset -10032258 T rtw_hal_xmit -1003226a T rtw_hal_mgnt_xmit -1003227c T rtw_hal_init_xmit_priv -1003228e T rtw_hal_free_xmit_priv -1003229c T rtw_hal_update_ra_mask -100322ca T rtw_hal_add_ra_tid -100322d8 T rtw_hal_clone_data -100322e6 T rtw_hal_start_thread -100322f4 T rtw_hal_stop_thread -10032302 T rtw_hal_read_bbreg -10032336 T rtw_hal_write_bbreg -10032362 T rtw_hal_read_rfreg -10032374 T rtw_hal_write_rfreg -10032388 T rtw_hal_interrupt_handler -1003239a T rtw_hal_set_bwmode -100323a8 T rtw_hal_set_chan -100323b6 T rtw_hal_set_chnl_bw -100323cc T rtw_hal_dm_watchdog -100323e2 T rtw_hal_macid_sleep -10032402 T rtw_hal_macid_wakeup -10032422 T decide_chip_type_by_device_id -10032428 t rtw_net_get_stats -10032478 t netdev_if2_close -10032498 t netdev_close -100324f4 t rtw_if1_deinit -1003258e T rtw_os_indicate_connect -10032592 T rtw_os_indicate_scan_done -10032596 T rtw_reset_securitypriv -1003268a T rtw_os_indicate_disconnect -100326d4 T rtw_init_netdev -10032824 T rtw_drv_if2_init -10032a2c T rtw_drv_if2_stop -10032a82 T rtw_drv_if2_free -10032ad0 T _netdev_open -10032bec T _netdev_if2_open -10032ca8 T netdev_if2_open -10032cd0 T netdev_open -10032cf8 T rtw_drv_probe -10032e78 T rtw_dev_remove -10032ebc T rtw_drv_entry -10032ee8 T rtw_drv_halt -10032f18 t rtw_wx_set_autoreconnect -10032f46 t rtw_wx_get_autoreconnect -10032f54 t rtw_forwarding_set -10032f76 t rtw_set_ch_deauth -10032f98 t get_priv_size -10032fac t rtw_wx_del_custome_ie -10032ff8 t rtw_wx_set_pscan_freq -1003307a t rtw_wx_update_custome_ie -100330ec t rtw_set_tos_value -1003310c t rtw_get_tx_power -10033250 t rtw_wx_set_custome_ie -100332fc t rtw_pm_get -10033340 t rtw_pm_set -100333f4 t rtw_wx_read32 -100334a0 t rtw_wx_write32 -10033504 t rtw_wx_set_freq.isra.10 -100335ac T rtw_ex_set -1003366c T wireless_send_event -10033676 T indicate_wx_custom_event -100336d2 T indicate_wx_scan_result_present -100336fa T indicate_wx_scan_complete_event -10033724 T rtw_indicate_sta_assoc -10033774 T rtw_indicate_sta_disassoc -100337cc T rtw_indicate_wx_assoc_event -100337fe T rtw_indicate_wx_disassoc_event -1003382e T rtw_set_wpa_ie -10033944 T strtopsk -100339b0 T rtw_wx_get_passphrase -100339fc T rtw_wx_set_ap_essid -10033aec T mac_reg_dump -10033b98 T bb_reg_dump -10033bf4 T rf_reg_dump -10033c6c t rtw_dbg_port -100342d4 T rtw_set_sta_num -100342f0 T rtw_ex_get_drv_ability -100343b0 T rtw_ex_get -10034648 T rtw_ioctl -100355d4 T rtw_os_recv_resource_init -100355d8 T rtw_os_recv_resource_alloc -100355e2 T rtw_os_recv_resource_free -100355e4 T rtw_tkip_countermeasure -10035684 T rtw_handle_tkip_mic_err -1003572c T rtw_recv_indicatepkt -1003597c T skb_fail_inc -10035998 T skb_fail_get_and_rst -100359b4 T init_skb_pool -10035a0c T init_skb_data_pool -10035a64 T alloc_skb -10035b64 T kfree_skb -10035bcc T kfree_skb_chk_key -10035bd0 T skb_put -10035c04 T skb_reserve -10035c12 T dev_alloc_skb -10035c2e T skb_end_pointer -10035c32 T skb_set_tail_pointer -10035c3a T skb_pull -10035c52 T skb_copy -10035c7a T rtw_remainder_len -10035c86 T _rtw_open_pktfile -10035c98 T _rtw_pktfile_read -10035cc6 T rtw_set_tx_chksum_offload -10035cc8 T rtw_os_xmit_resource_alloc -10035cd2 T rtw_os_xmit_resource_free -10035cd4 T rtw_os_pkt_complete -10035cdc T rtw_os_xmit_complete -10035cee T rtw_os_xmit_schedule -10035d2a T rtw_xmit_entry -10035d76 T rtw_alloc_etherdev_with_old_priv -10035d8c T rtw_alloc_etherdev -10035db8 T rtw_free_netdev -10035dd8 T timer_wrapper -10035e2c T alloc_etherdev -10035e88 T free_netdev -10035ea2 T dev_alloc_name -10035eac T init_timer_wrapper -10035ecc T deinit_timer_wrapper -10035f18 T init_timer -10035fd0 T mod_timer -100360b0 T cancel_timer_ex -100360f8 T del_timer_sync -1003615c T rtw_init_timer -10036164 T rtw_set_timer -10036168 T rtw_cancel_timer -10036172 T rtw_del_timer -10036178 T rltk_get_idx_bydev -10036188 T rltk_wlan_init -10036210 T rltk_wlan_deinit -100362d4 T rltk_wlan_start -10036308 T rltk_wlan_check_isup -10036318 T rltk_wlan_tx_inc -1003632c T rltk_wlan_tx_dec -10036340 T rltk_wlan_get_recv_skb -10036350 T rltk_wlan_alloc_skb -10036390 T rltk_wlan_send_skb -100363c4 T rltk_netif_rx -10036470 T rltk_set_sta_num -10036474 T rltk_set_tx_power_percentage -100364a8 T rltk_wlan_control -1003653c T rltk_wlan_running -10036554 T rltk_wlan_handshake_done -10036588 T rltk_wlan_wireless_mode -10036614 T rltk_wlan_is_connected_to_ap -10036658 T Efuse_PowerSwitch -10036664 T Efuse_GetCurrentSize -10036670 T Efuse_CalculateWordCnts -10036694 T EFUSE_GetEfuseDefinition -100366a8 T efuse_OneByteRead -100366dc T efuse_OneByteWrite -10036710 T Efuse_PgPacketWrite -10036724 T efuse_WordEnableDataRead -10036756 T Efuse_WordEnableDataWrite -1003676a T efuse_GetCurrentSize -10036792 T rtw_efuse_map_read -100367f4 T rtw_efuse_map_write -10036974 T rtw_macaddr_cfg -10036a38 T rtw_get_cipher_info -10036ab2 T rtw_get_bcn_info -10036b82 T rtw_init_default_value -10036bf0 T rtw_cancel_all_timer -10036c5a T rtw_free_drv_sw -10036cd0 T rtw_reset_drv_sw -10036d2c T rtw_init_drv_sw -10036db4 T rtw_start_drv_threads -10036e70 T rtw_stop_drv_threads -10036ea4 T rtw_read8 -10036eb2 T rtw_read16 -10036ec0 T rtw_read32 -10036ece T rtw_write8 -10036edc T rtw_write16 -10036eea T rtw_write32 -10036ef8 T rtw_do_join -10036f9c T rtw_set_802_11_bssid -10037120 T rtw_set_802_11_ssid -10037228 T rtw_set_802_11_infrastructure_mode -100372ca T rtw_set_802_11_bssid_list_scan -1003731a T rtw_set_802_11_authentication_mode -1003733c T rtw_set_802_11_add_wep -1003739c T ODM_InitRAInfo -1003743c T InitialRateUpdate -1003753c T RateUp_search_RateMask -1003756e T RateDown_search_RateMask -100375c0 T StartRateByRSSI -100375ea T RateUpRAM8195A -1003767e T RateDownTrying -100376bc T TryDone -10037754 T RateDownStepRAM8195A -100377f4 T RateDecisionRAM8195A -100378d8 T ArfrRefresh -10037ae0 T H2CHDL_Set_MACID_Config -10037ba4 T PHY_DM_RA_SetRSSI_8195A -10037bd2 t CheckPositive.isra.0 -10037cb4 T ODM_ReadAndConfig_MP_8195A_AGC_TAB -10037d2c T ODM_ReadAndConfig_MP_8195A_PHY_REG -10037da4 T ODM_GetVersion_MP_8195A_PHY_REG -10037da8 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG -10037ddc T odm_ConfigRFReg_8195A -10037e14 T odm_ConfigRF_RadioA_8195A -10037e24 T odm_ConfigMAC_8195A -10037e28 T odm_ConfigBB_AGC_8195A -10037e38 T odm_ConfigBB_PHY_REG_PG_8195A -10037e66 T odm_ConfigBB_PHY_8195A -10037eae T odm_ConfigBB_TXPWR_LMT_8195A -10037ed4 T ODM_CmnInfoInit -10037fc8 T ODM_CmnInfoHook -1003806c T ODM_CmnInfoPtrArrayHook -1003807c T ODM_CmnInfoUpdate -1003814c T odm_CommonInfoSelfInit -100381c0 T ODM_DMInit -1003820e T odm_CommonInfoSelfUpdate -10038260 T ODM_DMWatchdog -100382cc T PhyDM_Get_Structure -100382f0 T Phydm_CheckAdaptivity -1003831e T Phydm_NHMCounterStatisticsInit -10038394 T Phydm_SetEDCCAThreshold -100383cc T Phydm_MACEDCCAState -1003840a T Phydm_AdaptivityInit -100384e8 T Phydm_Adaptivity -10038608 T ODM_CfoTrackingInit -10038632 T ODM_CfoTracking -10038652 T ODM_ParsingCFO -10038684 T ODM_InitDebugSetting -10038698 T ODM_Write_DIG -10038738 T odm_ForbiddenIGICheck -100387ca T ODM_Write_CCK_CCA_Thres -10038804 T odm_DIGInit -1003889e T odm_DigAbort -100388c0 T odm_DIGbyRSSI_LPS -1003896c T odm_FAThresholdCheck -10038998 T odm_DIG -10038bf8 T odm_FalseAlarmCounterStatistics -10038c24 T odm_CCKPacketDetectionThresh -10038c7c T odm_RxPhyStatus8195A_Parsing -10038d80 T odm_Process_RSSIForDM_8195A -10038ec2 T ODM_PhyStatusQuery_8195A -10038eee T ODM_PhyStatusQuery -10038ef2 T ODM_ConfigRFWithHeaderFile -10038f10 T ODM_ConfigRFWithTxPwrTrackHeaderFile -10038f42 T ODM_ConfigBBWithHeaderFile -10038f6a T ODM_ConfigMACWithHeaderFile -10038f7c T ODM_Read1Byte -10038f82 T ODM_Read4Byte -10038f88 T ODM_Write1Byte -10038f8e T ODM_Write2Byte -10038f94 T ODM_Write4Byte -10038f9a T ODM_SetMACReg -10038fa0 T ODM_SetBBReg -10038fa6 T ODM_GetBBReg -10038fac T ODM_SetRFReg -10038fb2 T ODM_GetRFReg -10038fb8 T ODM_MoveMemory -10038fc2 T ODM_delay_ms -10038fc6 T ODM_delay_us -10038fcc T getSwingIndex -10039024 T odm_TXPowerTrackingThermalMeterInit -100390d6 T odm_TXPowerTrackingInit -100390da T odm_TXPowerTrackingCheckIOT -1003910e T ODM_TXPowerTrackingCheck -1003911c T odm_RSSIMonitorInit -10039124 T ODM_RAPostActionOnAssoc -1003912c T odm_RSSIMonitorCheckIOT -10039200 T odm_RSSIMonitorCheck -10039214 T odm_RateAdaptiveMaskInit -1003923c T ODM_RAStateCheck -1003927e T odm_RefreshRateAdaptiveMaskIOT -100392ce T odm_RefreshRateAdaptiveMask -100392e4 T ODM_Get_Rate_Bitmap -100393d4 t _ReadEfuseInfo8195a -1003949c t rtl8195a_interface_configure -100394d0 t rtl8195a_hal_deinit -1003950c T _InitPowerOn -1003958c t ReadAdapterInfo8195a -100395bc T _InitDriverInfoSize -100395c6 T _InitNetworkType -100395e8 T _InitWMACSetting -10039658 T _InitAdaptiveCtrl -1003969c T _InitEDCA -10039718 T _InitRateFallback -1003975c T _InitRetryFunction -10039788 T _InitOperationMode -100397d0 T _InitInterrupt -10039810 t rtl8195a_hal_init -10039ae8 T rtl8195ab_set_hal_ops -10039bc0 T FillH2CCmd8195A -10039be0 T CheckFwRsvdPageContent -10039be2 T rtl8195a_set_FwRsvdPage_cmd -10039bec T rtl8195a_set_FwMediaStatusRpt_cmd -10039c18 T rtl8195a_set_FwMacIdConfig_cmd -10039cd8 T rtl8195a_set_FwPwrMode_cmd -10039d68 T rtl8195a_download_rsvd_page -1003a070 T rtl8195a_set_FwJoinBssRpt_cmd -1003a07a T rtl8195a_Add_RateATid -1003a0cc T rtw_rpt_h_addr -1003a118 T rtw_txrpt_read8 -1003a136 T rtw_txrpt_write8 -1003a15a T rtw_ratemask_read8 -1003a178 T rtw_ratemask_write8 -1003a19c T ReadRateMask8 -1003a1a6 T WriteRateMask8 -1003a1aa T ReadTxrpt8 -1003a1b4 T WriteTxrpt8 -1003a1b8 T ResetTxrpt -1003a1f0 T PsuseTxrpt -1003a210 T CheckMaxMacidNum -1003a248 T GetMediaStatusCommon -1003a262 T GetTxrptStatistic -1003a318 T rtl8195a_InitHalDm -1003a43c T rtl8195a_HalDmWatchDog -1003a520 T rtl8195a_init_dm_priv -1003a5f8 T rtl8195a_deinit_dm_priv -1003a5fa T MediaConnection -1003a618 T MediaDisconnection -1003a638 T RATaskEnable -1003a662 T SetMediaStatus -1003a6a0 T H2CHDL_JoinInfo -1003a6d8 T H2CHDL_SetRsvdPage -1003a770 T H2CCmdCommon -1003a7b4 T HalPwrSeqCmdParsing -1003a874 T hci_dvobj_init -1003a884 T hci_dvobj_deinit -1003a894 T hci_dvobj_request_irq -1003a8a4 T hci_dvobj_free_irq -1003a8b4 T hci_lxbus_dvobj_init -1003a8f0 T hci_lxbus_dvobj_deinit -1003a930 T hci_lxbus_dvobj_request_irq -1003a984 T hci_lxbus_free_irq -1003a9dc T hci_lxbus_intf_stop -1003aa14 T rtw_interrupt_thread -1003aa88 T lextra_bus_dma_Interrupt -1003aad0 T init_rom_wlan_ram_map -1003aae8 T ODM_ReadAndConfig_MP_8195A_MAC_REG -1003ac44 t CheckPositive.isra.0 -1003ad28 T ODM_ReadAndConfig_MP_8195A_RadioA -1003ada0 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 -1003adf0 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 -1003ae40 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 -1003ae90 T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT -1003aec8 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack -1003aef4 T GetDeltaSwingTable_8195A -1003af24 T GetDeltaSwingXtalTable_8195A -1003af34 T ODM_TxXtalTrackSetXtal_8195A -1003af54 T Hal_MPT_CCKTxPowerAdjust -1003b024 T ODM_TxPwrTrackSetPwr_8195A -1003b134 T ConfigureTxpowerTrack_8195A -1003b180 T phy_PathA_IQK_8195A -1003b334 T phy_PathA_RxIQK8195A -1003b6c8 T _PHY_PathAFillIQKMatrix8195A -1003b85e T _PHY_PathBFillIQKMatrix8195A -1003b9da T _PHY_SaveADDARegisters8195A -1003ba0e T _PHY_SaveMACRegisters8195A -1003ba3c T _PHY_ReloadADDARegisters8195A -1003ba70 T _PHY_ReloadMACRegisters8195A -1003baa0 T _PHY_PathADDAOn8195A -1003badc T _PHY_MACSettingCalibration8195A -1003bb24 T _PHY_PIModeSwitch8195A -1003bb60 T phy_SimularityCompare_8195A -1003bc94 T phy_IQCalibrate_8195A -1003c00c T phy_LCCalibrate_8195A -1003c07c T PHY_LCCalibrate_8195A -1003c0dc T PHY_IQCalibrate_8195A -1003c390 T DoIQK_8195A -1003c3ae T ConfigureTxpowerTrack -1003c3c0 T ODM_TXPowerTrackingCallback_ThermalMeter -1003c7cc T ODM_ResetIQKResult -1003c814 T ODM_GetRightChnlPlaceforIQK -1003c868 t __rom_psk_PasswordHash_veneer -1003c878 t __rt_md5_hmac_veneer -1003c888 t __rtw_get_wps_attr_content_veneer -1003c898 t __SpicWaitBusyDoneRtl8195A_veneer -1003c8a8 t __aes_80211_decrypt_veneer -1003c8b8 t __rtw_set_ie_veneer -1003c8c8 t __rt_arc4_crypt_veneer -1003c8d8 t __rom_psk_CalcGTK_veneer -1003c8e8 t __wep_80211_encrypt_veneer -1003c8f8 t __AES_UnWRAP_veneer -1003c908 t ___vsscanf_veneer -1003c918 t __ROM_odm_FalseAlarmCounterStatistics_veneer -1003c928 t __rtw_seccalctkipmic_veneer -1003c938 t __HalI2SIntrCtrlRtl8195a_veneer -1003c948 t __rt_hmac_sha1_veneer -1003c958 t __rtw_secmicsetkey_veneer -1003c968 t __aes_80211_encrypt_veneer -1003c978 t __rtw_secmicappend_veneer -1003c988 t __rtw_get_ie_veneer -1003c998 t __rtw_get_sec_ie_veneer -1003c9a8 t __rtw_set_supported_rate_veneer -1003c9b8 t __wep_80211_decrypt_veneer -1003c9c8 t __prvStrCmp_veneer -1003c9d8 t __rtw_get_rateset_len_veneer -1003c9e8 t __ROM_odm_EVMdbToPercentage_veneer -1003c9f8 t __rtw_parse_wpa2_ie_veneer -1003ca08 t __key_2char2num_veneer -1003ca18 t __rtw_set_fixed_ie_veneer -1003ca28 t __ROM_ODM_CfoTrackingReset_veneer -1003ca38 t __ROM_odm_CfoTrackingFlow_veneer -1003ca48 t __AES_WRAP_veneer -1003ca58 t __phy_CalculateBitShift_veneer -1003ca68 t __rtw_get_wpa_ie_veneer -1003ca78 t __CmdDumpWord_veneer -1003ca88 t __Strtoul_veneer -1003ca98 t __HalI2SWrite32_veneer -1003caa8 t __rtw_ieee802_11_parse_elems_veneer -1003cab8 t __rtw_get_bit_value_from_ieee_value_veneer -1003cac8 t __ROM_odm_QueryRxPwrPercentage_veneer -1003cad8 t __HalI2SRead32_veneer -1003cae8 t __rom_psk_CalcPTK_veneer -1003caf8 t __rt_arc4_init_veneer -1003cb08 t __rtw_parse_wpa_ie_veneer -1003cb18 t __CmdWriteWord_veneer -1003cb28 t __PHY_SetBBReg_8195A_veneer -1003cb38 t __rtw_secgetmic_veneer -1003cb48 t __tkip_80211_decrypt_veneer -1003cb58 t __StrUpr_veneer -1003cb68 t __ROM_odm_SetCrystalCap_veneer -1003cb78 t __rtw_get_wpa2_ie_veneer -1003cb88 t __rtw_get_wps_ie_veneer -1003cb98 t __PHY_QueryBBReg_8195A_veneer -1003cba8 t __HalDelayUs_veneer -1003cbb8 t __ROM_odm_GetDefaultCrytaltalCap_veneer -1003cbc8 t __rtw_check_network_type_veneer -1003cbd8 t __HalI2SClrAllIntrRtl8195a_veneer -1003cbe8 t __tkip_80211_encrypt_veneer -1003cbf8 t __HalCpuClkConfig_veneer -1003cf95 d __func__.21308 -1003d2c1 d __FUNCTION__.14665 -1003d788 d bitrate_table -1003d8b4 d samplerate_table -1003d8c0 d decoder_table -1003d8cc d imdct_s -1003d95c d sfb_8000_short -1003d983 d sfb_32000_short -1003d9ac d is_table -1003d9c8 d rq_table -10045a04 d root_table -10045a20 d sfb_44100_mixed -10045a48 d is_lsf_table -10045ac0 d sflen_table -10045ae0 d sfb_16000_mixed -10045b04 d ca -10045b24 d sfb_44100_short -10045b4b d sfb_44100_long -10045b61 d sfb_48000_mixed -10045b87 d sfb_24000_long -10045ba0 d scale.7384 -10045be8 d sfb_32000_mixed -10045c0e d sfb_16000_short -10045c35 d sfb_8000_long -10045c4b d sfb_22050_mixed -10045c70 d window_l -10045d00 d sfb_48000_long -10045d18 d cs -10045d38 d sfb_24000_mixed -10045d5c d pretab -10045d72 d sfb_48000_short -10045d99 d sfb_22050_short -10045dc0 d sfb_8000_mixed -10045de8 d sfbwidth_table -10045e54 d sfb_24000_short -10045e7b d sfb_32000_long -10045e91 d sfb_22050_long -10045ea8 d window_s -10045ed8 d nsfb_table -10045f20 d hufftab24 -10046528 d hufftab10 -100466c0 d hufftab11 -10046860 d hufftab12 -100469e0 d hufftab13 -10047018 d hufftab3 -10047058 d hufftab15 -10047648 d hufftab16 -10047c90 d hufftab6 -10047d00 d hufftab7 -10047e00 D mad_huff_pair_table -10047f80 d hufftab9 -10048058 d hufftab1 -10048078 d hufftabA -100480e8 d hufftab2 -10048128 d hufftabB -10048168 D mad_huff_quad_table -10048170 d hufftab0 -10048174 d hufftab5 -100481dc d hufftab8 -100482e4 d crc_table -100484e4 d D -10048d64 D mad_timer_zero -100490f7 d __func__.20875 -1004968c d err_to_errno_table -100496d4 D ip_addr_broadcast -100496d8 D ip_addr_any -100496ec D memp_sizes -1004970c D tcp_pcb_lists -1004971c D tcp_state_str -10049748 D tcp_backoff -100497bd D tcp_persist_backoff -100497c4 D ethbroadcast -100497ca D ethzero -100497f9 d __FUNCTION__.9191 -100498bb d __FUNCTION__.9203 -100498ca d dhcp_option_lease_time_one_day -100498f3 d dhcp_option_interface_mtu -100498f5 d dhcp_magic_cookie -10049977 d __FUNCTION__.4595 -10049995 d ucExpectedStackBytes.7044 -100499a9 d CSWTCH.270 -10049a36 d __FUNCTION__.12255 -10049a4c d __FUNCTION__.12259 -10049a64 D osdep_service -10049b88 d __FUNCTION__.12110 -10049c15 d __FUNCTION__.12059 -10049c29 d __FUNCTION__.12121 -10049c44 d __FUNCTION__.12067 -10049c60 d __FUNCTION__.12093 -10049c7f d __FUNCTION__.7295 -10049d88 d PinMap_I2S_RX -10049e68 d PinMap_I2S_TX -10049ec8 d I2SDefaultSetting -10049edc d PinMap_I2S_CLK -10049f3c d PinMap_I2S_WS -10049f9c d __FUNCTION__.8784 -10049ff4 d __FUNCTION__.8600 -1004a001 d __FUNCTION__.8613 -1004a2a6 d __FUNCTION__.8455 -1004a2c8 d __FUNCTION__.8462 -1004a2e3 d __FUNCTION__.8469 -1004a3de d __func__.8808 -1004a3fd d __func__.8818 -1004a41b d __func__.8830 -1004a435 d __func__.8840 -1004a457 d __func__.8835 -1004a820 d __func__.8603 -1004a83a d __func__.8686 -1004a84d d __func__.8825 -1004a866 d __func__.8631 -1004a899 d __FUNCTION__.17777 -1004a8b8 D wlancmds -1004aab0 D rtw_cmd_callback -1004ad3c d RTW_ChannelPlan2G -1004adb4 D WPS_OUI -1004adb8 D RSN_TKIP_CIPHER -1004adbc D MCS_rate_1R -1004adcc D P2P_OUI -1004adf8 D WMM_INFO_OUI -1004adfe D RTW_WPA_OUI -1004ae02 D WMM_PARA_OUI -1004ae08 d RTW_ChannelPlanMap -1004ae20 D null_addr -1004ae26 D WMM_OUI -1004ae2c d wlanevents -1004aeec D zero_bssid -1004af29 d __FUNCTION__.17681 -1004af3f D SNAP_ETH_TYPE_APPLETALK_AARP -1004af41 d __FUNCTION__.17495 -1004af54 D SNAP_ETH_TYPE_IPX -1004af56 D rtw_bridge_tunnel_header -1004af7d D rtw_rfc1042_header -1004af9b d CSWTCH.36 -1004afa7 D ARTHEROS_OUI1 -1004afaa D ARTHEROS_OUI2 -1004afad D REALTEK_OUI -1004afb0 D RALINK_OUI -1004afb3 D MARVELL_OUI -1004afb6 D CISCO_OUI -1004afb9 d rtw_basic_rate_cck -1004afbd D BROADCOM_OUI1 -1004afc0 D BROADCOM_OUI2 -1004afc3 D REALTEK_96B_IE -1004afc9 d rtw_basic_rate_mix -1004afd0 d rtw_basic_rate_ofdm -1004afd3 D AIRGOCAP_OUI -1004afe7 d CSWTCH.66 -1004b000 d CSWTCH.48 -1004b042 d CSWTCH.28 -1004b054 D efuse_map_mask -1004b064 D flash_map_mask -1004b100 d __func__.21107 -1004b446 d CSWTCH.15 -1004b4ca d CSWTCH.17 -1004b539 d CSWTCH.14 -1004b5ce d __FUNCTION__.21257 -1004b5e0 d rtw_private_args -1004b9f7 d __FUNCTION__.21057 -1004ba0a d __FUNCTION__.21294 -1004ba1b d __FUNCTION__.21241 -1004ba2a d __FUNCTION__.21126 -1004ba3a d iw_priv_type_size -1004bb18 d __FUNCTION__.17334 -1004bb2e d __FUNCTION__.17736 -1004bb3e d __FUNCTION__.17760 -1004bb51 d __FUNCTION__.17712 -1004bb60 d __FUNCTION__.17649 -1004bb6e d __FUNCTION__.17661 -1004bf45 d __FUNCTION__.17827 -1004bf5e d __FUNCTION__.17654 -1004bf69 d __FUNCTION__.17615 -1004bf78 d __FUNCTION__.17811 -1004bf8a d __FUNCTION__.17765 -1004bf98 d __FUNCTION__.17724 -1004bfa9 d __FUNCTION__.17637 -1004d34a D CCKFCCTable_Ch14_8195A -1004d35a D CCKFCCTable_8195A -1004d36c D OFDMSwingTable_New -1004d418 D CCKCETable_8195A -1004d42e d CSWTCH.39 -1004d443 d __func__.20571 -1004d464 D hci_ops -1004d489 V Array_MP_8195A_TXPWR_LMT -1004d9fc D xHeapRegions -1004da1c D UartLogRamCmdTable -1004da1c D console_commands_main -1004da2c D console_cmd_wifi_api -1004da9c D console_commands_at -1004db0c D console_commands -1004db2c d UartLogRamCmdTable_end -1004db30 D __data_start__ -1004db30 D wlan_st_name -1004db38 D wifi_st_dhcp -1004db48 D wlan_ap_name -1004db50 D wifi_ap_dhcp -1004db60 D feep_tab -1004db90 D wifi_st_cfg -1004dc00 D wifi_cfg -1004dc08 D tab_txt_rtw_secyrity -1004dc30 D wifi_ap_cfg -1004dc9c D wlan_ap_netifn -1004dca0 D tab_code_rtw_secyrity -1004dcc8 D oversampling -1004dccc D SystemCoreClock -1004dcd0 D error_flag -1004dcd4 d tcp_port -1004dcd8 d iss.7833 -1004dcdc d udp_port -1004dcde D lwip_host_name -1004dcfe d dhcp_server_state_machine -1004dcff d dhcp_recorded_xid -1004dd04 d uxCriticalNesting -1004dd08 d xNextTaskUnblockTime -1004dd0c d seed.12226 -1004dd10 d wakeup_event -1004dd14 d wakelock -1004dd18 d last_wakelock_state -1004dd38 D mlme_sta_tbl -1004dda8 d PMKID_KDE_TYPE.17744 -1004ddb0 V nr_xmitbuff -1004ddb4 V nr_xmitframe -1004ddb8 d P802_1H_OUI -1004ddbb D rtw_adaptivity_mode -1004ddbc D g_user_ap_sta_num -1004ddc0 d rtw_private_handler -1004de04 V max_local_skb_num -1004de08 V max_skb_buf_num -1004de0c D rom_e_rtw_msgp_str_ -1004dfe8 D ARFB_table -1004e027 D TRYING_NECESSARY_idx -1004e03b D DROPING_NECESSARY -1004e04f D PER_RATE_UP -1004e063 D PER_RATE_DOWN -1004e078 V Array_MP_8195A_PHY_REG_PG -1004e108 D Array_MP_8195A_AGC_TAB -1004e318 D Array_MP_8195A_PHY_REG -1004e990 D rtl8195A_card_disable_flow -1004ea30 D rtl8195A_card_enable_flow -1004ead0 D Array_MP_8195A_MAC_REG -1004edd8 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A -1004edf8 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A -1004ee18 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A -1004ee36 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A -1004ee54 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A -1004ee72 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A -1004ee90 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A -1004eeb0 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A -1004eece D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A -1004eeec D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A -1004ef0c D Array_MP_8195A_RadioA -1004f4d4 D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A -1004f4f2 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A -1004f512 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A -1004f530 D .ram.bss$$Base -1004f530 D __bss_start__ -1004f530 D __data_end__ -1004f530 D __ram_image2_text_end__ -1004f530 d skbdata_list -1004f538 V skb_data_pool -10052938 d ucIdleTaskHeap -10052a50 D HalI2SOpSAL -10052a8c D SYSAdapte -10052a90 D PwrAdapter -10052d1c D libc_has_init -10052d1d D print_off -10052d20 d rheap_end -10052d24 D wifi_run_mode -10052d28 D wlan_st_netifn -10052d2c D wifi_autoreconnect -10052d34 d event_init.21315 -10052d38 d sampCntAdd -10052d3c d sampCnt -10052d40 D mp3_serv -10052dc2 D tskreader_enable -10052dc4 D readBuf -10052dc8 D tskmad_enable -10052dcc d bufUnderrunCt -10052dd0 d oldRate -10052dd4 d sampDelCnt -10052dd5 D scan_end -10052dd8 D pbuf_fifo -10052ddc D pi2s -10052de4 D I2sTxSema -10052de8 D rtw_join_status -10052dec D wifi_mode -10052df0 D scan_result_handler_ptr -10052e14 d join_user_data -10052e18 d event_callback_list -10052f98 D paff_array -10053010 D lwip_init_done -10053014 D xnetif -10053094 d s_aliases.7449 -10053098 d s_hostent.7448 -100530ac d s_hostent_addr.7450 -100530b0 D h_errno -100530b4 d s_phostent_addr.7451 -100530bc d select_cb_list -100530c0 d sockets -10053180 d select_cb_ctr -10053184 d mbox -10053188 d tcpip_init_done_arg -1005318c d tcpip_init_done -10053190 d allsystems -10053194 d allrouters -10053198 d igmp_group_list -1005319c D current_header -100531a0 d ip_id -100531a4 D current_iphdr_src -100531a8 D current_iphdr_dest -100531ac D current_netif -100531b0 d str.6812 -100531c0 d reassdatagrams -100531c4 d ip_reass_pbufcount -100531c6 D dhcp_rx_options_given -100531d0 d xid.7762 -100531d4 D dhcp_rx_options_val -100531fc d dns_seqno -10053200 d dns_table -10053660 d dns_servers -10053668 d dns_payload_buffer -1005386c d dns_pcb -10053870 d dns_payload -10053874 d tcpip_tcp_timer_active -10053878 d next_timeout -1005387c D netif_list -10053880 D netif_default -10053884 d netif_num -10053885 D pbuf_free_ooseq_pending -10053888 d raw_pcbs -1005388c D tcp_active_pcbs_changed -10053890 D tcp_ticks -10053894 d tcp_timer -10053898 D tcp_listen_pcbs -1005389c D tcp_active_pcbs -100538a0 d tcp_timer_ctr -100538a4 D tcp_tw_pcbs -100538a8 D tcp_tmp_pcb -100538ac D tcp_bound_pcbs -100538b0 d seqno -100538b4 d tcplen -100538b8 d ackno -100538bc d flags -100538bd d recv_flags -100538c0 d tcphdr -100538c4 d recv_data -100538c8 d inseg -100538dc D tcp_input_pcb -100538e0 D udp_pcbs -100538e4 d etharp_cached_entry -100538e8 d arp_table -100539b0 D lwip_tickless_used -100539b4 d s_timeoutlist -100539e4 d s_nextthread -100539e8 d dhcps_ip_table_semaphore -100539ec d dhcps_send_broadcast_address -100539f0 D dhcps_ip4addr_pool_end -100539f1 d dhcp_client_ethernet_address -10053a04 d dhcps_subnet_broadcast -10053a08 d bound_client_ethernet_address -10053a18 d dhcps_netif -10053a1c d dhcps_local_gateway -10053a20 d ip_table -10053a40 d dhcps_pcb -10053a44 d dhcp_message_total_options_lenth -10053a48 d dhcps_local_address -10053a4c d client_request_ip -10053a50 d dhcps_allocated_client_address -10053a54 D dhcps_ip4addr_pool_start -10053a58 d dhcps_local_mask -10053a5c d dhcps_network_id -10053a60 d dhcp_message_repository -10053a64 D ext_upper -10053a68 d xFreeBytesRemaining -10053a6c d ext_free -10053a70 D ext_lower -10053a74 d pxEnd -10053a78 d xStart -10053a80 d xMinimumEverFreeBytesRemaining -10053a84 d ulTimerCountsForOneTick -10053a88 d ulStoppedTimerCompensation -10053a8c d xMaximumPossibleSuppressedTicks -10053a90 d xPendingReadyList -10053aa4 d uxTopReadyPriority -10053aa8 d uxTasksDeleted -10053aac d xTickCount -10053ab0 d pxReadyTasksLists -10053b8c d pxOverflowDelayedTaskList -10053b90 d xTasksWaitingTermination -10053ba4 d pxDelayedTaskList -10053ba8 d xSchedulerRunning -10053bac d ulTaskSwitchedInTime -10053bb0 D pxCurrentTCB -10053bb4 d uxPendedTicks -10053bb8 d xSuspendedTaskList -10053bcc d uxCurrentNumberOfTasks -10053bd0 d ulDeltaTotalRunTime -10053bd4 d xDelayedTaskList2 -10053be8 d xDelayedTaskList1 -10053bfc d uxTaskNumber -10053c00 d xYieldPending -10053c04 d uxSchedulerSuspended -10053c08 d xNumOfOverflows -10053c0c d pxCurrentTimerList -10053c10 d xActiveTimerList1 -10053c24 d xActiveTimerList2 -10053c38 d xLastTime.5284 -10053c3c d xTimerQueue -10053c40 d pxOverflowTimerList -10053c44 d xTimerTaskHandle -10053c48 d device_mutex -10053c54 d mutex_init -10053c58 d uxSavedInterruptStatus -10053c5c D min_free_heap_size -10053c60 d g_heap_inited -10053c64 d tcm_lock -10053c68 D g_tcm_heap -10053c6c D flashobj -10053c78 D fspic_isinit -10053c7c D WDGAdapter -10053cb8 d last_acquire_wakelock_time -10053d38 D post_sleep_callback -10053db8 D pre_sleep_callback -10053e38 D reserve_pll -10053e3c d sys_sleep_time -10053e40 d hold_wakelock_time -10053ec0 D missing_tick -10053ec4 D Timer2To7HandlerData -10053edc D auto_reconnect_running -10053ee0 D p_wlan_autoreconnect_hdl -10053ee4 D mac_monitor_callback -10053ee8 D mf_list_head -10053eec d pscan_retry_cnt.21430 -10053ef0 D promisc_callback_all -10053ef4 D promisc_sema -10053ef8 D promisc_callback -10053efc D psk_essid -10053f44 D psk_passphrase -10053fc6 D psk_passphrase64 -10054007 D wpa_global_PSK -10054057 d RFC1042_OUI -1005405c d rx_ring_pool -1005613c d stop_report_count.20629 -1005613d D bCheckStateTIMER -10056140 d WifiMcuCmdBitMap.20974 -10056144 D p_wlan_init_done_callback -10056148 D rtw_power_percentage_idx -1005614c D p_wlan_uart_adapter_callback -10056150 D rtw_adaptivity_en -10056154 D p_wlan_mgmt_filter -10056158 D rtw_initmac -1005615c D rtw_adaptivity_th_l2h_ini -10056160 d drvpriv -10056174 D skbbuf_used_num -10056178 V skb_pool -10056330 D skbdata_used_num -10056334 d wrapper_skbbuf_list -1005633c D max_skbdata_used_num -10056340 D max_skbbuf_used_num -10056344 d skb_fail_count -10056348 D timer_table -10056350 D rltk_wlan_info -10056380 d timer_used_num -10056384 D max_timer_used_num -10056388 D Noisy_State -1005638c D pExportWlanIrqSemaphore -10056390 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A -100563ae D .ram.bss$$Limit -100563ae D __bss_end__ -100563b0 B __ram_heap2_start__ +1000897c t mp3_cfg_read +100089b4 t user_init_thrd +100089cc t tskmad +10008be8 t tskreader +10008ff0 T render_sample_block +10009064 T set_dac_sample_rate +100090a8 T connect_close +100090d0 T connect_start +10009170 t fATWS +10009250 T ShowMemInfo +1000927c T main +100092d0 t fATSN +100092dc t fATWI +10009410 t fATOF +10009414 t fATON +10009418 t fATWR +1000943c t fATPN +1000951c t scan_result_handler +10009620 t fATWP +10009668 t fATPA +10009750 t fATSP +10009794 t fATDS +100097bc t fATSW +100097c6 t fATSD +100097d0 t fATST +10009840 T print_hex_dump +10009870 T dump_bytes +10009904 t fATSB +1000993c T print_udp_pcb +100099a8 T print_tcp_pcb +10009a80 t fATLW +10009a90 T RamFifoClose +10009aec T RamFifoInit +10009c40 T RamFifoRead +10009cfc T RamFifoWrite +10009db0 T RamFifoFill +10009ddc T RamFifoFree +10009df0 T RamFifoLen +10009dfc t decode_header +10009f6c T mad_header_init +10009f98 T mad_frame_finish +10009fb0 T mad_header_decode +1000a24c T mad_frame_decode +1000a2d0 T mad_frame_mute +1000a31a T mad_frame_init +1000a338 t III_requantize +1000a3b4 t III_aliasreduce +1000a41c t fastsdct +1000a554 t III_imdct_l +1000a96c t III_imdct_s +1000aac0 t III_overlap +1000aaea t III_freqinver +1000ab34 t III_decode +1000bb50 T mad_layer_III +1000bfb4 T mad_bit_init +1000bfc0 T mad_bit_length +1000bfd8 T mad_bit_nextbyte +1000bfe4 T mad_bit_skip +1000c014 T mad_bit_read +1000c080 T mad_bit_crc +1000c174 t scale +1000c180 t dct32 +1000ca14 t synth_half +1000ce58 t synth_full +1000d2ac T mad_synth_mute +1000d2e4 T mad_synth_init +1000d308 T mad_synth_frame +1000d39c t scale_rational +1000d410 T mad_timer_set +1000d4f8 T mad_stream_init +1000d52a T mad_stream_finish +1000d53c T mad_stream_buffer +1000d550 T mad_stream_sync +1000d598 T mad_stream_errorstr +1000d6f4 t i2s_test_tx_complete +1000d70c T i2sClose +1000d798 T i2sInit +1000d90c T i2sSetRate +1000d994 T i2sPushPWMSamples +1000dafc W __low_level_init +1000db00 T SystemCoreClockUpdate +1000db14 t print_on +1000db2c W console_help +1000db6c T GetArgvRam +1000dc1c T get_eap_phase +1000dc20 T get_eap_method +1000dc24 T eap_autoreconnect_hdl +1000dc28 t wifi_no_network_hdl +1000dc40 t wifi_handshake_done_hdl +1000dc5c t wifi_disconn_hdl +1000dcc4 t wifi_connected_hdl +1000dcf8 T wifi_scan_each_report_hdl +1000de3c T wifi_rx_beacon_hdl +1000de40 T wifi_connect +1000e274 T wifi_disconnect +1000e2a8 T wifi_set_country +1000e2b4 T wifi_off +1000e328 T wifi_set_power_mode +1000e338 T wifi_set_lps_dtim +1000e344 T wifi_get_lps_dtim +1000e350 T wifi_start_ap +1000e43c T wifi_get_setting +1000e4ec T wifi_show_setting +1000e5b0 T wifi_set_network_mode +1000e5c8 T wifi_indication +1000e604 T wifi_reg_event_handler +1000e658 T wifi_unreg_event_handler +1000e69c T init_event_callback_list +1000e6ac T promisc_deinit +1000e6b0 T promisc_recv_func +1000e6b4 T promisc_set +1000e6b8 T is_promisc_enabled +1000e6c4 t get_padapter +1000e6dc T iw_ioctl +1000e6f8 T wext_get_ssid +1000e736 T wext_set_ssid +1000e76a T wext_set_bssid +1000e7b4 T is_broadcast_ether_addr +1000e7d6 T wext_set_auth_param +1000e804 T wext_set_key_ext +1000e904 T wext_get_enc_ext +1000e966 T wext_set_passphrase +1000e99c T wext_get_passphrase +1000e9d4 T wext_enable_powersave +1000e9fe T wext_set_lps_dtim +1000ea14 T wext_get_lps_dtim +1000ea2e T wext_set_mode +1000ea52 T wext_get_mode +1000ea88 T wext_set_ap_ssid +1000eac4 T wext_set_country +1000eae8 T wext_set_channel +1000eb16 T wext_get_channel +1000eb3e T wext_set_scan +1000eb70 T wext_wlan_indicate +1000ecb8 T wext_set_autoreconnect +1000ed08 T wext_set_adaptivity +1000ed30 T wext_set_sta_num +1000ed34 T LwIP_DHCP +1000ee28 t chk_ap_netif_num +1000ee74 t wifi_autoreconnect_hdl_ +1000eec4 T read_wifi_cfg +1000ef0c T write_wifi_cfg +1000ef4c T rtw_security_to_idx +1000ef6c T rtw_security_to_str +1000ef80 T show_wifi_ap_ip +1000efb4 t wifi_run_ap +1000f0c0 T show_wifi_st_ip +1000f0f4 t StartStDHCPClient +1000f170 t wifi_run_st.part.1 +1000f23c T wifi_run +1000f4bc T wifi_init +1000f58c t wifi_autoreconnect_thread_ +1000f5ec T show_wifi_st_cfg +1000f668 T show_wifi_ap_cfg +1000f6e4 T show_wifi_cfg +1000f744 T wifi_close_scan +1000f7c4 t _wifi_scan_done_hdl +1000f844 T api_wifi_scan +1000f9a8 t netconn_recv_data +1000fa78 T netconn_new_with_proto_and_callback +1000fad8 T netconn_delete +1000fafc T netconn_getaddr +1000fb40 T netconn_connect +1000fb80 T netconn_recv_tcp_pbuf +1000fb94 T netconn_recv +1000fc1c T netconn_recved +1000fc48 T netconn_send +1000fc84 T netconn_write_partly +1000fd14 T netconn_gethostbyname +1000fd6c t recv_udp +1000fddc t recv_raw +1000fe60 t setup_tcp +1000fea4 t err_tcp +1000ff3c t do_connected +1000ffa8 t do_writemore +100100a8 t do_close_internal +10010194 t poll_tcp +100101e4 t do_dns_found +10010210 t sent_tcp +1001025e t recv_tcp +100102d8 T do_newconn +10010368 T netconn_alloc +100103d4 T netconn_free +10010400 t netconn_drain +10010490 T do_delconn +1001051c T do_connect +100105b0 T do_send +10010620 T do_recv +10010660 T do_write +1001069a T do_getaddr +10010710 T do_gethostbyname +1001073c T netbuf_delete +1001075c T netbuf_free +10010772 T netbuf_ref +100107ac T lwip_gethostbyname +100107f8 t get_socket +10010818 t alloc_socket +10010888 t event_callback +100109b8 T lwip_socket_init +100109ba T lwip_close +10010a0c T lwip_connect +10010a68 T lwip_recvfrom +10010c20 T lwip_read +10010c34 T lwip_sendto +10010ce0 T lwip_send +10010d58 T lwip_socket +10010dcc T lwip_write +10010dd4 t tcpip_thread +10010e58 T tcpip_input +10010ea0 T tcpip_callback_with_block +10010ef4 T tcpip_timeout +10010f38 T tcpip_apimsg +10010f90 T tcpip_init +10010fd4 t autoip_start_probing +10011020 t autoip_arp_announce +1001104c T autoip_start +100110e0 T autoip_tmr +100111f0 T autoip_arp_reply +10011298 t icmp_send_response.isra.0 +10011308 T icmp_input +1001142c T icmp_dest_unreach +10011436 T icmp_time_exceeded +10011440 t igmp_send +100114e4 t igmp_delaying_member +10011520 t igmp_lookup_group.part.1 +10011558 T igmp_init +10011574 T igmp_report_groups +10011598 T igmp_lookfor_group +100115b8 T igmp_start +100115f4 T igmp_input +100116b8 T igmp_tmr +100116e4 t lwip_standard_chksum +1001173c T inet_chksum_pseudo +100117c2 T inet_chksum +100117ce T inet_chksum_pbuf +10011814 T ip_route +10011850 T ip_input +10011a28 T ip_output_if_opt +10011b7c T ip_output_if +10011b9e T ip_output +10011bd6 T ip4_addr_isbroadcast +10011c0e T ipaddr_aton +10011d24 T ipaddr_addr +10011d3c T ipaddr_ntoa_r +10011dd4 T ipaddr_ntoa +10011de0 t ipfrag_free_pbuf_custom +10011df8 t ip_reass_free_complete_datagram +10011e78 t ip_reass_remove_oldest_datagram +10011eec T ip_reass_tmr +10011f14 T ip_reass +100121c4 T ip_frag +10012330 T lwip_htons +10012336 T lwip_ntohs +1001233c T lwip_htonl +10012340 T lwip_ntohl +10012344 t dhcp_set_state +10012354 t dhcp_option +10012374 t dhcp_option_byte +10012386 t dhcp_option_short +100123a8 t dhcp_option_long +100123ec t dhcp_create_msg +10012540 t dhcp_delete_msg +10012556 t dhcp_check +1001257c t dhcp_bind +10012650 t dhcp_option_trailer +1001267c t dhcp_discover +10012730 t dhcp_reboot +100127d4 t dhcp_option_hostname.isra.1 +10012814 t dhcp_rebind +100128a8 t dhcp_select +10012994 t dhcp_recv +10012d98 T dhcp_arp_reply +10012e18 T dhcp_renew +10012eac T dhcp_release +10012f54 T dhcp_coarse_tmr +10012fe0 T dhcp_fine_tmr +1001307c T dhcp_release_unicast +10013140 T dhcp_stop +10013170 T dhcp_start +10013210 t dns_parse_name +1001322c t dns_recv +100133c0 t dns_send +10013490 t dns_check_entry +10013540 T dns_setserver +10013560 T dns_init +100135b8 T dns_tmr +100135e4 T dns_gethostbyname +10013724 T lwip_init +1001374c T sys_timeout +100137ac T tcp_timer_needed +100137e0 t tcpip_tcp_timer +10013818 T sys_timeouts_init +1001388c t dns_timer +100138a8 t igmp_timer +100138c0 t autoip_timer +100138d8 t dhcp_timer_fine +100138f4 t dhcp_timer_coarse +10013910 t arp_timer +1001392c t ip_reass_timer +10013948 T sys_untimeout +10013990 T sys_timeouts_mbox_fetch +100139f4 T netif_init +100139f8 T netif_set_ipaddr +10013a50 T netif_set_addr +10013a6c T netif_add +10013ad0 T netif_set_gw +10013ad8 T netif_set_netmask +10013ae0 T netif_set_default +10013aec T netif_set_up +10013b22 T netif_set_down +10013b3c t pbuf_free_ooseq_callback +10013b70 t pbuf_pool_is_empty +10013bac T pbuf_alloced_custom +10013c00 T pbuf_header +10013c58 T pbuf_free +10013c98 T pbuf_alloc +10013dbc T pbuf_realloc +10013df0 T pbuf_clen +10013e00 T pbuf_ref +10013e1a T pbuf_cat +10013e36 T pbuf_chain +10013e46 T pbuf_copy +10013ee2 T pbuf_copy_partial +10013f4a T pbuf_coalesce +10013f78 T raw_input +10013ff0 T raw_connect +10013ffa T raw_recv +10014000 T raw_sendto +10014090 T raw_send +10014098 T raw_remove +100140c0 T raw_new +100140f4 t tcp_new_port +10014144 T tcp_init +10014160 T tcp_update_rcv_ann_wnd +10014196 T tcp_recved +100141d0 T tcp_seg_free +100141ea T tcp_segs_free +100141fc T tcp_seg_copy +10014224 T tcp_arg +10014228 T tcp_recv +1001422e T tcp_sent +10014234 T tcp_err +1001423a T tcp_accept +1001423e T tcp_poll +10014248 T tcp_pcb_purge +10014288 T tcp_slowtmr +10014544 T tcp_pcb_remove +100145ac t tcp_close_shutdown +100146dc T tcp_close +100146f4 T tcp_recv_null +10014718 T tcp_process_refused_data +10014778 T tcp_fasttmr +100147f0 T tcp_tmr +10014814 T tcp_shutdown +10014864 T tcp_abandon +100148fc T tcp_abort +10014904 T tcp_next_iss +1001491c T tcp_alloc +10014a3c T tcp_new +10014a42 T tcp_eff_send_mss +10014a60 T tcp_connect +10014bbc t tcp_oos_insert_segment +10014c3c t tcp_receive +10015414 t tcp_parseopt.isra.0 +10015498 T tcp_input +10015cf0 t tcp_pbuf_prealloc +10015d44 t tcp_create_segment +10015e0c t tcp_output_alloc_header.constprop.0 +10015e76 T tcp_write +100161c6 T tcp_enqueue_flags +1001626e T tcp_send_fin +100162b6 T tcp_send_empty_ack +10016314 T tcp_output +1001658c T tcp_rst +10016624 T tcp_rexmit_rto +10016652 T tcp_rexmit +100166a2 T tcp_rexmit_fast +100166f8 T tcp_keepalive +1001674a T tcp_zero_window_probe +100167f4 T udp_init +10016810 T udp_input +10016998 T udp_bind +10016a40 T udp_sendto_if +10016b3e T udp_sendto +10016b74 T udp_send +10016b80 T udp_connect +10016bc8 T udp_disconnect +10016bd8 T udp_recv +10016be0 T udp_remove +10016c08 T udp_new +10016c2c t etharp_free_entry +10016c5c t etharp_find_entry +10016d38 t etharp_send_ip +10016d6c T etharp_tmr +10016dac T etharp_cleanup_netif +10016dd4 T etharp_raw +10016e90 T etharp_request +10016ebc t etharp_output_to_arp_index +10016f04 T etharp_query +10017008 T etharp_output +10017100 T ethernet_input +100172f0 t low_level_output +1001734c t arp_timer +10017368 T ethernetif_recv +100173e0 T ethernetif_init +10017424 T lwip_POST_SLEEP_PROCESSING +10017440 T rltk_wlan_set_netif_info +10017460 T rltk_wlan_send +100174f4 T rltk_wlan_recv +10017560 T netif_is_valid_IP +10017594 T netif_get_idx +100175ac T netif_rx +100175bc T netif_post_sleep_processing +100175c0 T sys_mbox_new +100175da T sys_mbox_free +100175ee T sys_mbox_post +1001760e T sys_mbox_trypost +10017630 T sys_arch_mbox_fetch +1001767a T sys_arch_mbox_tryfetch +1001769a T sys_mbox_valid +100176a4 T sys_mbox_set_invalid +100176aa T sys_sem_new +100176e6 T sys_arch_sem_wait +10017726 T sys_sem_signal +10017732 T sys_sem_free +10017738 T sys_sem_valid +10017742 T sys_sem_set_invalid +10017748 T sys_init +1001776c T sys_thread_new_tcm +100177d4 T sys_arch_protect +100177de T sys_arch_unprotect +100177e4 t mark_ip_in_table +10017828 t dhcps_initialize_message +100178d8 t add_offer_options +100179c8 T dhcps_handle_state_machine_change +10017a98 t dhcps_receive_udp_packet_handler +10017d64 T dhcps_deinit +10017d8c T dhcps_init +10017e94 t prvInsertBlockIntoFreeList +10017edc t vPortDefineHeapRegions.constprop.1 +10017f7c T pvPortMalloc +1001805c T __vPortFree +100180a0 T vPortSetExtFree +100180bc T vPortFree +100180ec T xPortGetFreeHeapSize +100180f8 t prvPortStartFirstTask +10018118 T pxPortInitialiseStack +10018134 T vPortSVCHandler +10018154 t pxCurrentTCBConst2 +10018158 T vPortYield +10018170 T ulPortSetInterruptMask +10018180 t prvTaskExitError +10018188 T vPortEnterCritical +100181a4 T vPortClearInterruptMask +100181ac T vPortExitCritical +100181c0 T xPortPendSVHandler +10018200 t pxCurrentTCBConst +10018204 T xPortSysTickHandler +10018228 W vPortSuppressTicksAndSleep +10018340 W vPortSetupTimerInterrupt +10018390 T xPortStartScheduler +100183c0 T vApplicationIdleHook +100183c4 T vApplicationStackOverflowHook +100183e0 T osKernelSysTick +100183e4 T vListInitialise +100183fa T vListInitialiseItem +10018400 T vListInsertEnd +10018418 T vListInsert +10018448 T uxListRemove +10018468 t prvCopyDataToQueue +100184d2 t prvCopyDataFromQueue +100184fa t prvUnlockQueue +10018562 T xQueueGenericReset +100185bc T xQueueGenericCreate +10018608 T xQueueCreateCountingSemaphore +1001861a T xQueueGenericSend +100186f8 T xQueueCreateMutex +10018742 T xQueueGenericSendFromISR +100187a6 T xQueueGenericReceive +100188aa T uxQueueMessagesWaiting +100188bc T vQueueDelete +100188d2 T vQueueWaitForMessageRestricted +1001890c t prvGenerateRunTimeOfPeroid +1001894c t prvGetExpectedIdleTime +1001897c t prvListTaskWithinSingleList +10018a64 t prvResetNextTaskUnblockTime +10018a88 t prvAddCurrentTaskToDelayedList +10018ad8 T xTaskGenericCreate +10018c8c T vTaskDelete +10018d2c T uxTaskPriorityGet +10018d48 T vTaskPrioritySet +10018e00 T vTaskStartScheduler +10018e58 T vTaskSuspendAll +10018e68 T xTaskGetTickCount +10018e80 T pcTaskGetTaskName +10018e90 T vTaskStepTick +10018ea0 T xTaskIncrementTick +10019020 T xTaskResumeAll +100190e8 T vTaskDelay +10019138 t prvIdleTask +100191c0 T uxTaskGetSystemState +10019270 T vTaskSwitchContext +10019328 T vTaskPlaceOnEventList +10019384 T vTaskPlaceOnEventListRestricted +100193c8 T xTaskRemoveFromEventList +10019438 T vTaskSetTimeOutState +10019450 T xTaskCheckForTimeOut +1001949c T vTaskMissedYield +100194a8 T eTaskConfirmSleepModeStatus +100194c8 T xTaskGetSchedulerState +100194e8 T vTaskPriorityInherit +1001957c T xTaskPriorityDisinherit +100195ec T sprintf_pcTaskName +1001960c T vTaskList +100196bc T vTaskGetRunTimeStats +1001977c T pvTaskIncrementMutexHeldCount +10019794 T vTaskGetCurrentTCB +100197a0 t prvCheckForValidListAndQueue +100197ec t prvInsertTimerInActiveList +10019828 T xTimerCreateTimerTask +10019864 T xTimerCreate +100198a0 T xTimerGenericCommand +10019934 t prvSwitchTimerLists +100199a4 t prvTimerTask +10019b08 T xTimerIsTimerActive +10019b20 t device_mutex_init +10019b64 T device_mutex_lock +10019b94 T device_mutex_unlock +10019bb0 t _freertos_systime_to_sec +10019bba t _freertos_ms_to_systime +10019bbc t _freertos_sec_to_systime +10019bc4 t _freertos_usleep_os +10019bc6 t _freertos_ATOMIC_SET +10019bca t _freertos_ATOMIC_READ +10019bce t _freertos_modular64 +10019c42 t _freertos_thread_enter +10019c44 t _freertos_enter_critical +10019c48 t _freertos_exit_critical +10019c4c t _freertos_ATOMIC_SUB_RETURN +10019c64 t _freertos_ATOMIC_DEC_RETURN +10019c7a t _freertos_ATOMIC_ADD_RETURN +10019c92 t _freertos_ATOMIC_INC_RETURN +10019ca8 t _freertos_ATOMIC_SUB +10019cc0 t _freertos_ATOMIC_DEC +10019cc6 t _freertos_ATOMIC_ADD +10019cde t _freertos_ATOMIC_INC +10019ce4 t _freertos_enter_critical_from_isr +10019cf4 T _freertos_malloc +10019cf8 T _freertos_zmalloc +10019d10 t _freertos_memset +10019d14 T _freertos_mfree +10019d18 t _freertos_get_current_time +10019d1c t _freertos_spinunlock_irqsave +10019d32 t _freertos_spinunlock +10019d3e t _freertos_mutex_put +10019d42 T _freertos_wakeup_task +10019d48 t _freertos_up_sema +10019d4c t _freertos_exit_critical_mutex +10019d58 T _freertos_timerCreate +10019d5c T _freertos_timerDelete +10019d70 T _freertos_timerStop +10019d84 T _freertos_timerChangePeriod +10019d9e T _freertos_timerIsTimerActive +10019da2 T _freertos_acquire_wakelock +10019da8 T _freertos_release_wakelock +10019dae T _freertos_get_scheduler_state +10019dce t _freertos_thread_exit +10019dd4 t _freertos_GetFreeHeapSize +10019dd8 t _freertos_yield_os +10019ddc t _freertos_udelay_os +10019de0 t _freertos_mdelay_os +10019de4 t _freertos_deinit_xqueue +10019dfe t _freertos_spinlock_free +10019e10 t _freertos_mutex_free +10019e14 t _freertos_free_sema +10019e18 t _freertos_push_to_xqueue +10019e40 t _freertos_pop_from_xqueue +10019e68 t _freertos_down_sema +10019e8a t _freertos_init_xqueue +10019ea4 t _freertos_spinlock_irqsave +10019ee0 t _freertos_spinlock +10019f18 t _freertos_enter_critical_mutex +10019f50 t _freertos_mutex_get +10019f88 t _freertos_spinlock_init +10019f96 t _freertos_mutex_init +10019f9c t _freertos_exit_critical_from_isr +10019fa8 t _freertos_up_sema_from_isr +10019fd0 t _freertos_init_sema +10019fe0 t _freertos_create_task +1001a058 t _freertos_memcmp +1001a066 t _freertos_memcpy +1001a06c t _freertos_delete_task +1001a0b8 t _freertos_mutex_get_timeout +1001a0f4 t _freertos_systime_to_ms +1001a0f6 t _freertos_msleep_os +1001a0fa T save_and_cli +1001a0fe T restore_flags +1001a102 T cli +1001a108 T _freertos_arc4random +1001a138 t _freertos_get_random_bytes +1001a176 T RtlInitSema +1001a184 T RtlUpSemaFromISR +1001a1a4 T RtlDownSema +1001a1b8 T RtlUdelayOS +1001a1bc T _htons +1001a1c2 T _ntohs +1001a1c8 T _rtw_zvmalloc +1001a1e8 T _rtw_vmfree +1001a20c T _rtw_malloc +1001a21c T _rtw_zmalloc +1001a22c T _rtw_mfree +1001a23c T deinit_mem_monitor +1001a23e T rtw_vmfree +1001a242 T rtw_mfree +1001a248 T rtw_memcpy +1001a258 T rtw_memcmp +1001a268 T rtw_memset +1001a278 T rtw_init_listhead +1001a27e T rtw_is_list_empty +1001a288 T rtw_list_insert_head +1001a294 T rtw_list_insert_tail +1001a2a0 T rtw_list_delete +1001a2b0 T rtw_init_sema +1001a2c0 T rtw_free_sema +1001a2d0 T rtw_up_sema +1001a2e0 T rtw_up_sema_from_isr +1001a2f0 T rtw_down_timeout_sema +1001a300 T rtw_down_sema +1001a314 T rtw_mutex_init +1001a324 T rtw_mutex_free +1001a334 T rtw_mutex_put +1001a344 T rtw_mutex_get_timeout +1001a358 T rtw_enter_critical_from_isr +1001a368 T rtw_enter_critical +1001a36c T rtw_exit_critical_from_isr +1001a37c T rtw_exit_critical +1001a380 T rtw_enter_critical_mutex +1001a390 T rtw_exit_critical_mutex +1001a3a0 T rtw_queue_empty +1001a3aa T rtw_end_of_queue_search +1001a3b4 T rtw_spinlock_init +1001a3c4 T rtw_init_queue +1001a3d0 T rtw_spinlock_free +1001a3e0 T rtw_spin_lock +1001a3f0 T rtw_enter_critical_bh +1001a3f4 T rtw_spin_unlock +1001a404 T rtw_exit_critical_bh +1001a408 T rtw_get_current_time +1001a418 T rtw_systime_to_ms +1001a42c T rtw_systime_to_sec +1001a440 T rtw_ms_to_systime +1001a454 T rtw_sec_to_systime +1001a468 T rtw_get_passing_time_ms +1001a47c T rtw_msleep_os +1001a48c T rtw_usleep_os +1001a49c T rtw_mdelay_os +1001a4ac T rtw_udelay_os +1001a4bc T ATOMIC_SET +1001a4cc T ATOMIC_INC +1001a4dc T ATOMIC_INC_RETURN +1001a4f0 T ATOMIC_DEC_RETURN +1001a504 T ATOMIC_DEC_AND_TEST +1001a514 T rtw_modular64 +1001a530 T rtw_get_random_bytes +1001a544 T rtw_getFreeHeapSize +1001a554 T init_mem_monitor +1001a564 T add_mem_usage +1001a598 T rtw_zvmalloc +1001a5b8 T rtw_malloc +1001a5d8 T rtw_zmalloc +1001a5f8 T rtw_netif_queue_stopped +1001a5fc T rtw_netif_wake_queue +1001a5fe T rtw_netif_start_queue +1001a600 T rtw_netif_stop_queue +1001a602 T flush_signals_thread +1001a604 T rtw_acquire_wakelock +1001a614 T rtw_release_wakelock +1001a624 T rtw_create_task +1001a640 T rtw_delete_task +1001a650 T rtw_wakeup_task +1001a660 T rtw_timerCreate +1001a67c T rtw_timerDelete +1001a690 T rtw_timerIsTimerActive +1001a6a4 T rtw_timerStop +1001a6b8 T rtw_timerChangePeriod +1001a6cc T rtw_thread_enter +1001a6dc T rtw_thread_exit +1001a6ec T tcm_heap_free +1001a76c T tcm_heap_init +1001a7bc T tcm_heap_freeSpace +1001a7fc T tcm_heap_malloc +1001a89c T tcm_heap_calloc +1001a8b4 T flash_init +1001a950 T flash_turnon +1001a968 T flash_erase_sector +1001a994 T flash_stream_read +1001aa64 T flash_stream_write +1001abbc T i2s_init +1001ac94 T i2s_set_dma_buffer +1001ace6 T i2s_tx_irq_handler +1001acec T i2s_set_param +1001ad20 T i2s_deinit +1001ad24 T i2s_enable +1001ad28 T i2s_disable +1001ad2c W pinmap_merge +1001ad68 W pinmap_find_peripheral +1001ad80 W pinmap_peripheral +1001adb8 T sleep_ex_selective +1001adcc T deepsleep_ex +1001adf0 T us_ticker_read +1001ae1c T En32KCalibration +1001aeb0 T WDGInitial +1001af3c T WDGStart +1001af54 T WDGRefresh +1001af70 T I2SISRHandle +1001b02c T RtkI2SDeInit +1001b10c T RtkI2SEnable +1001b148 T RtkI2SDisable +1001b184 T RtkI2SLoadDefault +1001b1e8 T HalI2SOpInit +1001b264 T RtkI2SInit +1001b428 T HalI2SInit +1001b466 T HalI2SDisable +1001b48c T HalI2SEnable +1001b4b0 T HalI2SDeInit +1001b508 T HalTimerOpInit_Patch +1001b544 T freertos_ready_to_sleep +1001b554 T freertos_pre_sleep_processing +1001b618 T freertos_post_sleep_processing +1001b63c T acquire_wakelock +1001b67c T release_wakelock +1001b6d8 T get_wakelock_status +1001b6e4 T HalI2SInitRtl8195a_Patch +1001b7e6 T HalI2SSetRateRtl8195a +1001b82c T HalI2SSetWordLenRtl8195a +1001b854 T HalI2SSetChNumRtl8195a +1001b87c T HalI2SSetPageNumRtl8195a +1001b8a4 T HalI2SSetPageSizeRtl8195a +1001b8ce T HalI2SSetDMABufRtl8195a +1001b938 T HalI2SGetTxPageRtl8195a +1001b958 T HalI2SPageSendRtl8195a +1001b9a4 T HalI2SClearAllOwnBitRtl8195a +1001b9d8 T HalI2SDMACtrlRtl8195a +1001b9dc T HalTimerIrq2To7Handle_Patch +1001ba30 T HalTimerIrqRegisterRtl8195a_Patch +1001baac T HalTimerIrqUnRegisterRtl8195a_Patch +1001bb24 T HalTimerDeInitRtl8195a_Patch +1001bb58 T HalTimerReadCountRtl8195a_Patch +1001bb70 T HalTimerReLoadRtl8195a_Patch +1001bba4 T HalTimerInitRtl8195a_Patch +1001bc78 T HalTimerIrqEnRtl8195a +1001bc8c T HalTimerEnRtl8195a_Patch +1001bca0 T HalTimerDisRtl8195a_Patch +1001bcb4 t rtw_ht_operation_update +1001bd66 t associated_clients_update.part.11 +1001bda2 T chk_sta_is_alive +1001bde0 T add_RATid +1001bee8 T update_sta_info_apmode +1001bfa0 T update_beacon +1001c260 T rtw_check_beacon_data +1001c960 T associated_clients_update +1001c96a T bss_cap_update_on_sta_join +1001cb1a T bss_cap_update_on_sta_leave +1001cc16 T ap_free_sta +1001ccc8 T expire_timeout_chk +1001ce04 T rtw_sta_flush +1001ce88 T free_mlme_ap_info +1001ced4 T sta_info_update +1001cf10 T ap_sta_info_defer_update +1001cf40 T start_ap_mode +1001cf80 T init_mlme_ap_info +1001cf96 T stop_ap_mode +1001cfe4 T rtw_generate_bcn_ie +1001d308 T set_hidden_ssid +1001d360 T _rtw_init_evt_priv +1001d372 T _rtw_free_cmd_priv +1001d37c T _rtw_enqueue_cmd +1001d3a8 T _rtw_dequeue_cmd +1001d3dc T _rtw_observequeue_cmd +1001d3f0 T rtw_init_cmd_priv +1001d3fa T rtw_init_evt_priv +1001d3fe T rtw_free_evt_priv +1001d400 T rtw_free_cmd_priv +1001d404 T rtw_cmd_filter +1001d422 T rtw_free_cmd_obj +1001d44c T rtw_enqueue_cmd +1001d4a2 T rtw_set_channel_plan_cmd_callback +1001d4ba T rtw_survey_cmd_callback +1001d4d6 T rtw_disassoc_cmd_callback +1001d506 T rtw_joinbss_cmd_callback +1001d522 T rtw_setstaKey_cmdrsp_callback +1001d53c T rtw_cmd_thread +1001d698 T rtw_joinbss_cmd +1001d942 T rtw_disassoc_cmd +1001d990 T rtw_setstakey_cmd +1001da80 T rtw_clearstakey_cmd +1001db20 T rtw_dynamic_chk_wk_cmd +1001db72 T rtw_set_chplan_cmd +1001dbf2 T dynamic_chk_wk_hdl +1001dcba T lps_ctrl_wk_hdl +1001dd1e T rtw_lps_ctrl_wk_cmd +1001dd88 T rtw_sitesurvey_cmd +1001de50 T rpt_timer_setting_wk_hdl +1001de64 T rtw_ps_cmd +1001dec0 T rtw_chk_hi_queue_cmd +1001df14 T rtw_drvextra_cmd_hdl +1001dff0 t rtw_free_mlme_ie_data +1001e008 T rtw_init_mlme_timer +1001e064 T rtw_del_mlme_timer +1001e084 T reconnect_timer_hdl +1001e124 T _rtw_init_mlme_priv +1001e1a6 T rtw_mfree_mlme_priv_lock +1001e1c2 T rtw_free_mlme_priv_ie_data +1001e1fa T _rtw_free_mlme_priv +1001e222 T _rtw_alloc_network +1001e272 T _rtw_free_network +1001e2d2 T _rtw_free_network_nolock +1001e2f8 T _rtw_find_network +1001e334 T _rtw_free_network_queue +1001e37c T rtw_if_up +1001e39c T rtw_get_capability_from_ie +1001e3a0 T rtw_get_capability +1001e3ba T rtw_get_beacon_interval_from_ie +1001e3be T rtw_init_mlme_priv +1001e3d6 T rtw_free_mlme_priv +1001e3da T rtw_free_network_queue +1001e3de T rtw_is_same_ibss +1001e3f4 T is_same_network +1001e458 T update_network +1001e4f2 T rtw_update_scanned_network +1001e604 T rtw_add_network +1001e642 T rtw_survey_event_callback +1001e6ee T rtw_dummy_event_callback +1001e6f0 T rtw_free_assoc_resources +1001e7ba T rtw_indicate_connect +1001e7ca T rtw_indicate_disconnect +1001e7ec T rtw_indicate_scan_done +1001e7f0 T rtw_joinbss_event_callback +1001e80e T search_max_mac_id +1001e856 T rtw_stassoc_hw_rpt +1001e88e T rtw_stassoc_event_callback +1001e8bc T rtw_stadel_event_callback +1001e962 T _rtw_join_timeout_handler +1001e9ec T rtw_join_timeout_handler +1001ea44 T rtw_scan_timeout_handler +1001ea74 T _rtw_scan_timeout_handler +1001ea78 T rtw_dynamic_check_timer_handlder +1001ead0 T _dynamic_check_timer_handlder +1001eb14 T rtw_select_and_join_from_scanned_queue +1001ebe8 T rtw_surveydone_event_callback +1001ed00 T rtw_set_auth +1001ed50 T rtw_set_key +1001ee12 T rtw_restruct_wmm_ie +1001ee78 T rtw_restruct_sec_ie +1001eee4 T rtw_joinbss_reset +1001eef4 T rtw_restructure_ht_ie +1001efd4 T rtw_update_ht_cap +1001f05e T rtw_joinbss_event_prehandle +1001f28a T rtw_linked_check +1001f2a6 T rtw_buddy_adapter_up +1001f2de T check_buddy_fwstate +1001f2fc t get_da +1001f31c t get_sa +1001f346 T OnAction +1001f358 T DoReserved +1001f35c t _mgt_dispatcher.isra.2 +1001f3a8 T rtw_is_channel_set_contains_channel +1001f3ca T init_hw_mlme_ext +1001f3e0 T init_channel_set +1001f478 T free_mlme_ext_priv +1001f4a0 T mgt_dispatcher +1001f528 T alloc_mgtxmitframe +1001f560 T update_mgnt_tx_rate +1001f566 T update_mgntframe_attrib +1001f5c2 T rtw_build_mgnt_frame +1001f618 T dump_mgntframe +1001f632 T rtw_send_mgnt +1001f650 t issue_action_BSSCoexistPacket +1001f85c T update_hidden_ssid +1001f8b0 T issue_beacon +1001fac8 T issue_probersp +1001fd58 T OnProbeReq +1001fe20 T issue_probereq +1001ffd8 T issue_auth +10020240 T OnAuth +100204e4 T issue_asocrsp +10020758 T issue_assocreq +10020a94 T issue_nulldata +10020b7e T issue_qos_nulldata +10020cb0 T issue_deauth +10020d98 T issue_action_BA +10021014 T OnAction_back +100210e2 T collect_bss_info +10021314 T start_clnt_auth +100213a4 T start_clnt_assoc +100213d8 T OnAuthClient +100214b8 T report_scan_result_one +10021678 T add_site_survey +100217fe T report_survey_event +10021a3c T OnProbeRsp +10021a70 T report_surveydone_event +10021ad4 T report_join_res +10021b44 T OnAssocRsp +10021c90 T report_del_sta_event +10021d22 T receive_disconnect +10021d78 T OnBeacon +10021f00 T OnDeAuth +10022058 T OnDisassoc +100221c8 T report_add_sta_event +1002223c T OnAssocReq +1002282c T rtw_port_switch_chk +100228b0 T update_sta_info +10022930 T mlmeext_sta_del_event_callback +100229b0 T _linked_info_dump +10022a12 T _linked_rx_signal_strehgth_display +10022a4c T linked_status_chk +10022cc0 T survey_timer_hdl +10022da0 T _survey_timer_hdl +10022da4 T link_timer_hdl +10022e22 T _link_timer_hdl +10022e26 T addba_timer_hdl +10022e46 T NULL_hdl +10022e4a T setopmode_hdl +10022e90 T disconnect_hdl +10022f3c T setauth_hdl +10022f4c T setkey_hdl +10022fa4 T set_stakey_hdl +100230a8 T set_tx_beacon_cmd +1002311c T mlme_evt_hdl +10023168 T tx_beacon_hdl +10023222 T check_buddy_mlmeinfo_state +1002323c T site_survey +1002340c T sitesurvey_cmd_hdl +1002351a T concurrent_chk_start_clnt_join +100235b0 T start_clnt_join +10023684 T join_cmd_hdl +100237a8 T concurrent_chk_joinbss_done +10023970 T mlmeext_joinbss_event_callback +10023aac T set_chplan_hdl +10023ac8 T init_mlme_ext_timer +10023b24 T init_mlme_ext_priv +10023c60 t get_hdr_bssid +10023c88 t filter_packet +10023d10 t promisc_get_encrypt +10023d62 t promisc_info_get +10023e06 t promisc_set_enable +10023ea2 T _promisc_deinit +10023ef4 T _promisc_recv_func +10024440 T _promisc_set +100244d0 T _is_promisc_enabled +100244e8 t SetEAPOL_KEYIV +10024586 t ToDrv_SetPTK +1002462e t Message_ReplayCounter_OC2LI.isra.2 +1002465c t Message_SmallerEqualReplayCounter.isra.4 +1002468e t Message_setReplayCounter.isra.5 +100246ac t INCLargeInteger +100246cc t INCOctet16_INTEGER +10024714 t INCOctet32_INTEGER +10024774 t ToDrv_DisconnectSTA +10024838 t CheckMIC.constprop.14 +100248b8 t CalcMIC.constprop.15 +10024918 T DecWPA2KeyData +100249cc T DecGTK +10024a88 T ToDrv_SetGTK +10024b18 T init_wpa_sta_info +10024c04 T SendEAPOL +100252bc T ClientSendEAPOL +100257a4 t ResendTimeout +1002582c T EAPOLKeyRecvd +100259a4 T ClientEAPOLKeyRecvd +10025d64 T psk_derive +10025e18 T psk_init +10025f08 T psk_strip_rsn_pairwise +10025f88 T psk_strip_wpa_pairwise +10026008 T tkip_send_mic_failure_report +1002617c T pwr_state_check_handler +10026180 T ips_enter +10026228 T ips_leave +10026340 T rtw_pwr_unassociated_idle +1002638a T rtw_ps_processor +100263e2 T PS_RDY_CHECK +1002644a T rtw_set_ps_mode +100264b8 T LPS_RF_ON_check +1002650e T LPS_Enter +1002657c T LPS_Leave +100265b8 T LeaveAllPowerSaveMode +100265c8 T rtw_init_pwrctrl_priv +1002669c T rtw_free_pwrctrl_priv +100266b0 T _rtw_pwr_wakeup +1002678c T rtw_pm_set_lps +100267d4 T rtw_pm_set_ips +10026818 T rtw_pm_set_tdma_param +10026834 T rtw_pm_set_lps_dtim +10026840 T rtw_pm_get_lps_dtim +1002684c t recvframe_pull +1002686e t recvframe_pull_tail +10026890 T rtw_signal_stat_timer_hdl +1002692e T _rtw_init_sta_recv_priv +1002694c T _rtw_init_recv_priv +100269f4 T rtw_mfree_recv_priv_lock +10026a28 T _rtw_alloc_recvframe +10026a5a T rtw_alloc_recvframe +10026a80 T rtw_free_recvframe +10026b1c T _rtw_enqueue_recvframe +10026b48 T rtw_enqueue_recvframe +10026b72 T rtw_free_recvframe_queue +10026baa T rtw_free_uc_swdec_pending_queue +10026bd2 T _rtw_free_recv_priv +10026c02 T rtw_free_buf_pending_queue +10026c06 T recvframe_chkmic +10026d04 T decryptor +10026da0 T portctrl +10026e16 T recv_decache +10026e44 T process_pwrbit_data +10026e84 T process_wmmps_data +10026f0c T count_rx_stats +10026f80 T sta2sta_data_frame +100270bc T ap2sta_data_frame +100271e8 T sta2ap_data_frame +10027270 T validate_recv_ctrl_frame +1002740a T validate_recv_data_frame +10027664 T wlanhdr_to_ethhdr +100277a0 T recvframe_defrag +1002784a T recvframe_chk_defrag +10027900 T validate_recv_mgnt_frame +1002793c T validate_recv_frame +10027a04 T recv_indicatepkt_reorder +10027a26 T process_recv_indicatepkts +10027a7e T recv_func_prehandle +10027aa6 T recv_func_posthandle +10027b0a T recv_func +10027b94 T rtw_recv_entry +10027bc4 T rtw_recv_tasklet +10027c1c T rtw_wep_encrypt +10027c62 T rtw_wep_decrypt +10027ca8 T rtw_tkip_encrypt +10027d14 T rtw_tkip_decrypt +10027d80 T rtw_aes_encrypt +10027dec T rtw_aes_decrypt +10027e50 T rtw_init_sec_priv +10027ec2 T rtw_free_sec_priv +10027ee2 t wifi_mac_hash +10027f0c T _addba_timer_hdl +10027f10 T _rtw_init_stainfo +10027f8a T _rtw_init_sta_priv +10028072 T _rtw_free_sta_xmit_priv_lock +1002809e T rtw_mfree_stainfo +100280ca T rtw_mfree_sta_priv_lock +10028100 T _rtw_free_sta_priv +10028120 T init_addba_retry_timer +10028148 T rtw_alloc_stainfo +10028212 T rtw_free_stainfo +100283b4 T rtw_get_stainfo +10028430 T rtw_init_bcmc_stainfo +10028460 T rtw_get_bcmc_stainfo +10028484 T rtw_free_all_stainfo +100284de T cckrates_included +10028506 T cckratesonly_included +1002852e T networktype_to_raid_ex +1002858c T judge_network_type +100285dc T ratetbl_val_2wifirate +100285f0 T is_basicrate +1002861c T ratetbl2rateset +10028660 T get_rate_set +1002868a T UpdateBrateTbl +100286bc T UpdateBrateTblForSoftAP +100286f0 T Save_DM_Func_Flag +10028706 T Restore_DM_Func_Flag +1002871c T Switch_DM_Func +10028738 T Set_MSR +1002875c T set_opmode +100287a0 T SelectChannel +100287d4 T SetBWMode +10028810 T set_channel_bwmode +10028866 T get_my_bssid +1002886a T get_beacon_interval +10028888 T is_client_associated_to_ap +100288a0 T is_client_associated_to_ibss +100288bc T is_IBSS_empty +100288de T decide_wait_for_beacon_timeout +100288fa T invalidate_cam_all +10028902 T write_cam +10028978 T clear_cam_entry +100289a6 T flush_all_cam_entry +10028a04 T WMM_param_handler +10028a2a T WMMOnAssocRsp +10028af8 T HT_caps_handler +10028b98 T HT_info_handler +10028bbc T HTOnAssocRsp +10028bf4 T ERP_IE_handler +10028c10 T VCS_update +10028c62 T rtw_check_bcn_info +10028e72 T update_beacon_info +10028ec8 T is_ap_in_tkip +10028f40 T wifirate2_ratetbl_inx +10028fac T update_basic_rate +10028fda T update_supported_rate +10029004 T update_MCS_rate +10029010 T support_short_GI +1002903e T get_highest_rate_idx +10029058 T Update_RA_Entry +10029060 T set_sta_rate +10029068 T update_tx_basic_rate +100290c0 T check_assoc_AP +100291b4 T update_IOT_info +10029212 T update_capinfo +10029290 T update_wireless_mode +10029330 T update_bmc_sta_support_rate +10029358 T update_TSF +1002936a T correct_TSF +10029372 t _init_txservq +10029388 t set_qos +100293d8 T _rtw_init_sta_xmit_priv +1002941e T rtw_mfree_xmit_priv_lock +1002946a T qos_acm +100294a4 T xmitframe_addmic +10029602 T xmitframe_swencrypt +1002962e T rtw_make_wlanhdr +1002980e T rtw_txframes_pending +1002984a T rtw_txframes_sta_ac_pending +10029880 T rtw_txframes_update_attrib_vcs_info +10029920 T rtw_put_snap +10029964 T rtw_update_protection +100299aa T rtw_count_tx_stats +100299fa T rtw_free_xmitbuf_ext +10029a3c T rtw_alloc_xmitframe +10029a94 T rtw_free_xmitframe +10029ae6 T rtw_free_xmitframe_queue +10029b24 T rtw_get_sta_pending +10029b64 T rtw_xmit_classifier +10029bca T rtw_xmitframe_enqueue +10029bd8 T rtw_alloc_hwxmits +10029c32 T rtw_free_hwxmits +10029c48 T _rtw_free_xmit_priv +10029d14 T rtw_init_hwxmits +10029d2c T _rtw_init_xmit_priv +10029ee4 T rtw_get_ff_hwaddr +10029ef8 T xmitframe_enqueue_for_sleeping_sta +1002a0b8 t dequeue_xmitframes_to_sleeping_queue +1002a10e T stop_sta_xmit +1002a1f6 T wakeup_sta_to_xmit +1002a40c T xmit_delivery_enabled_frames +1002a528 T rtw_xmit_tasklet +1002a580 T rtw_xmit_mgnt +1002a584 T rtw_xmit +1002a8ae T rtw_sctx_done_err +1002a8ba T rtw_alloc_xmitbuf +1002a914 T rtw_free_xmitbuf +1002a986 T rtw_alloc_xmitbuf_ext +1002aa0c T rtw_sctx_done +1002aa12 t rtl8195a_free_rx_ring +1002aa20 t bus_write32 +1002aa7c t bus_write16 +1002aad8 t bus_write8 +1002ab34 t bus_read32 +1002ab8e t bus_read16 +1002abea t bus_read8 +1002ac46 t rtl8195a_free_tx_ring +1002acd4 T rtl8195a_init_desc_ring +1002ae14 T rtl8195a_free_desc_ring +1002ae30 T rtl8195a_reset_desc_ring +1002aec6 T InitLxDmaRtl8195a +1002b028 T rtl8195a_check_txdesc_closed +1002b0a0 t rtl8195a_tx_isr +1002b184 T InterruptRecognized8195a +1002b214 T InitInterrupt8195a +1002b234 T EnableDMA8195a +1002b25c T EnableInterrupt8195a +1002b29c T DisableDMA8195a +1002b2a8 T DisableInterrupt8195a +1002b2c0 T UpdateInterruptMask8195a +1002b322 T CheckRxTgRtl8195a +1002b35c T rtl8192ee_check_rxdesc_remain +1002b38c T rtl8195a_recv_tasklet +1002b6a0 T rtl8195a_tx_int_handler +1002b6cc T InterruptHandle8195a +1002b940 T rtl8195a_xmit_tasklet +1002b968 T lxbus_set_intf_ops +1002b9a8 t GetTxBufDesc +1002b9f2 t UpdateFirstTxbdtoXmitBuf.isra.3 +1002ba24 t check_nic_enough_desc.isra.4 +1002ba74 T rtl8195ab_init_xmit_priv +1002ba82 T rtl8195ab_free_xmit_priv +1002ba8a T GetDmaTxbdIdx +1002baa6 T rtl8195a_enqueue_xmitbuf +1002baca T rtl8195a_dequeue_xmitbuf +1002baee T SetTxbdForLxDMARtl8195ab +1002bb6e T UpdateTxbdHostIndex +1002bbac T rtw_dump_xframe +1002bd7e T check_tx_desc_resource +1002bdb8 T rtw_dequeue_xframe +1002be4c T rtw_xmitframe_coalesce +1002c100 T rtl8195ab_xmitframe_resume +1002c1f6 T rtl8195ab_mgnt_xmit +1002c232 T rtl8195ab_hal_xmit +1002c340 t Hal_GetEfuseDefinition +1002c370 t ResumeTxBeacon +1002c3b4 T UpdateHalRAMask8195A +1002c54c T HalLittleWifiMCUThreadRtl8195a +1002c5a0 T HalCheckInReqStateThreadRtl8195a +1002c5ec T HalTDMAChangeStateThreadRtl8195a +1002c638 t rtl8195a_read_chip_version +1002c6ac t Hal_EfuseWordEnableDataWrite +1002c8f0 t Hal_EfusePowerSwitch +1002c904 t rtl8195a_free_hal_data +1002c91e t StopTxBeacon +1002c968 T SetHalODMVar8195A +1002ca20 T rtl8195a_start_thread +1002ca88 T rtl8195a_stop_thread +1002caac t Hal_ReadEFuse +1002cc1c T GetHalODMVar8195A +1002cc30 t rtw_flash_map_update.part.12 +1002ccd0 t rtw_flash_map_erase +1002cd14 t Hal_EfusePgPacketWrite +1002cf90 t Hal_EfuseGetCurrentSize +1002d070 t rtw_flash_map_write +1002d23e T rtl8195a_InitBeaconParameters +1002d2ae T _InitBurstPktLen_8195AB +1002d2b8 T rtl8195a_set_hal_ops +1002d398 T rtl8195a_init_default_value +1002d39a T rtl8195a_InitLLTTable +1002d3e4 T Hal_GetChnlGroup8195A +1002d420 T rtw_config_map_read +1002d50c T rtw_config_map_write +1002d5b8 T Hal_InitPGData +1002d616 T Hal_EfuseParseIDCode +1002d62e T Hal_ReadPowerValueFromPROM_8195A +1002d6cc T Hal_EfuseParseTxPowerInfo_8195A +1002d764 T Hal_EfuseParseEEPROMVer_8195A +1002d77a T Hal_EfuseParsePackageType_8195A +1002d7e4 T Hal_EfuseParseChnlPlan_8195A +1002d814 T Hal_EfuseParseCustomerID_8195A +1002d82a T Hal_EfuseParseXtal_8195A +1002d842 T Hal_EfuseParseThermalMeter_8195A +1002d86a T Hal_ReadRFGainOffset +1002d8ba T BWMapping_8195A +1002d8da T SCMapping_8195A +1002d902 T rtl8195a_update_txdesc +1002dbd2 T rtl8195a_fill_fake_txdesc +1002dc90 T SetHwReg8195A +1002e950 T GetHwReg8195A +1002e9e4 T SetHalDefVar8195A +1002eac4 T GetHalDefVar8195A +1002eae8 T PHY_QueryBBReg_8195A_Safe +1002eb14 T PHY_SetBBReg_8195A_Safe +1002eb40 t phy_RFSerialRead_8195A +1002ebf4 T PHY_QueryRFReg_8195A +1002ec0c T PHY_SetRFReg_8195A +1002ec64 T PHY_MACConfig8195A +1002ec7e T PHY_BBConfig8195A +1002ed8e T PHY_RFConfig8195A +1002ed92 T PHY_SetTxPowerIndex_8195A +1002ee9c T phy_TxPwrAdjInPercentage +1002eedc T PHY_GetTxPowerIndex_8195A +1002efcc T PHY_SetTxPowerLevel8195A +1002efd2 T phy_SpurCalibration_8195A +1002f28a T phy_SetRegBW_8195A +1002f2c8 T phy_PostSetBwMode8195A +1002f424 T phy_SwChnl8195A +1002f4cc T phy_SwChnlAndSetBwMode8195A +1002f51c T PHY_HandleSwChnlAndSetBW8195A +1002f5cc T PHY_SetBWMode8195A +1002f5ee T PHY_SwChnl8195A +1002f608 T PHY_SetSwChnlBWMode8195A +1002f626 t HalTimerEnable +1002f638 T InitTDMATimer +1002f660 T ChangeStateByTDMA +1002f670 T GetMinRateInRRSR +1002f6a4 T CheckInReqState +1002f6b4 T InitCheckStateTimer +1002f6e4 T InitGTimer1ms +1002f730 T DeInitGTimer1ms +1002f778 T ChangeTransmiteRate +1002f7b4 T PowerBitSetting +1002f830 T ChkandChangePS +1002f894 T IssueRsvdPagePacketSetting +1002f908 T IssuePSPoll +1002f934 T WaitTxStateMachineOk +1002f988 T IssueNullData +1002fa18 T PsCloseRF +1002fa4c T PsOpenRF +1002fa7c T ChkTxQueueIsEmpty +1002fa94 T InitPS +1002fb04 T ConfigListenBeaconPeriod +1002fb28 T PS_S2_Condition_Match +1002fb5c T PS_S4_Condition_Match +1002fbd8 T PS_32K_Condition_Match +1002fc14 T PS_S2ToS3ToS0State +1002fc7c T PS_S2ToS0State +1002fc98 T PS_S3ToS2orS0State +1002fcc8 T PS_S0ToS1ToS2State +1002fd24 T PS_S1ToS0orS2State +1002fd54 T PS_S2ToS4State +1002fda0 T PS_S0ToS6State +1002fdc0 T PS_S6ToS0State +1002fdd8 T CheckTSFIsStable +1002fe28 T WaitHWStateReady +1002fe38 T SysClkDown +1002fea8 T SysClkUp +1002fef4 T ResetPSParm +1002ff68 T PS_S4ToS2State +1002ff8c T SleepTo32K +1002ffec T Change_PS_State +10030198 T Legacy_PS_Setting +1003020c T PSModeSetting +100302b0 T ChangePSStateByRPWM +100302f4 T ChangeTDMAState +10030414 T TDMAChangeStateTask +1003043e T EnterPS +10030460 T SetSmartPSTimer +1003049c T GTimer7Handle +100304f8 T SmartPS2InitTimerAndToGetRxPkt +10030534 T PS_OnBeacon +100305e4 T PSBcnEarlyProcess +100306a0 T PSMtiBcnEarlyProcess +1003074c T PSRxBcnProcess +1003089c T TxPktInPSOn +100308da T PsBcnToProcess +10030994 T GTimer6Handle +100309e0 T RPWMProcess +10030a1c T PSSetMode +10030a94 T SpeRPT +10030bb4 T ISR_BcnEarly +10030c20 T ISR_MtiBcnEarly +10030c54 T ISR_RxBcn +10030c70 T ISR_RxBCMD1 +10030ca0 T ISR_RxBCMD0 +10030cf4 T ISR_RxUCMD1 +10030d32 T ISR_RxUCMD0 +10030d6e T ISR_TxPktIn +10030d80 T ISR_TXCCX +10030d84 T H2CHDL_SetPwrMode +10030eac T CheckInReqStateTask +10030ef2 T HalGetNullTxRpt +10030f10 T ISR_TBTT +10030f88 T H2CHDL_BcnIgnoreEDCCA +10030f98 T PMUInitial +10030fe8 T PMUTask +100310f4 T PHY_RF6052SetBandwidth8195A +10031138 T PHY_RF6052_Config8195A +100311f0 t process_rssi +10031226 T rtl8195a_query_rx_desc_status +100312d6 T rtl8195a_query_rx_phy_status +1003142e T hal_com_get_channel_plan +10031462 T HAL_IsLegalChannel +10031480 T MRateToHwRate +10031494 T HwRateToMRate +100314a8 T HalSetBrateCfg +10031554 T Hal_MappingOutPipe +10031570 T hal_init_macaddr +1003159c T hw_var_port_switch +10031824 T SetHwReg +1003182e T GetHwReg +10031830 T switch_power_saving_mode +10031874 T rtw_bb_rf_gain_offset +100318bc T PHY_GetRateValuesOfTxPowerByRate +10031a54 T PHY_StoreTxPowerByRateNew +10031af0 T PHY_InitTxPowerByRate +10031b08 T PHY_StoreTxPowerByRate +10031b20 T PHY_GetTxPowerIndexBase +10031bc0 T PHY_GetTxPowerTrackingOffset +10031bec T PHY_GetRateIndexOfTxPowerByRate +10031c00 T PHY_GetTxPowerByRate +10031c60 T phy_StoreTxPowerByRateBase +10031cac T PHY_SetTxPowerByRate +10031ce8 T phy_ConvertTxPowerByRateInDbmToRelativeValues +10031de8 T PHY_TxPowerByRateConfiguration +10031dfa T PHY_SetTxPowerIndexByRateArray +10031e38 T PHY_SetTxPowerIndexByRateSection +10031e9c T PHY_SetTxPowerLevelByPath +10031ed2 T phy_GetWorldWideLimit +10031efe T PHY_GetTxPowerLimit +10032028 T PHY_ConvertTxPowerLimitToPowerIndex +10032178 T PHY_InitTxPowerLimit +100321c0 T PHY_SetTxPowerLimit +1003223c T PHY_GetTxPowerIndex +1003224c T rtw_hal_chip_configure +10032262 T rtw_hal_read_chip_info +10032278 T rtw_hal_read_chip_version +1003228e T rtw_hal_def_value_init +100322a4 T rtw_hal_free_data +100322ba T rtw_hal_dm_init +100322d0 T rtw_hal_dm_deinit +100322e6 T rtw_hal_init +10032310 T rtw_hal_deinit +1003232a T rtw_hal_set_hwreg +10032338 T rtw_hal_get_hwreg +10032346 T rtw_hal_set_def_var +10032358 T rtw_hal_get_def_var +1003236a T rtw_hal_set_odm_var +10032378 T rtw_hal_get_odm_var +10032386 T rtw_hal_enable_interrupt +100323a8 T rtw_hal_disable_interrupt +100323ca T rtw_hal_inirp_init +100323dc T rtw_hal_inirp_deinit +100323ee T rtw_hal_irp_reset +100323fc T rtw_hal_xmit +1003240e T rtw_hal_mgnt_xmit +10032420 T rtw_hal_init_xmit_priv +10032432 T rtw_hal_free_xmit_priv +10032440 T rtw_hal_update_ra_mask +1003246e T rtw_hal_add_ra_tid +1003247c T rtw_hal_clone_data +1003248a T rtw_hal_start_thread +10032498 T rtw_hal_stop_thread +100324a6 T rtw_hal_read_bbreg +100324da T rtw_hal_write_bbreg +10032506 T rtw_hal_read_rfreg +10032518 T rtw_hal_write_rfreg +1003252c T rtw_hal_interrupt_handler +1003253e T rtw_hal_set_bwmode +1003254c T rtw_hal_set_chan +1003255a T rtw_hal_set_chnl_bw +10032570 T rtw_hal_dm_watchdog +10032586 T rtw_hal_macid_sleep +100325a6 T rtw_hal_macid_wakeup +100325c6 T decide_chip_type_by_device_id +100325cc t rtw_net_get_stats +1003261c t netdev_if2_close +1003263c t netdev_close +10032698 t rtw_if1_deinit +10032732 T rtw_os_indicate_connect +10032736 T rtw_os_indicate_scan_done +1003273a T rtw_reset_securitypriv +1003282e T rtw_os_indicate_disconnect +10032878 T rtw_init_netdev +100329c8 T rtw_drv_if2_init +10032bd0 T rtw_drv_if2_stop +10032c26 T rtw_drv_if2_free +10032c74 T _netdev_open +10032d90 T _netdev_if2_open +10032e4c T netdev_if2_open +10032e74 T netdev_open +10032e9c T rtw_drv_probe +1003301c T rtw_dev_remove +10033060 T rtw_drv_entry +1003308c T rtw_drv_halt +100330bc t rtw_wx_set_autoreconnect +100330ea t rtw_wx_get_autoreconnect +100330f8 t rtw_forwarding_set +1003311a t rtw_set_ch_deauth +1003313c t get_priv_size +10033150 t rtw_wx_del_custome_ie +1003319c t rtw_wx_set_pscan_freq +1003321e t rtw_wx_update_custome_ie +10033290 t rtw_set_tos_value +100332b0 t rtw_get_tx_power +100333f4 t rtw_wx_set_custome_ie +100334a0 t rtw_pm_get +100334e4 t rtw_pm_set +10033598 t rtw_wx_read32 +10033644 t rtw_wx_write32 +100336a8 t rtw_wx_set_freq.isra.10 +10033750 T rtw_ex_set +10033810 T wireless_send_event +1003381a T indicate_wx_custom_event +10033876 T indicate_wx_scan_result_present +1003389e T indicate_wx_scan_complete_event +100338c8 T rtw_indicate_sta_assoc +10033918 T rtw_indicate_sta_disassoc +10033970 T rtw_indicate_wx_assoc_event +100339a2 T rtw_indicate_wx_disassoc_event +100339d2 T rtw_set_wpa_ie +10033ae8 T strtopsk +10033b54 T rtw_wx_get_passphrase +10033ba0 T rtw_wx_set_ap_essid +10033c90 T mac_reg_dump +10033d3c T bb_reg_dump +10033d98 T rf_reg_dump +10033e10 t rtw_dbg_port +10034478 T rtw_set_sta_num +10034494 T rtw_ex_get_drv_ability +10034554 T rtw_ex_get +100347ec T rtw_ioctl +10035778 T rtw_os_recv_resource_init +1003577c T rtw_os_recv_resource_alloc +10035786 T rtw_os_recv_resource_free +10035788 T rtw_tkip_countermeasure +10035828 T rtw_handle_tkip_mic_err +100358d0 T rtw_recv_indicatepkt +10035b20 T skb_fail_inc +10035b3c T skb_fail_get_and_rst +10035b58 T init_skb_pool +10035bb0 T init_skb_data_pool +10035c08 T alloc_skb +10035d08 T kfree_skb +10035d70 T kfree_skb_chk_key +10035d74 T skb_put +10035da8 T skb_reserve +10035db6 T dev_alloc_skb +10035dd2 T skb_end_pointer +10035dd6 T skb_set_tail_pointer +10035dde T skb_pull +10035df6 T skb_copy +10035e1e T rtw_remainder_len +10035e2a T _rtw_open_pktfile +10035e3c T _rtw_pktfile_read +10035e6a T rtw_set_tx_chksum_offload +10035e6c T rtw_os_xmit_resource_alloc +10035e76 T rtw_os_xmit_resource_free +10035e78 T rtw_os_pkt_complete +10035e80 T rtw_os_xmit_complete +10035e92 T rtw_os_xmit_schedule +10035ece T rtw_xmit_entry +10035f1a T rtw_alloc_etherdev_with_old_priv +10035f30 T rtw_alloc_etherdev +10035f5c T rtw_free_netdev +10035f7c T timer_wrapper +10035fd0 T alloc_etherdev +1003602c T free_netdev +10036046 T dev_alloc_name +10036050 T init_timer_wrapper +10036070 T deinit_timer_wrapper +100360bc T init_timer +10036174 T mod_timer +10036254 T cancel_timer_ex +1003629c T del_timer_sync +10036300 T rtw_init_timer +10036308 T rtw_set_timer +1003630c T rtw_cancel_timer +10036316 T rtw_del_timer +1003631c T rltk_get_idx_bydev +1003632c T rltk_wlan_init +100363b4 T rltk_wlan_deinit +10036478 T rltk_wlan_start +100364ac T rltk_wlan_check_isup +100364bc T rltk_wlan_tx_inc +100364d0 T rltk_wlan_tx_dec +100364e4 T rltk_wlan_get_recv_skb +100364f4 T rltk_wlan_alloc_skb +10036534 T rltk_wlan_send_skb +10036568 T rltk_netif_rx +10036614 T rltk_set_sta_num +10036618 T rltk_set_tx_power_percentage +1003664c T rltk_wlan_control +100366e0 T rltk_wlan_running +100366f8 T rltk_wlan_handshake_done +1003672c T rltk_wlan_wireless_mode +100367b8 T rltk_wlan_is_connected_to_ap +100367fc T Efuse_PowerSwitch +10036808 T Efuse_GetCurrentSize +10036814 T Efuse_CalculateWordCnts +10036838 T EFUSE_GetEfuseDefinition +1003684c T efuse_OneByteRead +10036880 T efuse_OneByteWrite +100368b4 T Efuse_PgPacketWrite +100368c8 T efuse_WordEnableDataRead +100368fa T Efuse_WordEnableDataWrite +1003690e T efuse_GetCurrentSize +10036936 T rtw_efuse_map_read +10036998 T rtw_efuse_map_write +10036b18 T rtw_macaddr_cfg +10036bdc T rtw_get_cipher_info +10036c56 T rtw_get_bcn_info +10036d26 T rtw_init_default_value +10036d94 T rtw_cancel_all_timer +10036dfe T rtw_free_drv_sw +10036e74 T rtw_reset_drv_sw +10036ed0 T rtw_init_drv_sw +10036f58 T rtw_start_drv_threads +10037014 T rtw_stop_drv_threads +10037048 T rtw_read8 +10037056 T rtw_read16 +10037064 T rtw_read32 +10037072 T rtw_write8 +10037080 T rtw_write16 +1003708e T rtw_write32 +1003709c T rtw_do_join +10037140 T rtw_set_802_11_bssid +100372c4 T rtw_set_802_11_ssid +100373cc T rtw_set_802_11_infrastructure_mode +1003746e T rtw_set_802_11_bssid_list_scan +100374be T rtw_set_802_11_authentication_mode +100374e0 T rtw_set_802_11_add_wep +10037540 T ODM_InitRAInfo +100375e0 T InitialRateUpdate +100376e0 T RateUp_search_RateMask +10037712 T RateDown_search_RateMask +10037764 T StartRateByRSSI +1003778e T RateUpRAM8195A +10037822 T RateDownTrying +10037860 T TryDone +100378f8 T RateDownStepRAM8195A +10037998 T RateDecisionRAM8195A +10037a7c T ArfrRefresh +10037c84 T H2CHDL_Set_MACID_Config +10037d48 T PHY_DM_RA_SetRSSI_8195A +10037d76 t CheckPositive.isra.0 +10037e58 T ODM_ReadAndConfig_MP_8195A_AGC_TAB +10037ed0 T ODM_ReadAndConfig_MP_8195A_PHY_REG +10037f48 T ODM_GetVersion_MP_8195A_PHY_REG +10037f4c T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG +10037f80 T odm_ConfigRFReg_8195A +10037fb8 T odm_ConfigRF_RadioA_8195A +10037fc8 T odm_ConfigMAC_8195A +10037fcc T odm_ConfigBB_AGC_8195A +10037fdc T odm_ConfigBB_PHY_REG_PG_8195A +1003800a T odm_ConfigBB_PHY_8195A +10038052 T odm_ConfigBB_TXPWR_LMT_8195A +10038078 T ODM_CmnInfoInit +1003816c T ODM_CmnInfoHook +10038210 T ODM_CmnInfoPtrArrayHook +10038220 T ODM_CmnInfoUpdate +100382f0 T odm_CommonInfoSelfInit +10038364 T ODM_DMInit +100383b2 T odm_CommonInfoSelfUpdate +10038404 T ODM_DMWatchdog +10038470 T PhyDM_Get_Structure +10038494 T Phydm_CheckAdaptivity +100384c2 T Phydm_NHMCounterStatisticsInit +10038538 T Phydm_SetEDCCAThreshold +10038570 T Phydm_MACEDCCAState +100385ae T Phydm_AdaptivityInit +1003868c T Phydm_Adaptivity +100387ac T ODM_CfoTrackingInit +100387d6 T ODM_CfoTracking +100387f6 T ODM_ParsingCFO +10038828 T ODM_InitDebugSetting +1003883c T ODM_Write_DIG +100388dc T odm_ForbiddenIGICheck +1003896e T ODM_Write_CCK_CCA_Thres +100389a8 T odm_DIGInit +10038a42 T odm_DigAbort +10038a64 T odm_DIGbyRSSI_LPS +10038b10 T odm_FAThresholdCheck +10038b3c T odm_DIG +10038d9c T odm_FalseAlarmCounterStatistics +10038dc8 T odm_CCKPacketDetectionThresh +10038e20 T odm_RxPhyStatus8195A_Parsing +10038f24 T odm_Process_RSSIForDM_8195A +10039066 T ODM_PhyStatusQuery_8195A +10039092 T ODM_PhyStatusQuery +10039096 T ODM_ConfigRFWithHeaderFile +100390b4 T ODM_ConfigRFWithTxPwrTrackHeaderFile +100390e6 T ODM_ConfigBBWithHeaderFile +1003910e T ODM_ConfigMACWithHeaderFile +10039120 T ODM_Read1Byte +10039126 T ODM_Read4Byte +1003912c T ODM_Write1Byte +10039132 T ODM_Write2Byte +10039138 T ODM_Write4Byte +1003913e T ODM_SetMACReg +10039144 T ODM_SetBBReg +1003914a T ODM_GetBBReg +10039150 T ODM_SetRFReg +10039156 T ODM_GetRFReg +1003915c T ODM_MoveMemory +10039166 T ODM_delay_ms +1003916a T ODM_delay_us +10039170 T getSwingIndex +100391c8 T odm_TXPowerTrackingThermalMeterInit +1003927a T odm_TXPowerTrackingInit +1003927e T odm_TXPowerTrackingCheckIOT +100392b2 T ODM_TXPowerTrackingCheck +100392c0 T odm_RSSIMonitorInit +100392c8 T ODM_RAPostActionOnAssoc +100392d0 T odm_RSSIMonitorCheckIOT +100393a4 T odm_RSSIMonitorCheck +100393b8 T odm_RateAdaptiveMaskInit +100393e0 T ODM_RAStateCheck +10039422 T odm_RefreshRateAdaptiveMaskIOT +10039472 T odm_RefreshRateAdaptiveMask +10039488 T ODM_Get_Rate_Bitmap +10039578 t _ReadEfuseInfo8195a +10039640 t rtl8195a_interface_configure +10039674 t rtl8195a_hal_deinit +100396b0 T _InitPowerOn +10039730 t ReadAdapterInfo8195a +10039760 T _InitDriverInfoSize +1003976a T _InitNetworkType +1003978c T _InitWMACSetting +100397fc T _InitAdaptiveCtrl +10039840 T _InitEDCA +100398bc T _InitRateFallback +10039900 T _InitRetryFunction +1003992c T _InitOperationMode +10039974 T _InitInterrupt +100399b4 t rtl8195a_hal_init +10039c8c T rtl8195ab_set_hal_ops +10039d64 T FillH2CCmd8195A +10039d84 T CheckFwRsvdPageContent +10039d86 T rtl8195a_set_FwRsvdPage_cmd +10039d90 T rtl8195a_set_FwMediaStatusRpt_cmd +10039dbc T rtl8195a_set_FwMacIdConfig_cmd +10039e7c T rtl8195a_set_FwPwrMode_cmd +10039f0c T rtl8195a_download_rsvd_page +1003a214 T rtl8195a_set_FwJoinBssRpt_cmd +1003a21e T rtl8195a_Add_RateATid +1003a270 T rtw_rpt_h_addr +1003a2bc T rtw_txrpt_read8 +1003a2da T rtw_txrpt_write8 +1003a2fe T rtw_ratemask_read8 +1003a31c T rtw_ratemask_write8 +1003a340 T ReadRateMask8 +1003a34a T WriteRateMask8 +1003a34e T ReadTxrpt8 +1003a358 T WriteTxrpt8 +1003a35c T ResetTxrpt +1003a394 T PsuseTxrpt +1003a3b4 T CheckMaxMacidNum +1003a3ec T GetMediaStatusCommon +1003a406 T GetTxrptStatistic +1003a4bc T rtl8195a_InitHalDm +1003a5e0 T rtl8195a_HalDmWatchDog +1003a6c4 T rtl8195a_init_dm_priv +1003a79c T rtl8195a_deinit_dm_priv +1003a79e T MediaConnection +1003a7bc T MediaDisconnection +1003a7dc T RATaskEnable +1003a806 T SetMediaStatus +1003a844 T H2CHDL_JoinInfo +1003a87c T H2CHDL_SetRsvdPage +1003a914 T H2CCmdCommon +1003a958 T HalPwrSeqCmdParsing +1003aa18 T hci_dvobj_init +1003aa28 T hci_dvobj_deinit +1003aa38 T hci_dvobj_request_irq +1003aa48 T hci_dvobj_free_irq +1003aa58 T hci_lxbus_dvobj_init +1003aa94 T hci_lxbus_dvobj_deinit +1003aad4 T hci_lxbus_dvobj_request_irq +1003ab28 T hci_lxbus_free_irq +1003ab80 T hci_lxbus_intf_stop +1003abb8 T rtw_interrupt_thread +1003ac2c T lextra_bus_dma_Interrupt +1003ac74 T init_rom_wlan_ram_map +1003ac8c T ODM_ReadAndConfig_MP_8195A_MAC_REG +1003ade8 t CheckPositive.isra.0 +1003aecc T ODM_ReadAndConfig_MP_8195A_RadioA +1003af44 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 +1003af94 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 +1003afe4 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 +1003b034 T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT +1003b06c T ODM_ReadAndConfig_MP_8195A_TxXtalTrack +1003b098 T GetDeltaSwingTable_8195A +1003b0c8 T GetDeltaSwingXtalTable_8195A +1003b0d8 T ODM_TxXtalTrackSetXtal_8195A +1003b0f8 T Hal_MPT_CCKTxPowerAdjust +1003b1c8 T ODM_TxPwrTrackSetPwr_8195A +1003b2d8 T ConfigureTxpowerTrack_8195A +1003b324 T phy_PathA_IQK_8195A +1003b4d8 T phy_PathA_RxIQK8195A +1003b86c T _PHY_PathAFillIQKMatrix8195A +1003ba02 T _PHY_PathBFillIQKMatrix8195A +1003bb7e T _PHY_SaveADDARegisters8195A +1003bbb2 T _PHY_SaveMACRegisters8195A +1003bbe0 T _PHY_ReloadADDARegisters8195A +1003bc14 T _PHY_ReloadMACRegisters8195A +1003bc44 T _PHY_PathADDAOn8195A +1003bc80 T _PHY_MACSettingCalibration8195A +1003bcc8 T _PHY_PIModeSwitch8195A +1003bd04 T phy_SimularityCompare_8195A +1003be38 T phy_IQCalibrate_8195A +1003c1b0 T phy_LCCalibrate_8195A +1003c220 T PHY_LCCalibrate_8195A +1003c280 T PHY_IQCalibrate_8195A +1003c534 T DoIQK_8195A +1003c552 T ConfigureTxpowerTrack +1003c564 T ODM_TXPowerTrackingCallback_ThermalMeter +1003c970 T ODM_ResetIQKResult +1003c9b8 T ODM_GetRightChnlPlaceforIQK +1003ca10 t __ROM_ODM_CfoTrackingReset_veneer +1003ca20 t __rom_psk_CalcGTK_veneer +1003ca30 t __HalCpuClkConfig_veneer +1003ca40 t __rom_psk_CalcPTK_veneer +1003ca50 t __rom_psk_PasswordHash_veneer +1003ca60 t __StrUpr_veneer +1003ca70 t __AES_UnWRAP_veneer +1003ca80 t __PHY_QueryBBReg_8195A_veneer +1003ca90 t __rtw_parse_wpa_ie_veneer +1003caa0 t __rtw_get_wps_attr_content_veneer +1003cab0 t __ROM_odm_EVMdbToPercentage_veneer +1003cac0 t __aes_80211_encrypt_veneer +1003cad0 t __rtw_get_sec_ie_veneer +1003cae0 t __HalDelayUs_veneer +1003caf0 t __tkip_80211_decrypt_veneer +1003cb00 t __ROM_odm_CfoTrackingFlow_veneer +1003cb10 t __rtw_get_ie_veneer +1003cb20 t __rtw_seccalctkipmic_veneer +1003cb30 t __aes_80211_decrypt_veneer +1003cb40 t __rtw_ieee802_11_parse_elems_veneer +1003cb50 t __rtw_get_wpa2_ie_veneer +1003cb60 t __ROM_odm_QueryRxPwrPercentage_veneer +1003cb70 t __rtw_get_wps_ie_veneer +1003cb80 t __rt_hmac_sha1_veneer +1003cb90 t __rtw_parse_wpa2_ie_veneer +1003cba0 t __ROM_odm_FalseAlarmCounterStatistics_veneer +1003cbb0 t __prvStrCmp_veneer +1003cbc0 t __rtw_secmicappend_veneer +1003cbd0 t __rtw_secgetmic_veneer +1003cbe0 t __rtw_check_network_type_veneer +1003cbf0 t __rtw_get_bit_value_from_ieee_value_veneer +1003cc00 t __SpicWaitBusyDoneRtl8195A_veneer +1003cc10 t __rtw_set_supported_rate_veneer +1003cc20 t __wep_80211_decrypt_veneer +1003cc30 t __rtw_secmicsetkey_veneer +1003cc40 t __ROM_odm_SetCrystalCap_veneer +1003cc50 t __CmdDumpWord_veneer +1003cc60 t __HalI2SIntrCtrlRtl8195a_veneer +1003cc70 t __rt_md5_hmac_veneer +1003cc80 t __rt_arc4_crypt_veneer +1003cc90 t __PHY_SetBBReg_8195A_veneer +1003cca0 t __rtw_get_rateset_len_veneer +1003ccb0 t __CmdWriteWord_veneer +1003ccc0 t __phy_CalculateBitShift_veneer +1003ccd0 t __wep_80211_encrypt_veneer +1003cce0 t __HalI2SRead32_veneer +1003ccf0 t __rtw_get_wpa_ie_veneer +1003cd00 t __rtw_set_ie_veneer +1003cd10 t __AES_WRAP_veneer +1003cd20 t __rtw_set_fixed_ie_veneer +1003cd30 t __ROM_odm_GetDefaultCrytaltalCap_veneer +1003cd40 t __key_2char2num_veneer +1003cd50 t __Strtoul_veneer +1003cd60 t __tkip_80211_encrypt_veneer +1003cd70 t __rt_arc4_init_veneer +1003cd80 t ___vsscanf_veneer +1003cd90 t __HalI2SWrite32_veneer +1003cda0 t __HalI2SClrAllIntrRtl8195a_veneer +1003d149 d __FUNCTION__.14742 +1003d5c8 d bitrate_table +1003d6f4 d samplerate_table +1003d700 d decoder_table +1003d70c d imdct_s +1003d79c d sfb_8000_short +1003d7c3 d sfb_32000_short +1003d7ec d is_table +1003d808 d rq_table +10045844 d root_table +10045860 d sfb_44100_mixed +10045888 d is_lsf_table +10045900 d sflen_table +10045920 d sfb_16000_mixed +10045944 d ca +10045964 d sfb_44100_short +1004598b d sfb_44100_long +100459a1 d sfb_48000_mixed +100459c7 d sfb_24000_long +100459e0 d scale.7384 +10045a28 d sfb_32000_mixed +10045a4e d sfb_16000_short +10045a75 d sfb_8000_long +10045a8b d sfb_22050_mixed +10045ab0 d window_l +10045b40 d sfb_48000_long +10045b58 d cs +10045b78 d sfb_24000_mixed +10045b9c d pretab +10045bb2 d sfb_48000_short +10045bd9 d sfb_22050_short +10045c00 d sfb_8000_mixed +10045c28 d sfbwidth_table +10045c94 d sfb_24000_short +10045cbb d sfb_32000_long +10045cd1 d sfb_22050_long +10045ce8 d window_s +10045d18 d nsfb_table +10045d60 d hufftab24 +10046368 d hufftab10 +10046500 d hufftab11 +100466a0 d hufftab12 +10046820 d hufftab13 +10046e58 d hufftab3 +10046e98 d hufftab15 +10047488 d hufftab16 +10047ad0 d hufftab6 +10047b40 d hufftab7 +10047c40 D mad_huff_pair_table +10047dc0 d hufftab9 +10047e98 d hufftab1 +10047eb8 d hufftabA +10047f28 d hufftab2 +10047f68 d hufftabB +10047fa8 D mad_huff_quad_table +10047fb0 d hufftab0 +10047fb4 d hufftab5 +1004801c d hufftab8 +10048124 d crc_table +10048324 d D +10048ba4 D mad_timer_zero +10048f37 d __func__.19140 +10049815 d __func__.19912 +10049854 d err_to_errno_table +1004989c D ip_addr_broadcast +100498a0 D ip_addr_any +100498b4 D memp_sizes +100498d4 D tcp_pcb_lists +100498e4 D tcp_state_str +10049910 D tcp_backoff +10049985 D tcp_persist_backoff +1004998c D ethbroadcast +10049992 D ethzero +100499c1 d __FUNCTION__.9191 +10049a83 d __FUNCTION__.9203 +10049a92 d dhcp_option_lease_time_one_day +10049abb d dhcp_option_interface_mtu +10049abd d dhcp_magic_cookie +10049b3f d __FUNCTION__.4595 +10049b5d d ucExpectedStackBytes.7044 +10049b71 d CSWTCH.270 +10049bfe d __FUNCTION__.12255 +10049c14 d __FUNCTION__.12259 +10049c2c D osdep_service +10049d50 d __FUNCTION__.12110 +10049ddd d __FUNCTION__.12059 +10049df1 d __FUNCTION__.12121 +10049e0c d __FUNCTION__.12067 +10049e28 d __FUNCTION__.12093 +10049e47 d __FUNCTION__.7295 +10049f50 d PinMap_I2S_RX +1004a030 d PinMap_I2S_TX +1004a090 d I2SDefaultSetting +1004a0a4 d PinMap_I2S_CLK +1004a104 d PinMap_I2S_WS +1004a164 d __FUNCTION__.8784 +1004a1bc d __FUNCTION__.8600 +1004a1c9 d __FUNCTION__.8613 +1004a46e d __FUNCTION__.8455 +1004a490 d __FUNCTION__.8462 +1004a4ab d __FUNCTION__.8469 +1004a5a6 d __func__.8808 +1004a5c5 d __func__.8818 +1004a5e3 d __func__.8830 +1004a5fd d __func__.8840 +1004a61f d __func__.8835 +1004a9e8 d __func__.8603 +1004aa02 d __func__.8686 +1004aa15 d __func__.8825 +1004aa2e d __func__.8631 +1004aa61 d __FUNCTION__.17777 +1004aa80 D wlancmds +1004ac78 D rtw_cmd_callback +1004af04 d RTW_ChannelPlan2G +1004af7c D WPS_OUI +1004af80 D RSN_TKIP_CIPHER +1004af84 D MCS_rate_1R +1004af94 D P2P_OUI +1004afc0 D WMM_INFO_OUI +1004afc6 D RTW_WPA_OUI +1004afca D WMM_PARA_OUI +1004afd0 d RTW_ChannelPlanMap +1004afe8 D null_addr +1004afee D WMM_OUI +1004aff4 d wlanevents +1004b0b4 D zero_bssid +1004b0f1 d __FUNCTION__.17681 +1004b107 D SNAP_ETH_TYPE_APPLETALK_AARP +1004b109 d __FUNCTION__.17495 +1004b11c D SNAP_ETH_TYPE_IPX +1004b11e D rtw_bridge_tunnel_header +1004b145 D rtw_rfc1042_header +1004b163 d CSWTCH.36 +1004b16f D ARTHEROS_OUI1 +1004b172 D ARTHEROS_OUI2 +1004b175 D REALTEK_OUI +1004b178 D RALINK_OUI +1004b17b D MARVELL_OUI +1004b17e D CISCO_OUI +1004b181 d rtw_basic_rate_cck +1004b185 D BROADCOM_OUI1 +1004b188 D BROADCOM_OUI2 +1004b18b D REALTEK_96B_IE +1004b191 d rtw_basic_rate_mix +1004b198 d rtw_basic_rate_ofdm +1004b19b D AIRGOCAP_OUI +1004b1af d CSWTCH.66 +1004b1c8 d CSWTCH.48 +1004b20a d CSWTCH.28 +1004b21c D efuse_map_mask +1004b22c D flash_map_mask +1004b2c8 d __func__.21107 +1004b60e d CSWTCH.15 +1004b692 d CSWTCH.17 +1004b701 d CSWTCH.14 +1004b796 d __FUNCTION__.21257 +1004b7a8 d rtw_private_args +1004bbbf d __FUNCTION__.21057 +1004bbd2 d __FUNCTION__.21294 +1004bbe3 d __FUNCTION__.21241 +1004bbf2 d __FUNCTION__.21126 +1004bc02 d iw_priv_type_size +1004bce0 d __FUNCTION__.17334 +1004bcf6 d __FUNCTION__.17736 +1004bd06 d __FUNCTION__.17760 +1004bd19 d __FUNCTION__.17712 +1004bd28 d __FUNCTION__.17649 +1004bd36 d __FUNCTION__.17661 +1004c10d d __FUNCTION__.17827 +1004c126 d __FUNCTION__.17654 +1004c131 d __FUNCTION__.17615 +1004c140 d __FUNCTION__.17811 +1004c152 d __FUNCTION__.17765 +1004c160 d __FUNCTION__.17724 +1004c171 d __FUNCTION__.17637 +1004d512 D CCKFCCTable_Ch14_8195A +1004d522 D CCKFCCTable_8195A +1004d534 D OFDMSwingTable_New +1004d5e0 D CCKCETable_8195A +1004d5f6 d CSWTCH.39 +1004d60b d __func__.20571 +1004d62c D hci_ops +1004d651 V Array_MP_8195A_TXPWR_LMT +1004dbc4 D xHeapRegions +1004dbe4 D UartLogRamCmdTable +1004dbe4 D console_commands_main +1004dbf4 D console_cmd_wifi_api +1004dc74 D console_commands_at +1004dce4 D console_commands +1004dd04 d UartLogRamCmdTable_end +1004dd08 D __data_start__ +1004dd08 D oversampling +1004dd0c D SystemCoreClock +1004dd10 D error_flag +1004dd11 D wlan_st_name +1004dd17 D wifi_cfg +1004dd1e D wlan_ap_name +1004dd24 D wifi_ap_dhcp +1004dd34 D wifi_st_dhcp +1004dd44 D feep_tab +1004dd84 D wifi_st_cfg +1004ddf4 D tab_txt_rtw_secyrity +1004de1c D wifi_ap_cfg +1004de84 D wlan_ap_netifn +1004de88 D tab_code_rtw_secyrity +1004deb0 d tcp_port +1004deb4 d iss.7833 +1004deb8 d udp_port +1004deba D lwip_host_name +1004deda d dhcp_server_state_machine +1004dedb d dhcp_recorded_xid +1004dee0 d uxCriticalNesting +1004dee4 d xNextTaskUnblockTime +1004dee8 d seed.12226 +1004deec d wakeup_event +1004def0 d wakelock +1004def4 d last_wakelock_state +1004df14 D mlme_sta_tbl +1004df84 d PMKID_KDE_TYPE.17744 +1004df8c V nr_xmitbuff +1004df90 V nr_xmitframe +1004df94 d P802_1H_OUI +1004df97 D rtw_adaptivity_mode +1004df98 D g_user_ap_sta_num +1004df9c d rtw_private_handler +1004dfe0 V max_local_skb_num +1004dfe4 V max_skb_buf_num +1004dfe8 D rom_e_rtw_msgp_str_ +1004e1c4 D ARFB_table +1004e203 D TRYING_NECESSARY_idx +1004e217 D DROPING_NECESSARY +1004e22b D PER_RATE_UP +1004e23f D PER_RATE_DOWN +1004e254 V Array_MP_8195A_PHY_REG_PG +1004e2e4 D Array_MP_8195A_AGC_TAB +1004e4f4 D Array_MP_8195A_PHY_REG +1004eb6c D rtl8195A_card_disable_flow +1004ec0c D rtl8195A_card_enable_flow +1004ecac D Array_MP_8195A_MAC_REG +1004efb4 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A +1004efd4 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A +1004eff4 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A +1004f012 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A +1004f030 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A +1004f04e D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A +1004f06c D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A +1004f08c D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A +1004f0aa D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A +1004f0c8 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A +1004f0e8 D Array_MP_8195A_RadioA +1004f6b0 D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A +1004f6ce D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A +1004f6ee D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A +1004f70c D .ram.bss$$Base +1004f70c D __bss_start__ +1004f70c D __data_end__ +1004f70c D __ram_image2_text_end__ +1004f70c d skbdata_list +1004f714 V skb_data_pool +10052b14 d ucIdleTaskHeap +10052c2c D HalI2SOpSAL +10052c68 D SYSAdapte +10052c6c D PwrAdapter +10052ef8 D libc_has_init +10052ef9 D print_off +10052efc d rheap_end +10052f00 d sampCntAdd +10052f04 d sampCnt +10052f08 D mp3_serv +10052f8a D tskreader_enable +10052f8c D readBuf +10052f90 D tskmad_enable +10052f94 d bufUnderrunCt +10052f98 d oldRate +10052f9c d sampDelCnt +10052fa0 D pbuf_fifo +10052fa4 D pi2s +10052fac D I2sTxSema +10052fb0 D rtw_join_status +10052fb4 D wifi_mode +10052fb8 D scan_result_handler_ptr +10052fcc d join_user_data +10052fd0 d event_callback_list +10053150 D paff_array +100531c8 D lwip_init_done +100531cc D xnetif +1005324c D wifi_run_mode +1005324d D wlan_st_netifn +10053250 D wifi_autoreconnect +10053258 D wifi_st_status +1005325c D web_scan_handler_ptr +10053268 d s_aliases.7449 +1005326c d s_hostent.7448 +10053280 d s_hostent_addr.7450 +10053284 D h_errno +10053288 d s_phostent_addr.7451 +10053290 d select_cb_list +10053294 d sockets +10053354 d select_cb_ctr +10053358 d mbox +1005335c d tcpip_init_done_arg +10053360 d tcpip_init_done +10053364 d allsystems +10053368 d allrouters +1005336c d igmp_group_list +10053370 D current_header +10053374 d ip_id +10053378 D current_iphdr_src +1005337c D current_iphdr_dest +10053380 D current_netif +10053384 d str.6812 +10053394 d reassdatagrams +10053398 d ip_reass_pbufcount +1005339a D dhcp_rx_options_given +100533a4 d xid.7762 +100533a8 D dhcp_rx_options_val +100533d0 d dns_seqno +100533d4 d dns_table +10053834 d dns_servers +1005383c d dns_payload_buffer +10053a40 d dns_pcb +10053a44 d dns_payload +10053a48 d tcpip_tcp_timer_active +10053a4c d next_timeout +10053a50 D netif_list +10053a54 D netif_default +10053a58 d netif_num +10053a59 D pbuf_free_ooseq_pending +10053a5c d raw_pcbs +10053a60 D tcp_active_pcbs_changed +10053a64 D tcp_ticks +10053a68 d tcp_timer +10053a6c D tcp_listen_pcbs +10053a70 D tcp_active_pcbs +10053a74 d tcp_timer_ctr +10053a78 D tcp_tw_pcbs +10053a7c D tcp_tmp_pcb +10053a80 D tcp_bound_pcbs +10053a84 d seqno +10053a88 d tcplen +10053a8c d ackno +10053a90 d flags +10053a91 d recv_flags +10053a94 d tcphdr +10053a98 d recv_data +10053a9c d inseg +10053ab0 D tcp_input_pcb +10053ab4 D udp_pcbs +10053ab8 d etharp_cached_entry +10053abc d arp_table +10053b84 D lwip_tickless_used +10053b88 d s_timeoutlist +10053bb8 d s_nextthread +10053bbc d dhcps_ip_table_semaphore +10053bc0 d dhcps_send_broadcast_address +10053bc4 D dhcps_ip4addr_pool_end +10053bc5 d dhcp_client_ethernet_address +10053bd8 d dhcps_subnet_broadcast +10053bdc d bound_client_ethernet_address +10053bec d dhcps_netif +10053bf0 d dhcps_local_gateway +10053bf4 d ip_table +10053c14 d dhcps_pcb +10053c18 d dhcp_message_total_options_lenth +10053c1c d dhcps_local_address +10053c20 d client_request_ip +10053c24 d dhcps_allocated_client_address +10053c28 D dhcps_ip4addr_pool_start +10053c2c d dhcps_local_mask +10053c30 d dhcps_network_id +10053c34 d dhcp_message_repository +10053c38 D ext_upper +10053c3c d xFreeBytesRemaining +10053c40 d ext_free +10053c44 D ext_lower +10053c48 d pxEnd +10053c4c d xStart +10053c54 d xMinimumEverFreeBytesRemaining +10053c58 d ulTimerCountsForOneTick +10053c5c d ulStoppedTimerCompensation +10053c60 d xMaximumPossibleSuppressedTicks +10053c64 d xPendingReadyList +10053c78 d uxTopReadyPriority +10053c7c d uxTasksDeleted +10053c80 d xTickCount +10053c84 d pxReadyTasksLists +10053d60 d pxOverflowDelayedTaskList +10053d64 d xTasksWaitingTermination +10053d78 d pxDelayedTaskList +10053d7c d xSchedulerRunning +10053d80 d ulTaskSwitchedInTime +10053d84 D pxCurrentTCB +10053d88 d uxPendedTicks +10053d8c d xSuspendedTaskList +10053da0 d uxCurrentNumberOfTasks +10053da4 d ulDeltaTotalRunTime +10053da8 d xDelayedTaskList2 +10053dbc d xDelayedTaskList1 +10053dd0 d uxTaskNumber +10053dd4 d xYieldPending +10053dd8 d uxSchedulerSuspended +10053ddc d xNumOfOverflows +10053de0 d pxCurrentTimerList +10053de4 d xActiveTimerList1 +10053df8 d xActiveTimerList2 +10053e0c d xLastTime.5284 +10053e10 d xTimerQueue +10053e14 d pxOverflowTimerList +10053e18 d xTimerTaskHandle +10053e1c d device_mutex +10053e28 d mutex_init +10053e2c d uxSavedInterruptStatus +10053e30 D min_free_heap_size +10053e34 d g_heap_inited +10053e38 d tcm_lock +10053e3c D g_tcm_heap +10053e40 D flashobj +10053e4c D fspic_isinit +10053e50 D WDGAdapter +10053e8c d last_acquire_wakelock_time +10053f0c D post_sleep_callback +10053f8c D pre_sleep_callback +1005400c D reserve_pll +10054010 d sys_sleep_time +10054014 d hold_wakelock_time +10054094 D missing_tick +10054098 D Timer2To7HandlerData +100540b0 D auto_reconnect_running +100540b4 D p_wlan_autoreconnect_hdl +100540b8 D mac_monitor_callback +100540bc D mf_list_head +100540c0 d pscan_retry_cnt.21430 +100540c4 D promisc_callback_all +100540c8 D promisc_sema +100540cc D promisc_callback +100540d0 D psk_essid +10054118 D psk_passphrase +1005419a D psk_passphrase64 +100541db D wpa_global_PSK +1005422b d RFC1042_OUI +10054230 d rx_ring_pool +10056310 d stop_report_count.20629 +10056311 D bCheckStateTIMER +10056314 d WifiMcuCmdBitMap.20974 +10056318 D p_wlan_init_done_callback +1005631c D rtw_power_percentage_idx +10056320 D p_wlan_uart_adapter_callback +10056324 D rtw_adaptivity_en +10056328 D p_wlan_mgmt_filter +1005632c D rtw_initmac +10056330 D rtw_adaptivity_th_l2h_ini +10056334 d drvpriv +10056348 D skbbuf_used_num +1005634c V skb_pool +10056504 D skbdata_used_num +10056508 d wrapper_skbbuf_list +10056510 D max_skbdata_used_num +10056514 D max_skbbuf_used_num +10056518 d skb_fail_count +1005651c D timer_table +10056524 D rltk_wlan_info +10056554 d timer_used_num +10056558 D max_timer_used_num +1005655c D Noisy_State +10056560 D pExportWlanIrqSemaphore +10056564 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A +10056582 D .ram.bss$$Limit +10056582 D __bss_end__ +10056588 B __ram_heap2_start__ 10070000 A __ram_heap2_end__ 1fff0000 D __ram_tcm_start__ 1fff0000 D __tcm_heap_start__ diff --git a/flasher.mk b/flasher.mk index 4c111ed..fd07669 100644 --- a/flasher.mk +++ b/flasher.mk @@ -167,7 +167,7 @@ flashimage2p: flashwebfs: @$(OPENOCD) -f interface/$(FLASHER).cfg -c "transport select swd" -f $(FLASHER_PATH)rtl8710.ocd -c "init" -c "adapter_khz $(FLASHER_SPEED)" -c "reset halt" \ -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" \ - -c "rtl8710_flash_write $(BIN_DIR)/webpages.espfs 0xd0000" \ + -c "rtl8710_flash_write $(BIN_DIR)/ 0xd0000" \ -c "rtl8710_reboot" -c "reset run" -c shutdown diff --git a/project/inc/user_config.h b/project/inc/user_config.h new file mode 100644 index 0000000..8ff13eb --- /dev/null +++ b/project/inc/user_config.h @@ -0,0 +1,9 @@ +#ifndef _user_config_h_ +#define _user_config_h_ + +#define SYS_VERSION "1.0.0" +#define SDK_VERSION "3.5.3" + +#endif // _user_config_h_ + + diff --git a/project/inc/wifi_user_set.h b/project/inc/wifi_user_set.h index ec84d84..f0ad1cf 100644 --- a/project/inc/wifi_user_set.h +++ b/project/inc/wifi_user_set.h @@ -10,55 +10,60 @@ //========================================= //==== Wlan Config ======================== -#define DEF_WIFI_MODE RTW_MODE_STA // Стартовый режим WiFi: RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA, RTW_MODE_NONE -#define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3 -#define DEF_WIFI_COUNTRY RTW_COUNTRY_RU // Страна для установки органичений каналов и прочего... -#define DEF_WIFI_TX_PWR RTW_TX_PWR_PERCENTAGE_50 // RTW_TX_PWR_PERCENTAGE_75 // RTW_TX_PWR_PERCENTAGE_100 +#define DEF_WIFI_MODE RTW_MODE_STA_AP // Стартовый режим WiFi: RTW_MODE_STA_AP, RTW_MODE_AP, RTW_MODE_STA, RTW_MODE_NONE +#define DEF_WIFI_AP_STATIONS 3 // Max number of STAs, should be 1..3, default is 3 +#define DEF_WIFI_COUNTRY RTW_COUNTRY_RU // Регион использования WiFi... +#define DEF_WIFI_TX_PWR RTW_TX_PWR_PERCENTAGE_25 // RTW_TX_PWR_PERCENTAGE_75 // RTW_TX_PWR_PERCENTAGE_100 #define DEF_WIFI_BGN RTW_NETWORK_BGN // rtw_network_mode_t -#define DEF_WIFI_ST_SLEEP 0 // 0 - none, 1 - on +#define DEF_WIFI_ADAPTIVITY RTW_ADAPTIVITY_NORMAL // RTW_ADAPTIVITY_DISABLE/RTW_ADAPTIVITY_NORMAL/RTW_ADAPTIVITY_CARRIER_SENSE -#define DEF_LOAD_CFG ( 0 \ - | BID_WIFI_AP_CFG \ - | BID_WIFI_ST_CFG \ - | BID_AP_DHCP_CFG \ - | BID_ST_DHCP_CFG \ -)// | BID_WIFI_CFG \ +/* Опции загрузки конфигов по старту */ +//#define DEF_LOAD_CFG 0 // старт в назначенном режиме по умолчанию +//#define DEF_LOAD_CFG BID_ALL_WIFI_CFG // старт в назначенном общем режиме по умолчанию, с загрузками последних конфигураций ST и AP +#define DEF_LOAD_CFG (BID_ALL_WIFI_CFG | BID_WIFI_CFG) // старт в записанном режиме -#define DEF_SAVE_CFG ( 0 \ - | BID_WIFI_AP_CFG \ - | BID_WIFI_ST_CFG \ - | BID_AP_DHCP_CFG \ - | BID_ST_DHCP_CFG \ - | BID_WIFI_CFG \ -) +/* Опции разрешения записи конфигов по упсешному соединению или выполнению операции установок режимов WiFi без ошибок */ +#define DEF_SAVE_CFG (BID_ALL_WIFI_CFG | BID_WIFI_CFG) // сохранение по успешному соединению/выполненю для всех конфигов: + // (для ST или AP пишутся раздельно) с проверкой на изменения //==== Interface 0 - wlan0 = AP =========== #define DEF_AP_SSID "RTL871X" #define DEF_AP_PASSWORD "0123456789" -#define DEF_AP_SECURITY RTW_SECURITY_WPA2_AES_PSK // RTW_SECURITY_OPEN, RTW_SECURITY_WEP_PSK -#define DEF_AP_BEACON 100 // 100...6000 ms -#define DEF_AP_CHANNEL 1 // 1..14 -#define DEF_AP_CHANNEL 1 // 1..14 -#define DEF_AP_DHCP_MODE 1 // =0 dhcp off, =1 - dhcp on +/* Варианты типов Security для AP: + RTW_SECURITY_OPEN - Open Security + RTW_SECURITY_WPA_TKIP_PSK - WPA Security + RTW_SECURITY_WPA2_AES_PSK - WPA2 Security using AES cipher + RTW_SECURITY_WPA2_MIXED_PSK - WPA2 Security using AES and/or TKIP ciphers */ +#define DEF_AP_SECURITY RTW_SECURITY_WPA2_AES_PSK // WEP security is NOT IMPLEMENTED. It is NOT SECURE! +#define DEF_AP_BEACON 100 // 100...6000 ms +#define DEF_AP_CHANNEL 1 // 1..14 +#define DEF_AP_CHANNEL 1 // 1..14 +#define DEF_AP_DHCP_MODE 1 // =0 dhcp off, =1 - dhcp on #define DEF_AP_IP IP4ADDR(192,168,4,1) #define DEF_AP_MSK IP4ADDR(255,255,255,0) #define DEF_AP_GW IP4ADDR(192,168,4,1) -#define DEF_AP_DHCP_START 2 -#define DEF_AP_DHCP_STOP 15 +// if not defined DHCP_START && DHCP_STOP -> 2..255 +//#define DEF_AP_DHCP_START 2 // DHCP ip start xx.xx.xx.2 +//#define DEF_AP_DHCP_STOP 15 // DHCP ip stop xx.xx.xx.15 //==== Interface 1 - wlan1 = STA ========== -#define DEF_ST_SSID "HOMEAP" -#define DEF_ST_PASSWORD "0123456789" -#define DEF_ST_SECURITY RTW_SECURITY_WPA_WPA2_MIXED +#define DEF_ST_SSID "HOMEAP" // Имя SSID AP (роутера) для присоединения по умолчанию (первый старт) +#define DEF_ST_PASSWORD "0123456789" // Пароль AP (роутера) для присоединения по умолчанию (первый старт) +#define DEF_ST_SECURITY RTW_SECURITY_WPA_WPA2_MIXED // Тип Security #define DEF_ST_BSSID { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } // If bssid set is not ff.ff.ff.ff.ff.ff, -// station will connect to the router with both ssid[] and bssid[] matched. -#define DEF_ST_CHANNEL 1 // 1..14 -#define DEF_ST_AUTORECONNECT 3 // 0 - none, 1..254 - count, 255 - all -#define DEF_ST_RECONNECT_PAUSE 1 // 1 sec -#define DEF_ST_DHCP_MODE 1 // =0 dhcp off, =1 - dhcp on, =2 Static ip, =3 - auto +#define DEF_ST_USE_BSSID 0 // station will connect to the router with both ssid[] and bssid[] matched. +#define DEF_ST_CHANNEL 1 // 1..14 +#define DEF_ST_AUTORECONNECT 1 // 0 - none, 1..254 - count, 255 - all +#define DEF_ST_RECONNECT_PAUSE 1 // 5 sec +#define DEF_ST_SLEEP 3 // 0 - Off, 1 - IPS, 2 - LPS, 3 - IPS/LPS mode +#define DEF_ST_LPS_DTIM 0 // LPS DTIM +#define DEF_ST_DHCP_MODE 1 // =0 dhcp off, + // =1 - dhcp on, - динамический ip + // =2 Static ip, - fixed ip + // =3 - auto fix - старт в режиме "dhcp on", после получения ip - фиксация и переключение в режим рестартов со "Static ip" #define DEF_ST_IP IP4ADDR(192,168,1,100) #define DEF_ST_MSK IP4ADDR(255,255,255,0) #define DEF_ST_GW IP4ADDR(192,168,1,1) //==== Interface 2 - eth0 ================= -#define DEF_EH_DHCP_MODE 1 // =0 dhcp off, =1 - dhcp on +#define DEF_EH_DHCP_MODE 1 // =0 dhcp off, =1 - dhcp on #define DEF_EH_IP IP4ADDR(192,168,7,200) #define DEF_EH_MSK IP4ADDR(255,255,255,0) #define DEF_EH_GW IP4ADDR(192,168,7,1) diff --git a/project/src/user/wifi_console.c b/project/src/user/wifi_console.c index 6e5a675..b8af14d 100644 --- a/project/src/user/wifi_console.c +++ b/project/src/user/wifi_console.c @@ -22,6 +22,7 @@ extern struct netif xnetif[NET_IF_NUM]; //========================================================== //--- CONSOLE -------------------------- + // ATPN=[,password[,encryption[,auto reconnect[,reconnect pause]]]: WIFI Connect to AP LOCAL void fATPN(int argc, char *argv[]){ if(argc > 1) { @@ -35,28 +36,28 @@ LOCAL void fATPN(int argc, char *argv[]){ pswlen = strlen(wifi_st_cfg.password); strncpy(wifi_st_cfg.password, argv[2], NDIS_802_11_LENGTH_SSID); if(pswlen > 7) { - wifi_st_cfg.security_type = RTW_SECURITY_WPA2_AES_PSK; + wifi_st_cfg.security = IDX_SECURITY_WPA2_AES_PSK; } else if(!pswlen) { - wifi_st_cfg.security_type = RTW_SECURITY_OPEN; + wifi_st_cfg.security = IDX_SECURITY_OPEN; } else { printf("password len < 8!\n"); - wifi_st_cfg.security_type = RTW_SECURITY_OPEN; + wifi_st_cfg.security = IDX_SECURITY_OPEN; } } else { // default wifi_st_cfg.password[0] = 0; - wifi_st_cfg.security_type = RTW_SECURITY_OPEN; + wifi_st_cfg.security = IDX_SECURITY_OPEN; } if(argc > 3) { if(pswlen > 7) { - wifi_st_cfg.security_type = idx_to_rtw_security(atoi(argv[3])); + wifi_st_cfg.security = atoi(argv[3]); } else { printf("password len < 8!\n"); - wifi_st_cfg.security_type = RTW_SECURITY_OPEN; + wifi_st_cfg.security = IDX_SECURITY_OPEN; } } if(argc > 4) { @@ -68,6 +69,9 @@ LOCAL void fATPN(int argc, char *argv[]){ } else wifi_st_cfg.reconnect_pause = 5; show_wifi_st_cfg(); +#if CONFIG_WLAN_CONNECT_CB + connect_close(); +#endif wifi_run(wifi_run_mode | RTW_MODE_STA); } } @@ -85,22 +89,22 @@ LOCAL void fATPA(int argc, char *argv[]){ strncpy(wifi_ap_cfg.password, argv[2], NDIS_802_11_LENGTH_SSID); int i = strlen(wifi_ap_cfg.password); if(i > 7) { - wifi_ap_cfg.security_type = RTW_SECURITY_WPA2_AES_PSK; + wifi_ap_cfg.security = 1; // IDX_SECURITY_WPA2_AES_PSK; } else if(i == 0) { - wifi_ap_cfg.security_type = RTW_SECURITY_OPEN; + wifi_ap_cfg.security = 0; // IDX_SECURITY_OPEN; } else { printf("password len < 8!\n"); - wifi_ap_cfg.security_type = RTW_SECURITY_OPEN; + wifi_ap_cfg.security = 0; // IDX_SECURITY_OPEN; } } else { wifi_ap_cfg.password[0] = 0; - wifi_ap_cfg.security_type = RTW_SECURITY_OPEN; + wifi_ap_cfg.security = 0; // IDX_SECURITY_OPEN; } if(argc > 3) { - wifi_ap_cfg.security_type = (argv[3][0] == '0')? RTW_SECURITY_OPEN : RTW_SECURITY_WPA2_AES_PSK; + wifi_ap_cfg.security = (argv[3][0] == '0')? 0 : 1; //RTW_SECURITY_OPEN : RTW_SECURITY_WPA2_AES_PSK; } if(argc > 4) { wifi_ap_cfg.channel = atoi(argv[4]); @@ -117,6 +121,9 @@ LOCAL void fATPA(int argc, char *argv[]){ else wifi_ap_cfg.max_sta = 3; show_wifi_ap_cfg(); +#if CONFIG_WLAN_CONNECT_CB + connect_close(); +#endif wifi_run(wifi_run_mode | RTW_MODE_AP); } } @@ -126,9 +133,13 @@ LOCAL void fATPA(int argc, char *argv[]){ LOCAL void fATWR(int argc, char *argv[]){ rtw_mode_t mode = RTW_MODE_NONE; if(argc > 1) mode = atoi(argv[1]); +#if CONFIG_WLAN_CONNECT_CB + connect_close(); +#endif wifi_run(mode); } +#if CONFIG_WLAN_CONNECT_CB // Close connections LOCAL void fATOF(int argc, char *argv[]){ connect_close(); @@ -138,8 +149,25 @@ LOCAL void fATOF(int argc, char *argv[]){ LOCAL void fATON(int argc, char *argv[]){ connect_start(); } +#endif LOCAL void fATWI(int argc, char *argv[]) { +#if 1 + if(argc > 2) { + uint8_t c = argv[1][0] | 0x20; + if(c == 's') { + int i = atoi(argv[2]); + printf("Save configs(%d)..\n", i); + write_wifi_cfg(atoi(argv[2])); + } + else if(c == 'l') { + wifi_cfg.load_flg = atoi(argv[2]); + } + else if(c == 'm') { + wifi_cfg.mode = atoi(argv[2]); + } + } +#endif rtw_wifi_setting_t Setting; if((wifi_run_mode & RTW_MODE_AP) && wifi_get_setting(wlan_ap_name, &Setting) == 0) { @@ -163,22 +191,6 @@ LOCAL void fATWI(int argc, char *argv[]) { printf(&str_rom_57ch3Dch0A[25]); // "================================\n" show_wifi_st_cfg(); printf("\n"); -#if 1 - if(argc > 2) { - uint8_t c = argv[1][0] | 0x20; - if(c == 's') { - int i = atoi(argv[2]); - printf("Save configs(%d)..\n", i); - write_wifi_cfg(atoi(argv[2])); - } - else if(c == 'l') { - wifi_cfg.load_flg = atoi(argv[2]); - } - else if(c == 'm') { - wifi_cfg.mode = atoi(argv[2]); - } - } -#endif } extern uint8_t rtw_power_percentage_idx; @@ -212,77 +224,100 @@ LOCAL void fATSF(int argc, char *argv[]) printf("\nTSF: %08x%08x\n", (uint32_t)(tsf>>32), (uint32_t)(tsf)); } +LOCAL void fATWP(int argc, char *argv[]) { + if(argc > 1) { + release_wakelock(0xffff); + wifi_set_power_mode(1, 1); + wifi_set_lps_dtim(atoi(argv[1])); + } + else { + unsigned char x; + if(wifi_get_lps_dtim(&x) >= 0) { + printf("DTIM: %d\n", x); + } + } +} /* -------- WiFi Scan ------------------------------- */ -volatile uint8_t scan_end; -/* -------- WiFi Scan ------------------------------- */ -LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result ) +LOCAL void scan_result_handler(internal_scan_handler_t* ap_scan_result) { - if (malloced_scan_result->scan_complete != RTW_TRUE) { - rtw_scan_result_t* record = &malloced_scan_result->ap_details; - record->SSID.val[record->SSID.len] = 0; /* Ensure the SSID is null terminated */ - if(scan_end == 1) { + if (ap_scan_result) { + if(ap_scan_result->scan_cnt) { printf("\nScan networks:\n\n"); printf("N\tType\tMAC\t\t\tSignal\tCh\tWPS\tSecyrity\tSSID\n\n"); - }; - printf("%d\t", scan_end++); - printf("%s\t", (record->bss_type == RTW_BSS_TYPE_ADHOC)? "Adhoc": "Infra"); - printf(MAC_FMT, MAC_ARG(record->BSSID.octet)); - printf("\t%d\t", record->signal_strength); - printf("%d\t", record->channel); - printf("%d\t", record->wps_type); - { - uint8 * s = rtw_security_to_str(record->security); - printf("%s\t", s); - if(strlen(s) < 8) printf("\t"); - } - printf("%s\n", record->SSID.val); + for(int i = 0 ; i < ap_scan_result->scan_cnt; i++) { + rtw_scan_result_t* record = &ap_scan_result->ap_details[i]; + printf("%d\t", i+1); + printf("%s\t", (record->bss_type == RTW_BSS_TYPE_ADHOC)? "Adhoc": "Infra"); + printf(MAC_FMT, MAC_ARG(record->BSSID.octet)); + printf("\t%d\t", record->signal_strength); + printf("%d\t", record->channel); + printf("%d\t", record->wps_type); + { + uint8 * s = rtw_security_to_str(record->security); + printf("%s\t", s); + if(strlen(s) < 8) printf("\t"); + } + record->SSID.val[record->SSID.len] = '\0'; + printf("%s\n", record->SSID.val); + } + + } } else { - scan_end = 0; - printf("\n"); + printf("Scan networks: None!\n"); } - return RTW_SUCCESS; } /* -------- WiFi Scan ------------------------------- */ -#define scan_channels 14 LOCAL void fATSN(int argc, char *argv[]) { - int i; - u8 *channel_list = (u8*)pvPortMalloc(scan_channels*2); - if(channel_list) { - scan_end = 1; - u8 * pscan_config = &channel_list[scan_channels]; - //parse command channel list - for(i = 1; i <= scan_channels; i++){ - *(channel_list + i - 1) = i; - *(pscan_config + i - 1) = PSCAN_ENABLE; - }; - if(wifi_set_pscan_chan(channel_list, pscan_config, scan_channels) < 0){ - printf("ERROR: wifi set partial scan channel fail\n"); - } else if(wifi_scan_networks(_scan_result_handler, NULL ) != RTW_SUCCESS){ - printf("ERROR: wifi scan failed\n"); - } else { - i = 300; - while(i-- && scan_end) { - vTaskDelay(10); - }; - }; - vPortFree(channel_list); - } else { - printf("ERROR: Can't malloc memory for channel list\n"); - }; + api_wifi_scan(scan_result_handler); } +#if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP +extern void cmd_ap_wps(int argc, char **argv); +extern void cmd_wps(int argc, char **argv); +//extern void cmd_wifi_on(int argc, char **argv); +#endif +#if CONFIG_ENABLE_P2P +extern void cmd_wifi_p2p_start(int argc, char **argv); +extern void cmd_wifi_p2p_stop(int argc, char **argv); +extern void cmd_p2p_listen(int argc, char **argv); +extern void cmd_p2p_find(int argc, char **argv); +extern void cmd_p2p_peers(int argc, char **argv); +extern void cmd_p2p_info(int argc, char **argv); +extern void cmd_p2p_disconnect(int argc, char **argv); +extern void cmd_p2p_connect(int argc, char **argv); +extern void cmd_wifi_p2p_auto_go_start(int argc, char **argv); +extern void cmd_p2p_peers(int argc, char **argv); +#endif //CONFIG_ENABLE_P2P + MON_RAM_TAB_SECTION COMMAND_TABLE console_cmd_wifi_api[] = { {"ATPN", 1, fATPN, "=[,password[,encryption[,auto-reconnect[,reconnect pause]]]: WIFI Connect to AP"}, {"ATPA", 1, fATPA, "=[,password[,encryption[,channel[,hidden[,max connections]]]]]: Start WIFI AP"}, +#if defined(CONFIG_ENABLE_WPS_AP) && CONFIG_ENABLE_WPS_AP + {"WPS_AP", 1, cmd_ap_wps, "=[,pin]: WiFi AP WPS"}, + {"WPS_ST", 1, cmd_wps, "=[,pin]: WiFi Station WPS"}, +#endif +#if CONFIG_ENABLE_P2P + {"P2P_START", 0, cmd_wifi_p2p_start, ": p2p start" }, + {"P2P_ASTART", 0, cmd_wifi_p2p_auto_go_start, ": p2p auto go start" }, + {"P2P_STOP", 0, cmd_wifi_p2p_stop, ": p2p stop"}, + {"P2P_PEERS", 0, cmd_p2p_peers, ": p2p peers" }, + {"P2P_FIND", 0, cmd_p2p_find, ": p2p find"}, + {"P2P_INFO", 0, cmd_p2p_info, ": p2p info"}, + {"P2P_DISCCONNECT", 0, cmd_p2p_disconnect, ": p2p disconnect"}, + {"P2P_CONNECT", 0, cmd_p2p_connect, ": p2p connect"}, +#endif {"ATWR", 0, fATWR, ": WIFI Connect, Disconnect"}, +#if CONFIG_WLAN_CONNECT_CB {"ATON", 0, fATON, ": Open connections"}, - {"ATOF", 0, fATOF, ": Close connections"}, + {"ATOFF", 0, fATOF, ": Close connections"}, +#endif {"ATWI", 0, fATWI, ": WiFi Info"}, #if CONFIG_DEBUG_LOG > 3 {"ATWT", 1, fATWT, "=: WiFi tx power: 0 - 100%, 1 - 75%, 2 - 50%, 3 - 25%, 4 - 12.5%"}, {"ATSF", 0, fATSF, ": Test TSF value"}, #endif + {"ATWP", 0, fATWP, ": WiFi power"}, {"ATSN", 0, fATSN, ": Scan networks"} }; diff --git a/sdkset.mk b/sdkset.mk index 66cd58b..404c52e 100644 --- a/sdkset.mk +++ b/sdkset.mk @@ -114,6 +114,8 @@ SRC_C += sdk/component/common/api/wifi/wifi_promisc.c SRC_C += sdk/component/common/api/wifi/wifi_simple_config.c SRC_C += sdk/component/common/api/wifi/wifi_util.c SRC_C += sdk/component/common/api/lwip_netconf.c +SRC_C += sdk/component/common/api/wifi_api.c +SRC_C += sdk/component/common/api/wifi_api_scan.c #network - app #SRC_C += sdk/component/common/utilities/ssl_client.c @@ -387,7 +389,6 @@ ADD_SRC_C += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_pvv #ADD_SRC_C += sdk/component/common/drivers/sdio/realtek/sdio_host/src/sdio_host.c #ADD_SRC_C += sdk/component/soc/realtek/8195a/fwlib/src/hal_sdio_host.c #ADD_SRC_C += sdk/component/common/file_system/fatfs/disk_if/src/sdcard.c -ADD_SRC_C += sdk/component/common/api/wifi_api.c #============================================= # PROGECT #=============================================