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 cf2a735..8afaea7 100644 --- a/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c +++ b/RTL00_SDKV35a/component/common/api/at_cmd/atcmd_sys.c @@ -1316,7 +1316,7 @@ void fATST(void *arg) { #if 0 #include "wlan_lib.h" #include "hal_com_reg.h" -// struct net_device *rltk_wlan_info; +// extern Rltk_wlan_t rltk_wlan_info[2]; void fATXT(void *arg) { #if DEBUG_AT_USER_LEVEL > 3 diff --git a/RTL00_SDKV35a/component/common/api/lwip_netconf.c b/RTL00_SDKV35a/component/common/api/lwip_netconf.c index 426fd93..d343924 100644 --- a/RTL00_SDKV35a/component/common/api/lwip_netconf.c +++ b/RTL00_SDKV35a/component/common/api/lwip_netconf.c @@ -233,7 +233,7 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) { iptab[1] = (uint8_t) (IPaddress >> 16); iptab[2] = (uint8_t) (IPaddress >> 8); iptab[3] = (uint8_t) (IPaddress); - printf("Interface %d IP address: %d.%d.%d.%d\n", idx, iptab[3], + info_printf("Interface %d IP address: %d.%d.%d.%d\n", idx, iptab[3], iptab[2], iptab[1], iptab[0]); #if CONFIG_WLAN error_flag = RTW_NO_ERROR; @@ -257,8 +257,8 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) { iptab[1] = IP_ADDR2; iptab[2] = IP_ADDR1; iptab[3] = IP_ADDR0; - printf("Interface %d DHCP timeout\n", idx); - printf("Static IP address: %d.%d.%d.%d\n", iptab[3], iptab[2], iptab[1], iptab[0]); + info_printf("Interface %d DHCP timeout\n", idx); + info_printf("Static IP address: %d.%d.%d.%d\n", iptab[3], iptab[2], iptab[1], iptab[0]); #if CONFIG_WLAN error_flag = RTW_DHCP_FAIL; #endif @@ -280,14 +280,14 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) { #if CONFIG_WLAN wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl); #endif - printf("LwIP_DHCP: Release ip\n"); + info_printf("LwIP_DHCP(%d): Release ip\n", idx); dhcp_release_unicast(pnetif); return DHCP_RELEASE_IP; case DHCP_STOP: #if CONFIG_WLAN wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl); #endif - printf("LwIP_DHCP: dhcp stop.\n"); + info_printf("LwIP_DHCP(%d): dhcp stop.\n", idx); dhcp_stop(pnetif); return DHCP_STOP; default: diff --git a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c index b261278..fedaad6 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_conf.c @@ -5,7 +5,6 @@ #include #include "main.h" #include -//#include #include #include #include @@ -26,11 +25,11 @@ extern int inic_stop(void); #include "wlan_lib.h" #if CONFIG_DEBUG_LOG > 0 - #undef printf - #define printf(...) rtl_printf(__VA_ARGS__) +#undef printf +#define printf(...) rtl_printf(__VA_ARGS__) #else - #undef printf - #define printf(...) +#undef printf +#define printf(...) #endif #define SHOW_PRIVATE_OUT 1 // =0 - off, = 1 On @@ -66,7 +65,8 @@ extern struct netif xnetif[NET_IF_NUM]; /****************************************************** * Variables Definitions ******************************************************/ -static internal_scan_handler_t scan_result_handler_ptr = {0, 0, 0, RTW_FALSE, 0, 0, 0, 0, 0}; +static internal_scan_handler_t scan_result_handler_ptr = { 0, 0, 0, RTW_FALSE, + 0, 0, 0, 0, 0 }; static internal_join_result_t* join_user_data; extern rtw_mode_t wifi_mode; int error_flag = RTW_UNKNOWN; @@ -80,10 +80,10 @@ extern unsigned char dhcp_mode_sta; ******************************************************/ #ifndef WLAN0_NAME - #define WLAN0_NAME "wlan0" +#define WLAN0_NAME "wlan0" #endif #ifndef WLAN1_NAME - #define WLAN1_NAME "wlan1" +#define WLAN1_NAME "wlan1" #endif /* Give default value if not defined */ #ifndef NET_IF_NUM @@ -125,7 +125,7 @@ extern unsigned char dhcp_mode_sta; #define AP_IP_ADDR2 43 #define AP_IP_ADDR3 1 #endif - + /*NETMASK*/ #ifndef AP_NETMASK_ADDR0 #define AP_NETMASK_ADDR0 255 @@ -151,118 +151,108 @@ extern unsigned char dhcp_mode_sta; //----------------------------------------------------------------------start-patch// #include "freertos/wrapper.h" #include "skbuff.h" -/* -typedef struct -{ - unsigned int rx_packets; - unsigned int tx_packets; - unsigned int rx_dropped; - unsigned int tx_dropped; - unsigned int rx_bytes; - unsigned int tx_bytes; - unsigned int rx_overflow; -}net_device_stats; -typedef struct net_device -{ - char name[16]; - void *priv; - unsigned char dev_addr[6]; - int (*init)(void); - int (*open)(struct net_device *); - int (*stop)(struct net_device *); - int (*hard_start_xmit)(struct sk_buff *, net_device *); - int (*do_ioctl)(struct net_device *, iwreq *, int); - net_device_stats *(*get_stats)(net_device *); -}; -*/ -extern struct net_device *rltk_wlan_info; -void patch_rltk_wlan_deinit(void) -{ - struct net_device *v0; - int v1; - char *v4; +//extern Rltk_wlan_t rltk_wlan_info[2]; +void patch_rltk_wlan_deinit(void) { + uint8_t chk; + if (rltk_wlan_info[0].enable || rltk_wlan_info[0].enable) { + _adapter *ad = rltk_wlan_info[0].dev->priv; + ad->bSurpriseRemoved = 1; // + 5892 + rtw_wakeup_task(&ad->isrThread.task); // +5912 + while (1) { + save_and_cli(); // taskENTER_CRITICAL(); // vPortEnterCritical() + rltk_wlan_info[0].enable = 0; + rltk_wlan_info[1].enable = 0; + chk = rltk_wlan_info[0].tx_busy + rltk_wlan_info[0].rx_busy + + rltk_wlan_info[1].tx_busy + rltk_wlan_info[0].rx_busy; + restore_flags(); + if (!chk) + break; + rtl_printf("[%s] Wait for TX/RX Busy (%d)\n", __func__, chk); + vTaskDelay(10); + } + while (1) { + if (!*(u32 *) (ad->isrThread.wakeup_sema) || ad->RxStop == 2) + break; + rtl_printf("[%s] Wait for RxStop\n", __func__); + vTaskDelay(10); + } + rtw_dev_remove(rltk_wlan_info); + rtw_drv_halt(); + deinit_timer_wrapper(); - v0 = rltk_wlan_info; + rltk_wlan_info[0].enable = 0; + rltk_wlan_info[1].enable = 0; - if(rltk_wlan_info->priv != NULL) { - v1 = *(u32 *)rltk_wlan_info->priv; /* pointer to private data */ - *(u8 *)(v1 + 5892) = 1; - rtw_wakeup_task(v1 + 5912); - while(1) { - save_and_cli(); - *((u8 *)&rltk_wlan_info + 16) = 0; - *((u8 *)&rltk_wlan_info + 40) = 0; - v4 = &(*(&rltk_wlan_info + 9))->name[(u32)*(&rltk_wlan_info + 2) - + (u32)*(&rltk_wlan_info + 3) - + (unsigned int)*(&rltk_wlan_info + 8)]; - restore_flags(); - if (!v4 ) break; - rtl_printf("[%s] Wait for TX/RX Busy (%d)\n", "rltk_wlan_deinit", v4); - vTaskDelay(10); - } - while(1) { - if ( !*(u32 *)(v1 + 5916) || *(u8 *)(v1 + 5892) == 2 ) break; - rtl_printf("[%s] Wait for RxStop\n", "rltk_wlan_deinit"); - vTaskDelay(10); - } - rtw_dev_remove(rltk_wlan_info); - rtw_drv_halt(); - deinit_timer_wrapper(); - *((u8 *)&rltk_wlan_info + 16) = 0; - *((u8 *)&rltk_wlan_info + 40) = 0; - *(u64 *)&rltk_wlan_info = 0LL; - *((u64 *)&rltk_wlan_info + 1) = 0LL; - *((u64 *)&rltk_wlan_info + 3) = 0LL; - *((u64 *)&rltk_wlan_info + 4) = 0LL; - //deinit_mem_monitor(NULL, NULL); - } + rltk_wlan_info[0].dev = 0; + rltk_wlan_info[0].skb = 0; + rltk_wlan_info[0].tx_busy = 0; + rltk_wlan_info[0].rx_busy = 0; + rltk_wlan_info[0].enable = 0; + rltk_wlan_info[1].dev = 0; + rltk_wlan_info[1].skb = 0; + rltk_wlan_info[1].tx_busy = 0; + rltk_wlan_info[1].rx_busy = 0; + rltk_wlan_info[1].enable = 0; + //deinit_mem_monitor(NULL, NULL); + } } //------------------------------------------------------------------------end-patch// -static int wifi_connect_local(rtw_network_info_t *pWifi) -{ +static int wifi_connect_local(rtw_network_info_t *pWifi) { int ret = 0; - - if(is_promisc_enabled()) + + 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: - case RTW_SECURITY_WPA_WPA2_MIXED: - 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 (!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: + case RTW_SECURITY_WPA_WPA2_MIXED: + 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; + error_printf("%s: security type(0x%x) is not supported!\n", + 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); + ret = wext_set_ssid(WLAN0_NAME, pWifi->ssid.val, pWifi->ssid.len); #endif return ret; } @@ -272,46 +262,46 @@ 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); + promisc_set(0, NULL, 0); if(!pWifi) return -1; - switch(pWifi->security_type){ + 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; + 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; + 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; + 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; + 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; + ret = -1; + printf("WIFICONF: security type(0x%x) is not supported.\n", pWifi->security_type); + break; } - if(ret == 0){ + if(ret == 0) { memcpy(bssid, pWifi->bssid.octet, ETH_ALEN); - if(pWifi->ssid.len){ + if(pWifi->ssid.len) { bssid[ETH_ALEN] = '#'; bssid[ETH_ALEN + 1] = '@'; memcpy(bssid + ETH_ALEN + 2, &pWifi, sizeof(pWifi)); @@ -322,95 +312,106 @@ static int wifi_connect_bssid_local(rtw_network_info_t *pWifi) } #endif -void wifi_rx_beacon_hdl( char* buf, int buf_len, int flags, void* userdata) { +void wifi_rx_beacon_hdl(char* buf, int buf_len, int flags, void* userdata) { //printf("Beacon!\n"); } - -static void wifi_no_network_hdl(char* buf, int buf_len, int flags, void* userdata) -{ - if(join_user_data!=NULL) - rtw_join_status = JOIN_NO_NETWORKS; +static void wifi_no_network_hdl(char* buf, int buf_len, int flags, + void* userdata) { + if (join_user_data != NULL) + rtw_join_status = JOIN_NO_NETWORKS; } -static void wifi_connected_hdl( char* buf, int buf_len, int flags, void* userdata) -{ +static void wifi_connected_hdl(char* buf, int buf_len, int flags, + void* userdata) { #ifdef CONFIG_ENABLE_EAP - if(get_eap_phase()){ + if(get_eap_phase()) { rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY; return; } #endif /* CONFIG_ENABLE_EAP */ - if((join_user_data!=NULL)&&((join_user_data->network_info.security_type == RTW_SECURITY_OPEN) || - (join_user_data->network_info.security_type == RTW_SECURITY_WEP_PSK))){ - rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY; + if ((join_user_data != NULL) + && ((join_user_data->network_info.security_type == RTW_SECURITY_OPEN) + || (join_user_data->network_info.security_type + == RTW_SECURITY_WEP_PSK))) { + rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE + | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY; rtw_up_sema(&join_user_data->join_sema); - }else if((join_user_data!=NULL)&&((join_user_data->network_info.security_type == RTW_SECURITY_WPA2_AES_PSK) )){ - rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY; + } else if ((join_user_data != NULL) + && ((join_user_data->network_info.security_type + == RTW_SECURITY_WPA2_AES_PSK))) { + rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE + | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY; } } -static void wifi_handshake_done_hdl( char* buf, int buf_len, int flags, void* userdata) -{ - rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY | JOIN_HANDSHAKE_DONE; - if(join_user_data != NULL) +static void wifi_handshake_done_hdl(char* buf, int buf_len, int flags, + void* userdata) { + rtw_join_status = JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED + | JOIN_AUTHENTICATED | JOIN_LINK_READY | JOIN_HANDSHAKE_DONE; + if (join_user_data != NULL) rtw_up_sema(&join_user_data->join_sema); } -static void wifi_disconn_hdl( char* buf, int buf_len, int flags, void* userdata) -{ - if(join_user_data != NULL){ - if(join_user_data->network_info.security_type == RTW_SECURITY_OPEN){ +static void wifi_disconn_hdl(char* buf, int buf_len, int flags, void* userdata) { + if (join_user_data != NULL) { + if (join_user_data->network_info.security_type == RTW_SECURITY_OPEN) { - if(rtw_join_status == JOIN_NO_NETWORKS) + if (rtw_join_status == JOIN_NO_NETWORKS) error_flag = RTW_NONE_NETWORK; - }else if(join_user_data->network_info.security_type == RTW_SECURITY_WEP_PSK){ + } else if (join_user_data->network_info.security_type + == RTW_SECURITY_WEP_PSK) { - if(rtw_join_status == JOIN_NO_NETWORKS) + if (rtw_join_status == JOIN_NO_NETWORKS) error_flag = RTW_NONE_NETWORK; - else if(rtw_join_status == 0) - error_flag = RTW_CONNECT_FAIL; + else if (rtw_join_status == 0) + error_flag = RTW_CONNECT_FAIL; - }else if(join_user_data->network_info.security_type == RTW_SECURITY_WPA2_AES_PSK){ + } else if (join_user_data->network_info.security_type + == RTW_SECURITY_WPA2_AES_PSK) { - if(rtw_join_status ==JOIN_NO_NETWORKS) + if (rtw_join_status == JOIN_NO_NETWORKS) error_flag = RTW_NONE_NETWORK; - else if(rtw_join_status == 0) - error_flag = RTW_CONNECT_FAIL; + else if (rtw_join_status == 0) + error_flag = RTW_CONNECT_FAIL; - else if(rtw_join_status == JOIN_COMPLETE | JOIN_SECURITY_COMPLETE | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY) - error_flag = RTW_WRONG_PASSWORD; + else if (rtw_join_status == JOIN_COMPLETE | JOIN_SECURITY_COMPLETE + | JOIN_ASSOCIATED | JOIN_AUTHENTICATED | JOIN_LINK_READY) + error_flag = RTW_WRONG_PASSWORD; } - - }else{ - if(error_flag == RTW_NO_ERROR) //wifi_disconn_hdl will be dispatched one more time after join_user_data = NULL add by frankie + + } else { + if (error_flag == RTW_NO_ERROR) //wifi_disconn_hdl will be dispatched one more time after join_user_data = NULL add by frankie error_flag = RTW_UNKNOWN; } - if(join_user_data != NULL) + if (join_user_data != NULL) rtw_up_sema(&join_user_data->join_sema); - //printf("\r\nWiFi Disconnect. Error flag is %d.\n", error_flag); +#if CONFIG_DEBUG_LOG > 4 + info_printf("%s: Error flag is %d!\n", __func__, error_flag); +#endif } #if CONFIG_EXAMPLE_WLAN_FAST_CONNECT #define WLAN0_NAME "wlan0" // ????? -void restore_wifi_info_to_flash() -{ +void restore_wifi_info_to_flash() { struct wlan_fast_reconnect * data_to_flash; u32 channel = 0; u8 index = 0; - u8 *ifname[1] = {WLAN0_NAME}; + u8 *ifname[1] = { WLAN0_NAME }; rtw_wifi_setting_t setting; //struct security_priv *psecuritypriv = &padapter->securitypriv; //WLAN_BSSID_EX *pcur_bss = pmlmepriv->cur_network.network; - data_to_flash = (struct wlan_fast_reconnect *)rtw_zmalloc(sizeof(struct wlan_fast_reconnect)); + data_to_flash = (struct wlan_fast_reconnect *) rtw_zmalloc( + sizeof(struct wlan_fast_reconnect)); - if(data_to_flash && p_write_reconnect_ptr){ - if(wifi_get_setting((const char*)ifname[0],&setting) || setting.mode == RTW_MODE_AP){ + if (data_to_flash && p_write_reconnect_ptr) { + if (wifi_get_setting((const char*) ifname[0], &setting) + || setting.mode == RTW_MODE_AP) { printf(" %s():wifi_get_setting fail or ap mode\n", __func__); return; } @@ -418,142 +419,153 @@ void restore_wifi_info_to_flash() rtw_memset(psk_essid[index], 0, sizeof(psk_essid[index])); strncpy(psk_essid[index], setting.ssid, strlen(setting.ssid)); - switch(setting.security_type){ - case RTW_SECURITY_OPEN: - rtw_memset(psk_passphrase[index], 0, sizeof(psk_passphrase[index])); - rtw_memset(wpa_global_PSK[index], 0, sizeof(wpa_global_PSK[index])); - data_to_flash->security_type = RTW_SECURITY_OPEN; - break; - case RTW_SECURITY_WEP_PSK: - channel |= (setting.key_idx) << 28; - rtw_memset(psk_passphrase[index], 0, sizeof(psk_passphrase[index])); - rtw_memset(wpa_global_PSK[index], 0, sizeof(wpa_global_PSK[index])); - rtw_memcpy(psk_passphrase[index], setting.password, sizeof(psk_passphrase[index])); - data_to_flash->security_type = RTW_SECURITY_WEP_PSK; - break; - case RTW_SECURITY_WPA_TKIP_PSK: - data_to_flash->security_type = RTW_SECURITY_WPA_TKIP_PSK; - break; - case RTW_SECURITY_WPA2_AES_PSK: - data_to_flash->security_type = RTW_SECURITY_WPA2_AES_PSK; - break; - default: - break; + switch (setting.security_type) { + case RTW_SECURITY_OPEN: + rtw_memset(psk_passphrase[index], 0, sizeof(psk_passphrase[index])); + rtw_memset(wpa_global_PSK[index], 0, sizeof(wpa_global_PSK[index])); + data_to_flash->security_type = RTW_SECURITY_OPEN; + break; + case RTW_SECURITY_WEP_PSK: + channel |= (setting.key_idx) << 28; + rtw_memset(psk_passphrase[index], 0, sizeof(psk_passphrase[index])); + rtw_memset(wpa_global_PSK[index], 0, sizeof(wpa_global_PSK[index])); + rtw_memcpy(psk_passphrase[index], setting.password, + sizeof(psk_passphrase[index])); + data_to_flash->security_type = RTW_SECURITY_WEP_PSK; + break; + case RTW_SECURITY_WPA_TKIP_PSK: + data_to_flash->security_type = RTW_SECURITY_WPA_TKIP_PSK; + break; + case RTW_SECURITY_WPA2_AES_PSK: + data_to_flash->security_type = RTW_SECURITY_WPA2_AES_PSK; + break; + default: + break; } - memcpy(data_to_flash->psk_essid, psk_essid[index], sizeof(data_to_flash->psk_essid)); + memcpy(data_to_flash->psk_essid, psk_essid[index], + sizeof(data_to_flash->psk_essid)); if (strlen(psk_passphrase64) == 64) { - memcpy(data_to_flash->psk_passphrase, psk_passphrase64, sizeof(data_to_flash->psk_passphrase)); + memcpy(data_to_flash->psk_passphrase, psk_passphrase64, + sizeof(data_to_flash->psk_passphrase)); } else { - memcpy(data_to_flash->psk_passphrase, psk_passphrase[index], sizeof(data_to_flash->psk_passphrase)); + memcpy(data_to_flash->psk_passphrase, psk_passphrase[index], + sizeof(data_to_flash->psk_passphrase)); } - memcpy(data_to_flash->wpa_global_PSK, wpa_global_PSK[index], sizeof(data_to_flash->wpa_global_PSK)); + memcpy(data_to_flash->wpa_global_PSK, wpa_global_PSK[index], + sizeof(data_to_flash->wpa_global_PSK)); memcpy(&(data_to_flash->channel), &channel, 4); //call callback function in user program - p_write_reconnect_ptr((u8 *)data_to_flash, sizeof(struct wlan_fast_reconnect)); + p_write_reconnect_ptr((u8 *) data_to_flash, + sizeof(struct wlan_fast_reconnect)); } - if(data_to_flash) + if (data_to_flash) rtw_free(data_to_flash); } #endif //----------------------------------------------------------------------------// -int wifi_connect( - char *ssid, - rtw_security_t security_type, - char *password, - int ssid_len, - int password_len, - int key_id, - void *semaphore) -{ +int wifi_connect(char *ssid, rtw_security_t security_type, char *password, + int ssid_len, int password_len, int key_id, void *semaphore) { xSemaphoreHandle join_semaphore; rtw_result_t result = RTW_SUCCESS; u8 wep_hex = 0; - u8 wep_pwd[14] = {0}; + u8 wep_pwd[14] = { 0 }; - if((rtw_join_status & JOIN_SIMPLE_CONFIG) || (rtw_join_status & JOIN_AIRKISS)){ + 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 - 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 ) ) )) { - error_flag = RTW_WRONG_PASSWORD; + rtw_join_status = 0; //clear for last connect status + error_flag = RTW_UNKNOWN; //clear for last connect status + 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)))) { + error_flag = RTW_WRONG_PASSWORD; return RTW_INVALID_KEY; } - if ((security_type == RTW_SECURITY_WEP_PSK)|| - (security_type ==RTW_SECURITY_WEP_SHARED)) { - if ((password_len != 5) && (password_len != 13) && - (password_len != 10)&& (password_len != 26)) { - error_flag = RTW_WRONG_PASSWORD; + if ((security_type == RTW_SECURITY_WEP_PSK) + || (security_type == RTW_SECURITY_WEP_SHARED)) { + if ((password_len != 5) && (password_len != 13) && (password_len != 10) + && (password_len != 26)) { + error_flag = RTW_WRONG_PASSWORD; return RTW_INVALID_KEY; } else { - if(password_len == 10) { + if (password_len == 10) { - u32 p[5] = {0}; - u8 i = 0; - sscanf((const char*)password, "%02x%02x%02x%02x%02x", &p[0], &p[1], &p[2], &p[3], &p[4]); - for(i=0; i< 5; i++) - wep_pwd[i] = (u8)p[i]; + u32 p[5] = { 0 }; + u8 i = 0; + sscanf((const char*) password, "%02x%02x%02x%02x%02x", &p[0], + &p[1], &p[2], &p[3], &p[4]); + for (i = 0; i < 5; i++) + wep_pwd[i] = (u8) p[i]; wep_pwd[5] = '\0'; password_len = 5; wep_hex = 1; } else if (password_len == 26) { - u32 p[13] = {0}; + u32 p[13] = { 0 }; u8 i = 0; - sscanf((const char*)password, "%02x%02x%02x%02x%02x%02x%02x"\ - "%02x%02x%02x%02x%02x%02x", &p[0], &p[1], &p[2], &p[3], &p[4],\ - &p[5], &p[6], &p[7], &p[8], &p[9], &p[10], &p[11], &p[12]); - for(i=0; i< 13; i++) - wep_pwd[i] = (u8)p[i]; + sscanf((const char*) password, "%02x%02x%02x%02x%02x%02x%02x" + "%02x%02x%02x%02x%02x%02x", &p[0], &p[1], &p[2], &p[3], + &p[4], &p[5], &p[6], &p[7], &p[8], &p[9], &p[10], + &p[11], &p[12]); + for (i = 0; i < 13; i++) + wep_pwd[i] = (u8) p[i]; wep_pwd[13] = '\0'; password_len = 13; wep_hex = 1; } } } - - internal_join_result_t *join_result = (internal_join_result_t *)rtw_zmalloc(sizeof(internal_join_result_t)); - if(!join_result) { + + internal_join_result_t *join_result = + (internal_join_result_t *) rtw_zmalloc( + sizeof(internal_join_result_t)); + if (!join_result) { +#if CONFIG_DEBUG_LOG > 3 + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return RTW_NOMEM; } join_result->network_info.ssid.len = ssid_len > 32 ? 32 : ssid_len; rtw_memcpy(join_result->network_info.ssid.val, ssid, ssid_len); - + join_result->network_info.password_len = password_len; - if(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) { + if (!join_result->network_info.password) { result = RTW_NOMEM; +#if CONFIG_DEBUG_LOG > 3 + error_printf("%s: Can't malloc memory!\n", __func__); +#endif goto error; } if (0 == wep_hex) - rtw_memcpy(join_result->network_info.password, password, password_len); + rtw_memcpy(join_result->network_info.password, password, + password_len); else - rtw_memcpy(join_result->network_info.password, wep_pwd, password_len); + rtw_memcpy(join_result->network_info.password, wep_pwd, + 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){ + + if (semaphore == NULL) { + rtw_init_sema(&join_result->join_sema, 0); + if (!join_result->join_sema) { result = RTW_NORESOURCE; goto error; } @@ -561,22 +573,24 @@ int wifi_connect( } 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_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); + 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 - if(wifi_connect_local(&join_result->network_info) == 0) - wext_set_ssid(WLAN0_NAME, join_result->network_info.ssid.val, join_result->network_info.ssid.len); + if (wifi_connect_local(&join_result->network_info) == 0) + wext_set_ssid(WLAN0_NAME, join_result->network_info.ssid.val, + join_result->network_info.ssid.len); #endif join_user_data = join_result; - if(semaphore == NULL) { + if (semaphore == NULL) { // for eap connection, timeout should be longer (default value in wpa_supplicant: 60s) #ifdef CONFIG_ENABLE_EAP - if(get_eap_phase()){ + if(get_eap_phase()) { if(rtw_down_timeout_sema( &join_result->join_sema, 60000 ) == RTW_FALSE) { printf("RTW API: Join bss timeout\n"); if(password_len) { @@ -593,18 +607,19 @@ int wifi_connect( } else #endif - if(rtw_down_timeout_sema( &join_result->join_sema, RTW_JOIN_TIMEOUT ) == RTW_FALSE) { + if (rtw_down_timeout_sema(&join_result->join_sema, RTW_JOIN_TIMEOUT) + == RTW_FALSE) { printf("RTW API: Join bss timeout\n"); - if(password_len) { + if (password_len) { rtw_free(join_result->network_info.password); } result = RTW_TIMEOUT; goto error; } else { - if(join_result->network_info.password_len) { + if (join_result->network_info.password_len) { rtw_free(join_result->network_info.password); } - if(wifi_is_connected_to_ap( ) != RTW_SUCCESS) { + if (wifi_is_connected_to_ap() != RTW_SUCCESS) { result = RTW_ERROR; goto error; } @@ -617,97 +632,92 @@ int wifi_connect( restore_wifi_info_to_flash(); #endif -error: - if(semaphore == NULL){ - rtw_free_sema( &join_semaphore); + error: if (semaphore == NULL) { + rtw_free_sema(&join_semaphore); } join_user_data = NULL; rtw_free((u8*)join_result); 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); + 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_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) -{ +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; + 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) { + 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){ + 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 ) ))) { + 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) { + if (password_len) { /* add \0 to the end */ join_result->network_info.password = rtw_zmalloc(password_len + 1); - if(!join_result->network_info.password) { + 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_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_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); + 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{ + if (wifi_connect_local(pWifi) == 0) { + struct { u8 bssid[ETH_ALEN + 2]; void * p; - } bs = {0}; + } bs = { 0 }; memcpy(bs.bssid, pWifi->bssid.octet, ETH_ALEN); - if(pWifi->ssid.len){ + if (pWifi->ssid.len) { bs.bssid[ETH_ALEN] = '#'; bs.bssid[ETH_ALEN + 1] = '@'; bs.p = pWifi; @@ -718,23 +728,24 @@ int wifi_connect_bssid( join_user_data = join_result; - if(semaphore == NULL) { - if(rtw_down_timeout_sema( &join_result->join_sema, RTW_JOIN_TIMEOUT ) == RTW_FALSE) { + 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) { + if (password_len) { rtw_free(join_result->network_info.password); } rtw_free((u8*)join_result); - rtw_free_sema( &join_semaphore); + 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_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) { + if (wifi_is_connected_to_ap() != RTW_SUCCESS) { result = RTW_ERROR; goto error; } @@ -747,79 +758,62 @@ int wifi_connect_bssid( restore_wifi_info_to_flash(); #endif -error: - join_user_data = NULL; + 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); + 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 wifi_disconnect(void) { int ret = 0; //set MAC address last byte to 1 since driver will filter the mac with all 0x00 or 0xff //add extra 2 zero byte for check of #@ in wext_set_bssid() - const __u8 null_bssid[ETH_ALEN + 2] = {0, 0, 0, 0, 0, 1, 0, 0}; + const __u8 null_bssid[ETH_ALEN + 2] = { 0, 0, 0, 0, 0, 1, 0, 0 }; - if (wext_set_bssid(WLAN0_NAME, null_bssid) < 0){ - printf("WEXT: Failed to set bogus BSSID to disconnect\n"); + if (wext_set_bssid(WLAN0_NAME, null_bssid) < 0) { + error_printf("WEXT: Failed to set bogus BSSID to disconnect\n"); ret = -1; } return ret; } //----------------------------------------------------------------------------// -int wifi_is_connected_to_ap( void ) -{ +int wifi_is_connected_to_ap(void) { return rltk_wlan_is_connected_to_ap(); } //----------------------------------------------------------------------------// -int wifi_is_up(rtw_interface_t interface) -{ - if(interface == RTW_AP_INTERFACE) { - if(wifi_mode == RTW_MODE_STA_AP) { - return rltk_wlan_running(WLAN1_IDX); - } - } - +int wifi_is_up(rtw_interface_t interface) { + if (interface == RTW_AP_INTERFACE && wifi_mode == RTW_MODE_STA_AP) + return rltk_wlan_running(WLAN1_IDX); return rltk_wlan_running(WLAN0_IDX); } -int wifi_is_ready_to_transceive(rtw_interface_t interface) -{ - switch ( interface ) - { - case RTW_AP_INTERFACE: - return ( wifi_is_up(interface) == RTW_TRUE ) ? RTW_SUCCESS : RTW_ERROR; +int wifi_is_ready_to_transceive(rtw_interface_t interface) { + switch (interface) { + case RTW_AP_INTERFACE: + return (wifi_is_up(interface) == RTW_TRUE) ? RTW_SUCCESS : RTW_ERROR; - case RTW_STA_INTERFACE: - switch ( error_flag) - { - case RTW_NO_ERROR: + case RTW_STA_INTERFACE: + if (error_flag == RTW_NO_ERROR) return RTW_SUCCESS; - - default: - return RTW_ERROR; - } - default: - return RTW_ERROR; - } + break; + } + return RTW_ERROR; } //----------------------------------------------------------------------------// -int wifi_set_mac_address(char * mac) -{ - char buf[13+17+1]; +int wifi_set_mac_address(char * mac) { + char buf[13 + 17 + 1]; rtw_memset(buf, 0, sizeof(buf)); - snprintf(buf, 13+17, "write_mac %s", mac); + snprintf(buf, 13 + 17, "write_mac %s", mac); return wext_private_command(WLAN0_NAME, buf, SHOW_PRIVATE_OUT); } -int wifi_get_mac_address(char * mac) -{ +int wifi_get_mac_address(char * mac) { int ret = 0; char buf[32]; rtw_memset(buf, 0, sizeof(buf)); @@ -833,20 +827,17 @@ int wifi_get_mac_address(char * mac) } //----------------------------------------------------------------------------// -int wifi_enable_powersave(void) -{ +int wifi_enable_powersave(void) { return wext_enable_powersave(WLAN0_NAME, 1, 1); } -int wifi_disable_powersave(void) -{ +int wifi_disable_powersave(void) { return wext_disable_powersave(WLAN0_NAME); } #if 1 //Not ready //----------------------------------------------------------------------------// -int wifi_get_txpower(int *poweridx) -{ +int wifi_get_txpower(int *poweridx) { int ret; char buf[11]; @@ -861,11 +852,10 @@ int wifi_get_txpower(int *poweridx) return ret; } -int wifi_set_txpower(int poweridx) -{ +int wifi_set_txpower(int poweridx) { int ret; char buf[24]; - + rtw_memset(buf, 0, sizeof(buf)); snprintf(buf, 24, "txpower patha=%d,pathb=%d", poweridx, poweridx); // patha=%d,pathb=%d ? ret = wext_private_command(WLAN0_NAME, buf, SHOW_PRIVATE_OUT); @@ -875,13 +865,13 @@ int wifi_set_txpower(int poweridx) #endif //----------------------------------------------------------------------------// -int wifi_get_associated_client_list(void * client_list_buffer, uint16_t buffer_length) -{ +int wifi_get_associated_client_list(void * client_list_buffer, + uint16_t buffer_length) { const char * ifname = WLAN0_NAME; int ret = 0; char buf[25]; - - if(wifi_mode == RTW_MODE_STA_AP) { + + if (wifi_mode == RTW_MODE_STA_AP) { ifname = WLAN1_NAME; } @@ -893,13 +883,12 @@ int wifi_get_associated_client_list(void * client_list_buffer, uint16_t buffer_l } //----------------------------------------------------------------------------// -int wifi_get_ap_info(rtw_bss_info_t * ap_info, rtw_security_t* security) -{ +int wifi_get_ap_info(rtw_bss_info_t * ap_info, rtw_security_t* security) { const char * ifname = WLAN0_NAME; int ret = 0; char buf[24]; - if(wifi_mode == RTW_MODE_STA_AP) { + if (wifi_mode == RTW_MODE_STA_AP) { ifname = WLAN1_NAME; } @@ -917,14 +906,12 @@ int wifi_get_ap_info(rtw_bss_info_t * ap_info, rtw_security_t* security) return ret; } -int wifi_get_drv_ability(uint32_t *ability) -{ +int wifi_get_drv_ability(uint32_t *ability) { return wext_get_drv_ability(WLAN0_NAME, ability); } //----------------------------------------------------------------------------// -int wifi_set_country(rtw_country_code_t country_code) -{ +int wifi_set_country(rtw_country_code_t country_code) { int ret; ret = wext_set_country(WLAN0_NAME, country_code); @@ -933,12 +920,11 @@ int wifi_set_country(rtw_country_code_t country_code) } //----------------------------------------------------------------------------// -int wifi_set_channel_plan(uint8_t channel_plan) -{ +int wifi_set_channel_plan(uint8_t channel_plan) { const char * ifname = WLAN0_NAME; int ret = 0; char buf[24]; - + rtw_memset(buf, 0, sizeof(buf)); snprintf(buf, 24, "set_ch_plan %x", channel_plan); ret = wext_private_command(ifname, buf, SHOW_PRIVATE_OUT); @@ -946,113 +932,104 @@ int wifi_set_channel_plan(uint8_t channel_plan) } //----------------------------------------------------------------------------// -int wifi_get_rssi(int *pRSSI) -{ +int wifi_get_rssi(int *pRSSI) { return wext_get_rssi(WLAN0_NAME, pRSSI); } //----------------------------------------------------------------------------// -int wifi_set_channel(int channel) -{ +int wifi_set_channel(int channel) { return wext_set_channel(WLAN0_NAME, channel); } -int wifi_get_channel(int *channel) -{ - return wext_get_channel(WLAN0_NAME, (u8*)channel); +int wifi_get_channel(int *channel) { + return wext_get_channel(WLAN0_NAME, (u8*) channel); } //----------------------------------------------------------------------------// -int wifi_register_multicast_address(rtw_mac_t *mac) -{ +int wifi_register_multicast_address(rtw_mac_t *mac) { return wext_register_multicast_address(WLAN0_NAME, mac); } -int wifi_unregister_multicast_address(rtw_mac_t *mac) -{ +int wifi_unregister_multicast_address(rtw_mac_t *mac) { return wext_unregister_multicast_address(WLAN0_NAME, mac); } //----------------------------------------------------------------------------// -void wifi_set_mib(void) -{ +void wifi_set_mib(void) { // adaptivity wext_set_adaptivity(RTW_ADAPTIVITY_DISABLE); } //----------------------------------------------------------------------------// -int wifi_rf_on(void) -{ +int wifi_rf_on(void) { int ret; ret = rltk_wlan_rf_on(); return ret; } //----------------------------------------------------------------------------// -int wifi_rf_off(void) -{ +int wifi_rf_off(void) { int ret; ret = rltk_wlan_rf_off(); return ret; } //----------------------------------------------------------------------------// -int wifi_on(rtw_mode_t mode) -{ +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 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)) { + + if (rltk_wlan_running(WLAN0_IDX)) { printf("WIFI is already running\n"); return 0; } - if(event_init == 0){ + if (event_init == 0) { init_event_callback_list(); event_init = 1; } - + wifi_mode = mode; - if(mode == RTW_MODE_STA_AP) + if (mode == RTW_MODE_STA_AP) devnum = 2; // set wifi mib wifi_set_mib(); printf("Initializing WIFI ...\n"); - for(idx=0;idxBSSID.octet, (*result_ptr)->BSSID.octet)){ - if((*result_ptr)->signal_strength > scan_result_handler_ptr.pap_details[i]->signal_strength){ - temp = scan_result_handler_ptr.pap_details[i]; - for(j = i-1; j >= 0; j--){ - if(scan_result_handler_ptr.pap_details[j]->signal_strength >= (*result_ptr)->signal_strength) - break; + for (i = 0; i < scan_result_handler_ptr.scan_cnt; i++) { + if (CMP_MAC(scan_result_handler_ptr.pap_details[i]->BSSID.octet, + (*result_ptr)->BSSID.octet)) { + if ((*result_ptr)->signal_strength + > scan_result_handler_ptr.pap_details[i]->signal_strength) { + temp = scan_result_handler_ptr.pap_details[i]; + for (j = i - 1; j >= 0; j--) { + if (scan_result_handler_ptr.pap_details[j]->signal_strength + >= (*result_ptr)->signal_strength) + break; else - scan_result_handler_ptr.pap_details[j+1] = scan_result_handler_ptr.pap_details[j]; - } - scan_result_handler_ptr.pap_details[j+1] = temp; - scan_result_handler_ptr.pap_details[j+1]->signal_strength = (*result_ptr)->signal_strength; + scan_result_handler_ptr.pap_details[j + 1] = + scan_result_handler_ptr.pap_details[j]; + } + scan_result_handler_ptr.pap_details[j + 1] = temp; + scan_result_handler_ptr.pap_details[j + 1]->signal_strength = + (*result_ptr)->signal_strength; } memset(*result_ptr, 0, sizeof(rtw_scan_result_t)); return; @@ -1281,46 +1258,61 @@ void wifi_scan_each_report_hdl( char* buf, int buf_len, int flags, void* userdat } scan_result_handler_ptr.scan_cnt++; - - if(scan_result_handler_ptr.scan_cnt > scan_result_handler_ptr.max_ap_size){ + + if (scan_result_handler_ptr.scan_cnt + > scan_result_handler_ptr.max_ap_size) { scan_result_handler_ptr.scan_cnt = scan_result_handler_ptr.max_ap_size; - if((*result_ptr)->signal_strength > scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size-1]->signal_strength){ - rtw_memcpy(scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size-1], *result_ptr, sizeof(rtw_scan_result_t)); - temp = scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size -1]; - }else + if ((*result_ptr)->signal_strength + > scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size + - 1]->signal_strength) { + rtw_memcpy( + scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size + - 1], *result_ptr, sizeof(rtw_scan_result_t)); + temp = + scan_result_handler_ptr.pap_details[scan_result_handler_ptr.max_ap_size + - 1]; + } else return; - }else{ - rtw_memcpy(&scan_result_handler_ptr.ap_details[scan_result_handler_ptr.scan_cnt-1], *result_ptr, sizeof(rtw_scan_result_t)); + } else { + rtw_memcpy( + &scan_result_handler_ptr.ap_details[scan_result_handler_ptr.scan_cnt + - 1], *result_ptr, sizeof(rtw_scan_result_t)); } - for(i=0; i< scan_result_handler_ptr.scan_cnt-1; i++){ - if((*result_ptr)->signal_strength > scan_result_handler_ptr.pap_details[i]->signal_strength) + for (i = 0; i < scan_result_handler_ptr.scan_cnt - 1; i++) { + if ((*result_ptr)->signal_strength + > scan_result_handler_ptr.pap_details[i]->signal_strength) break; } insert_pos = i; - for(i = scan_result_handler_ptr.scan_cnt-1; i>insert_pos; i--) - scan_result_handler_ptr.pap_details[i] = scan_result_handler_ptr.pap_details[i-1]; + for (i = scan_result_handler_ptr.scan_cnt - 1; i > insert_pos; i--) + scan_result_handler_ptr.pap_details[i] = + scan_result_handler_ptr.pap_details[i - 1]; - if(temp != NULL) + if (temp != NULL) scan_result_handler_ptr.pap_details[insert_pos] = temp; else - scan_result_handler_ptr.pap_details[insert_pos] = &scan_result_handler_ptr.ap_details[scan_result_handler_ptr.scan_cnt-1]; + scan_result_handler_ptr.pap_details[insert_pos] = + &scan_result_handler_ptr.ap_details[scan_result_handler_ptr.scan_cnt + - 1]; rtw_memset(*result_ptr, 0, sizeof(rtw_scan_result_t)); } -void wifi_scan_done_hdl( char* buf, int buf_len, int flags, void* userdata) -{ +void wifi_scan_done_hdl(char* buf, int buf_len, int flags, void* userdata) { int i = 0; rtw_scan_handler_result_t scan_result_report; - for(i=0; ibuf, pscan_buf->buf_len, flags); - }else{ - wifi_reg_event_handler(WIFI_EVENT_SCAN_RESULT_REPORT, wifi_scan_each_report_hdl, NULL); + if (result_ptr != NULL) { + pscan_buf = (scan_buf_arg *) result_ptr; + ret = wext_set_scan(WLAN0_NAME, (char*) pscan_buf->buf, + pscan_buf->buf_len, flags); + } else { + 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); ret = wext_set_scan(WLAN0_NAME, NULL, 0, flags); } - - if(ret == 0) { - if(result_ptr != NULL){ + + if (ret == 0) { + if (result_ptr != NULL) { ret = wext_get_scan(WLAN0_NAME, pscan_buf->buf, pscan_buf->buf_len); } } return ret; } -int wifi_scan_networks_with_ssid(int (results_handler)(char*buf, int buflen, char *ssid, void *user_data), - OUT void* user_data, IN int scan_buflen, IN char* ssid, IN int ssid_len) -{ +int wifi_scan_networks_with_ssid( + int (results_handler)(char*buf, int buflen, char *ssid, void *user_data), + OUT void* user_data, IN int scan_buflen, IN char* ssid, IN int ssid_len) { int scan_cnt = 0, add_cnt = 0; scan_buf_arg scan_buf; int ret; scan_buf.buf_len = scan_buflen; - scan_buf.buf = (char*)pvPortMalloc(scan_buf.buf_len); - if(!scan_buf.buf){ + scan_buf.buf = (char*) pvPortMalloc(scan_buf.buf_len); + if (!scan_buf.buf) { printf("ERROR: Can't malloc memory(%d)\n", scan_buf.buf_len); return RTW_NOMEM; } //set ssid memset(scan_buf.buf, 0, scan_buf.buf_len); memcpy(scan_buf.buf, &ssid_len, sizeof(int)); - memcpy(scan_buf.buf+sizeof(int), ssid, ssid_len); + memcpy(scan_buf.buf + sizeof(int), ssid, ssid_len); //Scan channel - if((scan_cnt = (wifi_scan(RTW_SCAN_TYPE_ACTIVE, RTW_BSS_TYPE_ANY, &scan_buf))) < 0){ + if ((scan_cnt = (wifi_scan(RTW_SCAN_TYPE_ACTIVE, RTW_BSS_TYPE_ANY, + &scan_buf))) < 0) { printf("ERROR: wifi scan failed\n"); ret = RTW_ERROR; - }else{ - if(NULL == results_handler) - { + } else { + if (NULL == results_handler) { int plen = 0; - while(plen < scan_buf.buf_len){ + while (plen < scan_buf.buf_len) { int len, rssi, ssid_len, i, security_mode; int wps_password_id; char *mac, *ssid; //u8 *security_mode; printf("\n"); // len - len = (int)*(scan_buf.buf + plen); + len = (int) *(scan_buf.buf + plen); printf("len = %d,\t", len); // check end - if(len == 0) break; + if (len == 0) + break; // mac mac = scan_buf.buf + plen + 1; printf("mac = "); - for(i=0; i<6; i++) + for (i = 0; i < 6; i++) printf("%02x ", (u8)*(mac+i)); printf(",\t"); // rssi - rssi = *(int*)(scan_buf.buf + plen + 1 + 6); + rssi = *(int*) (scan_buf.buf + plen + 1 + 6); printf(" rssi = %d,\t", rssi); // security_mode - security_mode = (int)*(scan_buf.buf + plen + 1 + 6 + 4); + security_mode = (int) *(scan_buf.buf + plen + 1 + 6 + 4); switch (security_mode) { - case IW_ENCODE_ALG_NONE: - printf("sec = open ,\t"); - break; - case IW_ENCODE_ALG_WEP: - printf("sec = wep ,\t"); - break; - case IW_ENCODE_ALG_CCMP: - printf("sec = wpa/wpa2,\t"); - break; + case IW_ENCODE_ALG_NONE: + printf("sec = open ,\t"); + break; + case IW_ENCODE_ALG_WEP: + printf("sec = wep ,\t"); + break; + case IW_ENCODE_ALG_CCMP: + printf("sec = wpa/wpa2,\t"); + break; } // password id - wps_password_id = (int)*(scan_buf.buf + plen + 1 + 6 + 4 + 1); + wps_password_id = (int) *(scan_buf.buf + plen + 1 + 6 + 4 + 1); printf("wps password id = %d,\t", wps_password_id); - - printf("channel = %d,\t", *(scan_buf.buf + plen + 1 + 6 + 4 + 1 + 1)); + + printf("channel = %d,\t", + *(scan_buf.buf + plen + 1 + 6 + 4 + 1 + 1)); // ssid ssid_len = len - 1 - 6 - 4 - 1 - 1 - 1; ssid = scan_buf.buf + plen + 1 + 6 + 4 + 1 + 1 + 1; printf("ssid = "); - for(i=0; i 0) - { + while (scan_result_handler_ptr.scan_running && count > 0) { rtw_msleep_os(20); - count --; + count--; } - if(count == 0){ - printf("[%d]WiFi: Scan is running. Wait 2s timeout.\n", rtw_get_current_time()); + if (count == 0) { + printf("[%d]WiFi: Scan is running. Wait 2s timeout.\n", + rtw_get_current_time()); return RTW_TIMEOUT; } } @@ -1486,131 +1482,133 @@ int wifi_scan_networks(rtw_scan_result_handler_t results_handler, void* user_dat #endif scan_result_handler_ptr.gscan_result_handler = results_handler; - + scan_result_handler_ptr.max_ap_size = max_ap_size; - scan_result_handler_ptr.ap_details = (rtw_scan_result_t*)rtw_zmalloc(max_ap_size*sizeof(rtw_scan_result_t)); - if(scan_result_handler_ptr.ap_details == NULL){ + scan_result_handler_ptr.ap_details = (rtw_scan_result_t*) rtw_zmalloc( + max_ap_size * sizeof(rtw_scan_result_t)); + if (scan_result_handler_ptr.ap_details == NULL) { goto err_exit; } - rtw_memset(scan_result_handler_ptr.ap_details, 0, max_ap_size*sizeof(rtw_scan_result_t)); + rtw_memset(scan_result_handler_ptr.ap_details, 0, + max_ap_size * sizeof(rtw_scan_result_t)); - scan_result_handler_ptr.pap_details = (rtw_scan_result_t**)rtw_zmalloc(max_ap_size*sizeof(rtw_scan_result_t*)); - if(scan_result_handler_ptr.pap_details == NULL) + scan_result_handler_ptr.pap_details = (rtw_scan_result_t**) rtw_zmalloc( + max_ap_size * sizeof(rtw_scan_result_t*)); + if (scan_result_handler_ptr.pap_details == NULL) goto error2_with_result_ptr; rtw_memset(scan_result_handler_ptr.pap_details, 0, max_ap_size); - + scan_result_handler_ptr.scan_cnt = 0; scan_result_handler_ptr.scan_complete = RTW_FALSE; scan_result_handler_ptr.user_data = user_data; - if (wifi_scan( RTW_SCAN_COMMAMD<<4 | RTW_SCAN_TYPE_ACTIVE, RTW_BSS_TYPE_ANY, NULL) != RTW_SUCCESS) - { + if (wifi_scan(RTW_SCAN_COMMAMD << 4 | RTW_SCAN_TYPE_ACTIVE, + RTW_BSS_TYPE_ANY, NULL) != RTW_SUCCESS) { goto error1_with_result_ptr; } return RTW_SUCCESS; -error1_with_result_ptr: + error1_with_result_ptr: rtw_free((u8*)scan_result_handler_ptr.pap_details); scan_result_handler_ptr.pap_details = NULL; - -error2_with_result_ptr: + + error2_with_result_ptr: rtw_free((u8*)scan_result_handler_ptr.ap_details); scan_result_handler_ptr.ap_details = NULL; -err_exit: - rtw_memset((void *)&scan_result_handler_ptr, 0, sizeof(scan_result_handler_ptr)); + err_exit: rtw_memset((void *) &scan_result_handler_ptr, 0, + sizeof(scan_result_handler_ptr)); return RTW_ERROR; } //----------------------------------------------------------------------------// -int wifi_set_pscan_chan(__u8 * channel_list,__u8 * pscan_config, __u8 length) -{ - if(channel_list) - return wext_set_pscan_channel(WLAN0_NAME, channel_list, pscan_config, length); +int wifi_set_pscan_chan(__u8 * channel_list, __u8 * pscan_config, __u8 length) { + if (channel_list) + return wext_set_pscan_channel(WLAN0_NAME, channel_list, pscan_config, + length); else - return -1; + return -1; } //----------------------------------------------------------------------------// -int wifi_get_setting(const char *ifname, rtw_wifi_setting_t *pSetting) -{ +int wifi_get_setting(const char *ifname, rtw_wifi_setting_t *pSetting) { int ret = 0; int mode = 0; unsigned short security = 0; memset(pSetting, 0, sizeof(rtw_wifi_setting_t)); - if(wext_get_mode(ifname, &mode) < 0) + if (wext_get_mode(ifname, &mode) < 0) ret = -1; - switch(mode) { - case IW_MODE_MASTER: - pSetting->mode = RTW_MODE_AP; - break; - case IW_MODE_INFRA: - default: - pSetting->mode = RTW_MODE_STA; - break; + switch (mode) { + case IW_MODE_MASTER: + pSetting->mode = RTW_MODE_AP; + break; + case IW_MODE_INFRA: + default: + pSetting->mode = RTW_MODE_STA; + break; //default: - //printf("\r\n%s(): Unknown mode %d\n", __func__, mode); - //break; + //printf("\r\n%s(): Unknown mode %d\n", __func__, mode); + //break; } - if(wext_get_ssid(ifname, pSetting->ssid) < 0) + if (wext_get_ssid(ifname, pSetting->ssid) < 0) ret = -1; - if(wext_get_channel(ifname, &pSetting->channel) < 0) + if (wext_get_channel(ifname, &pSetting->channel) < 0) ret = -1; - if(wext_get_enc_ext(ifname, &security, &pSetting->key_idx, pSetting->password) < 0) + if (wext_get_enc_ext(ifname, &security, &pSetting->key_idx, + pSetting->password) < 0) ret = -1; - switch(security){ - case IW_ENCODE_ALG_NONE: - pSetting->security_type = RTW_SECURITY_OPEN; - break; - case IW_ENCODE_ALG_WEP: - pSetting->security_type = RTW_SECURITY_WEP_PSK; - break; - case IW_ENCODE_ALG_TKIP: - pSetting->security_type = RTW_SECURITY_WPA_TKIP_PSK; - break; - case IW_ENCODE_ALG_CCMP: - pSetting->security_type = RTW_SECURITY_WPA2_AES_PSK; - break; - default: - break; + switch (security) { + case IW_ENCODE_ALG_NONE: + pSetting->security_type = RTW_SECURITY_OPEN; + break; + case IW_ENCODE_ALG_WEP: + pSetting->security_type = RTW_SECURITY_WEP_PSK; + break; + case IW_ENCODE_ALG_TKIP: + pSetting->security_type = RTW_SECURITY_WPA_TKIP_PSK; + break; + case IW_ENCODE_ALG_CCMP: + pSetting->security_type = RTW_SECURITY_WPA2_AES_PSK; + break; + default: + break; } - if(security == IW_ENCODE_ALG_TKIP || security == IW_ENCODE_ALG_CCMP) - if(wext_get_passphrase(ifname, pSetting->password) < 0) + if (security == IW_ENCODE_ALG_TKIP || security == IW_ENCODE_ALG_CCMP) + if (wext_get_passphrase(ifname, pSetting->password) < 0) ret = -1; return ret; } //----------------------------------------------------------------------------// -int wifi_show_setting(const char *ifname, rtw_wifi_setting_t *pSetting) -{ +int wifi_show_setting(const char *ifname, rtw_wifi_setting_t *pSetting) { int ret = 0; - printf("\nWIFI %s Setting:\n==============================\n",ifname); + printf("\nWIFI %s Setting:\n==============================\n", ifname); - switch(pSetting->mode) { - case RTW_MODE_AP: + switch (pSetting->mode) { + case RTW_MODE_AP: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("AP,"); + at_printf("AP,"); #endif - printf("\tMODE => AP\n"); - break; - case RTW_MODE_STA: + printf("\tMODE => AP\n"); + break; + case RTW_MODE_STA: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("STA,"); + at_printf("STA,"); #endif - printf("\tMODE => STATION\n"); - break; - default: + printf("\tMODE => STATION\n"); + break; + default: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("UNKNOWN,"); + at_printf("UNKNOWN,"); #endif - printf("\tMODE => UNKNOWN\n"); + printf("\tMODE => UNKNOWN\n"); } #if CONFIG_EXAMPLE_UART_ATCMD at_printf("%s,%d,", pSetting->ssid, pSetting->channel); @@ -1618,37 +1616,37 @@ int wifi_show_setting(const char *ifname, rtw_wifi_setting_t *pSetting) printf("\tSSID => %s\n", pSetting->ssid); printf("\tCHANNEL => %d\n", pSetting->channel); - switch(pSetting->security_type) { - case RTW_SECURITY_OPEN: + switch (pSetting->security_type) { + case RTW_SECURITY_OPEN: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("OPEN,"); + at_printf("OPEN,"); #endif - printf("\tSECURITY => OPEN\n"); - break; - case RTW_SECURITY_WEP_PSK: + printf("\tSECURITY => OPEN\n"); + break; + case RTW_SECURITY_WEP_PSK: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("WEP,%d,", pSetting->key_idx); + at_printf("WEP,%d,", pSetting->key_idx); #endif - printf("\tSECURITY => WEP\n"); - printf("\tKEY INDEX => %d\n", pSetting->key_idx); - break; - case RTW_SECURITY_WPA_TKIP_PSK: + printf("\tSECURITY => WEP\n"); + printf("\tKEY INDEX => %d\n", pSetting->key_idx); + break; + case RTW_SECURITY_WPA_TKIP_PSK: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("TKIP,"); + at_printf("TKIP,"); #endif - printf("\tSECURITY => TKIP\n"); - break; - case RTW_SECURITY_WPA2_AES_PSK: + printf("\tSECURITY => TKIP\n"); + break; + case RTW_SECURITY_WPA2_AES_PSK: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("AES,"); + at_printf("AES,"); #endif - printf("\tSECURITY => AES\n"); - break; - default: + printf("\tSECURITY => AES\n"); + break; + default: #if CONFIG_EXAMPLE_UART_ATCMD - at_printf("UNKNOWN,"); + at_printf("UNKNOWN,"); #endif - printf("\tSECURITY => UNKNOWN\n"); + printf("\tSECURITY => UNKNOWN\n"); } #if CONFIG_EXAMPLE_UART_ATCMD @@ -1661,60 +1659,54 @@ int wifi_show_setting(const char *ifname, rtw_wifi_setting_t *pSetting) } //----------------------------------------------------------------------------// -int wifi_set_network_mode(rtw_network_mode_t mode) -{ - if((mode == RTW_NETWORK_B) || (mode == RTW_NETWORK_BG) || (mode == RTW_NETWORK_BGN)) +int wifi_set_network_mode(rtw_network_mode_t mode) { + if ((mode == RTW_NETWORK_B) || (mode == RTW_NETWORK_BG) + || (mode == RTW_NETWORK_BGN)) return rltk_wlan_wireless_mode((unsigned char) mode); return -1; } -int wifi_set_wps_phase(unsigned char is_trigger_wps) -{ +int wifi_set_wps_phase(unsigned char is_trigger_wps) { return rltk_wlan_set_wps_phase(is_trigger_wps); } //----------------------------------------------------------------------------// -int wifi_set_promisc(rtw_rcr_level_t enabled, void (*callback)(unsigned char*, unsigned int, void*), unsigned char len_used) -{ +int wifi_set_promisc(rtw_rcr_level_t enabled, + void (*callback)(unsigned char*, unsigned int, void*), + unsigned char len_used) { return promisc_set(enabled, callback, len_used); } -void wifi_enter_promisc_mode(){ +void wifi_enter_promisc_mode() { int mode = 0; unsigned char ssid[33]; - if(wifi_mode == RTW_MODE_STA_AP){ + if (wifi_mode == RTW_MODE_STA_AP) { wifi_off(); - vTaskDelay(wifi_test_timeout_step_ms/portTICK_RATE_MS); + vTaskDelay(wifi_test_timeout_step_ms / portTICK_RATE_MS); wifi_on(RTW_MODE_PROMISC); - }else{ + } else { wext_get_mode(WLAN0_NAME, &mode); - switch(mode) { - case IW_MODE_MASTER: //In AP mode - //rltk_wlan_deinit(); - wifi_off();//modified by Chris Yang for iNIC - vTaskDelay(wifi_test_timeout_step_ms/portTICK_RATE_MS); - //rltk_wlan_init(0, RTW_MODE_PROMISC); - //rltk_wlan_start(0); - wifi_on(RTW_MODE_PROMISC); - break; - case IW_MODE_INFRA: //In STA mode - if(wext_get_ssid(WLAN0_NAME, ssid) > 0) - wifi_disconnect(); + switch (mode) { + case IW_MODE_MASTER: //In AP mode + //rltk_wlan_deinit(); + wifi_off(); //modified by Chris Yang for iNIC + vTaskDelay(wifi_test_timeout_step_ms / portTICK_RATE_MS); + //rltk_wlan_init(0, RTW_MODE_PROMISC); + //rltk_wlan_start(0); + wifi_on(RTW_MODE_PROMISC); + break; + case IW_MODE_INFRA: //In STA mode + if (wext_get_ssid(WLAN0_NAME, ssid) > 0) + wifi_disconnect(); } } } -int wifi_restart_ap( - unsigned char *ssid, - rtw_security_t security_type, - unsigned char *password, - int ssid_len, - int password_len, - int channel) -{ +int wifi_restart_ap(unsigned char *ssid, rtw_security_t security_type, + unsigned char *password, int ssid_len, int password_len, int channel) { unsigned char idx = 0; struct ip_addr ipaddr; struct ip_addr netmask; @@ -1725,33 +1717,34 @@ int wifi_restart_ap( int sta_linked = 0; #endif - if(rltk_wlan_running(WLAN1_IDX)){ + if (rltk_wlan_running(WLAN1_IDX)) { idx = 1; } - + // stop dhcp server dhcps_deinit(); #ifdef CONFIG_CONCURRENT_MODE - if(idx > 0){ + if (idx > 0) { sta_linked = wifi_get_setting(WLAN0_NAME, &setting); wifi_off(); - vTaskDelay(wifi_test_timeout_step_ms/portTICK_RATE_MS); + vTaskDelay(wifi_test_timeout_step_ms / portTICK_RATE_MS); wifi_on(RTW_MODE_STA_AP); - } - else + } else #endif { IP4_ADDR(&ipaddr, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); - IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1 , NETMASK_ADDR2, NETMASK_ADDR3); + IP4_ADDR(&netmask, NETMASK_ADDR0, NETMASK_ADDR1, NETMASK_ADDR2, + NETMASK_ADDR3); IP4_ADDR(&gw, GW_ADDR0, GW_ADDR1, GW_ADDR2, GW_ADDR3); - netif_set_addr(pnetif, &ipaddr, &netmask,&gw); + netif_set_addr(pnetif, &ipaddr, &netmask, &gw); wifi_off(); - vTaskDelay(wifi_test_timeout_step_ms/portTICK_RATE_MS); - wifi_on(RTW_MODE_AP); + vTaskDelay(wifi_test_timeout_step_ms / portTICK_RATE_MS); + wifi_on(RTW_MODE_AP); } // start ap - if(wifi_start_ap((char*)ssid, security_type, (char*)password, ssid_len, password_len, channel) < 0) { + if (wifi_start_ap((char*) ssid, security_type, (char*) password, ssid_len, + password_len, channel) < 0) { printf("ERROR: Operation failed!\n"); return -1; } @@ -1761,20 +1754,17 @@ int wifi_restart_ap( #endif #ifdef CONFIG_CONCURRENT_MODE // connect to ap if wlan0 was linked with ap - if(idx > 0 && sta_linked == 0){ + if (idx > 0 && sta_linked == 0) { int ret; - printf("AP: ssid=%s\n", (char*)setting.ssid); + printf("AP: ssid=%s\n", (char* )setting.ssid); printf("AP: security_type=%d\n", setting.security_type); - printf("AP: password=%s\n", (char*)setting.password); + printf("AP: password=%s\n", (char* )setting.password); printf("AP: key_idx =%d\n", setting.key_idx); - ret = wifi_connect((char*)setting.ssid, - setting.security_type, - (char*)setting.password, - strlen((char*)setting.ssid), - strlen((char*)setting.password), - setting.key_idx, - NULL); - if(ret == RTW_SUCCESS) { + ret = wifi_connect((char*) setting.ssid, setting.security_type, + (char*) setting.password, strlen((char* )setting.ssid), + strlen((char* )setting.password), setting.key_idx, + NULL); + if (ret == RTW_SUCCESS) { #if CONFIG_DHCP_CLIENT /* Start DHCPClient */ LwIP_DHCP(0, DHCP_START); @@ -1796,7 +1786,8 @@ int wifi_restart_ap( } #if CONFIG_AUTO_RECONNECT -extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char*, int, char*, int, int); +extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char*, int, char*, int, + int); struct wifi_autoreconnect_param { rtw_security_t security_type; @@ -1807,17 +1798,19 @@ struct wifi_autoreconnect_param { int key_id; }; -static void wifi_autoreconnect_thread(void *param) -{ +static void wifi_autoreconnect_thread(void *param) { int ret = RTW_ERROR; - struct wifi_autoreconnect_param *reconnect_param = (struct wifi_autoreconnect_param *) param; + struct wifi_autoreconnect_param *reconnect_param = + (struct wifi_autoreconnect_param *) param; printf("auto reconnect ...\n"); - ret = wifi_connect(reconnect_param->ssid, reconnect_param->security_type, reconnect_param->password, - reconnect_param->ssid_len, reconnect_param->password_len, reconnect_param->key_id, NULL); - if(ret == RTW_SUCCESS) { + ret = wifi_connect(reconnect_param->ssid, reconnect_param->security_type, + reconnect_param->password, reconnect_param->ssid_len, + reconnect_param->password_len, reconnect_param->key_id, NULL); + if (ret == RTW_SUCCESS) { #if CONFIG_LWIP_LAYER + #if ATCMD_VER == ATVER_2 - if (dhcp_mode_sta == 2){ + if (dhcp_mode_sta == 2) { struct netif * pnetif = &xnetif[0]; LwIP_UseStaticIP(pnetif); dhcps_init(pnetif); @@ -1828,7 +1821,7 @@ static void wifi_autoreconnect_thread(void *param) LwIP_DHCP(0, DHCP_START); #if LWIP_AUTOIP uint8_t *ip = LwIP_GetIP(&xnetif[0]); - if((ip[0] == 0) && (ip[1] == 0) && (ip[2] == 0) && (ip[3] == 0)) { + if ((ip[0] == 0) && (ip[1] == 0) && (ip[2] == 0) && (ip[3] == 0)) { printf("IPv4 AUTOIP ...\n"); LwIP_AUTOIP(&xnetif[0]); } @@ -1843,11 +1836,8 @@ static void wifi_autoreconnect_thread(void *param) vTaskDelete(NULL); } -void wifi_autoreconnect_hdl(rtw_security_t security_type, - char *ssid, int ssid_len, - char *password, int password_len, - int key_id) -{ +void wifi_autoreconnect_hdl(rtw_security_t security_type, char *ssid, + int ssid_len, char *password, int password_len, int key_id) { static struct wifi_autoreconnect_param param; param.security_type = security_type; param.ssid = ssid; @@ -1855,24 +1845,22 @@ void wifi_autoreconnect_hdl(rtw_security_t security_type, param.password = password; param.password_len = password_len; param.key_id = key_id; - xTaskCreate(wifi_autoreconnect_thread, (const char *)"wifi_autoreconnect", 512, ¶m, tskIDLE_PRIORITY + 1, NULL); + xTaskCreate(wifi_autoreconnect_thread, (const char * )"st_recon", 400, + ¶m, tskIDLE_PRIORITY + 1, NULL); } -int wifi_config_autoreconnect(__u8 mode, __u8 retyr_times, __u16 timeout) -{ - p_wlan_autoreconnect_hdl = wifi_autoreconnect_hdl; - return wext_set_autoreconnect(WLAN0_NAME, mode, retyr_times, timeout); +int wifi_config_autoreconnect(__u8 mode, __u8 retyr_times, __u16 timeout) { + p_wlan_autoreconnect_hdl = wifi_autoreconnect_hdl; + return wext_set_autoreconnect(WLAN0_NAME, mode, retyr_times, timeout); } -int wifi_set_autoreconnect(__u8 mode) -{ +int wifi_set_autoreconnect(__u8 mode) { p_wlan_autoreconnect_hdl = wifi_autoreconnect_hdl; return wifi_config_autoreconnect(mode, 3, 5);//default retry 2 times(limit is 3), timeout 5 seconds } -int wifi_get_autoreconnect(__u8 *mode) -{ - return wext_get_autoreconnect(WLAN0_NAME, mode); +int wifi_get_autoreconnect(__u8 *mode) { + return wext_get_autoreconnect(WLAN0_NAME, mode); } #endif @@ -1906,19 +1894,15 @@ int wifi_get_autoreconnect(__u8 *mode) * } */ -int wifi_add_custom_ie(void *cus_ie, int ie_num) -{ +int wifi_add_custom_ie(void *cus_ie, int ie_num) { return wext_add_custom_ie(WLAN0_NAME, cus_ie, ie_num); } - -int wifi_update_custom_ie(void *cus_ie, int ie_index) -{ +int wifi_update_custom_ie(void *cus_ie, int ie_index) { return wext_update_custom_ie(WLAN0_NAME, cus_ie, ie_index); } -int wifi_del_custom_ie() -{ +int wifi_del_custom_ie() { return wext_del_custom_ie(WLAN0_NAME); } @@ -1926,44 +1910,39 @@ int wifi_del_custom_ie() #ifdef CONFIG_PROMISC extern void promisc_init_packet_filter(void); -extern int promisc_add_packet_filter(u8 filter_id, rtw_packet_filter_pattern_t *patt, rtw_packet_filter_rule_e rule); +extern int promisc_add_packet_filter(u8 filter_id, + rtw_packet_filter_pattern_t *patt, rtw_packet_filter_rule_e rule); extern int promisc_enable_packet_filter(u8 filter_id); extern int promisc_disable_packet_filter(u8 filter_id); extern int promisc_remove_packet_filter(u8 filter_id); -void wifi_init_packet_filter() -{ +void wifi_init_packet_filter() { promisc_init_packet_filter(); } -int wifi_add_packet_filter(unsigned char filter_id, rtw_packet_filter_pattern_t *patt, rtw_packet_filter_rule_e rule) -{ +int wifi_add_packet_filter(unsigned char filter_id, + rtw_packet_filter_pattern_t *patt, rtw_packet_filter_rule_e rule) { return promisc_add_packet_filter(filter_id, patt, rule); } -int wifi_enable_packet_filter(unsigned char filter_id) -{ +int wifi_enable_packet_filter(unsigned char filter_id) { return promisc_enable_packet_filter(filter_id); } -int wifi_disable_packet_filter(unsigned char filter_id) -{ +int wifi_disable_packet_filter(unsigned char filter_id) { return promisc_disable_packet_filter(filter_id); } -int wifi_remove_packet_filter(unsigned char filter_id) -{ +int wifi_remove_packet_filter(unsigned char filter_id) { return promisc_remove_packet_filter(filter_id); } #endif #ifdef CONFIG_AP_MODE -int wifi_enable_forwarding(void) -{ +int wifi_enable_forwarding(void) { return wext_enable_forwarding(WLAN0_NAME); } -int wifi_disable_forwarding(void) -{ +int wifi_disable_forwarding(void) { return wext_disable_forwarding(WLAN0_NAME); } #endif @@ -1972,11 +1951,45 @@ int wifi_disable_forwarding(void) * usage: wifi_set_ch_deauth(0) -> wlan0 wifi_connect -> wifi_set_ch_deauth(1) */ #ifdef CONFIG_CONCURRENT_MODE -int wifi_set_ch_deauth(__u8 enable) -{ +int wifi_set_ch_deauth(__u8 enable) { return wext_set_ch_deauth(WLAN1_NAME, enable); } #endif //----------------------------------------------------------------------------// #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_ind.c b/RTL00_SDKV35a/component/common/api/wifi/wifi_ind.c index a9f603f..d31d6f1 100644 --- a/RTL00_SDKV35a/component/common/api/wifi/wifi_ind.c +++ b/RTL00_SDKV35a/component/common/api/wifi/wifi_ind.c @@ -9,11 +9,11 @@ ******************************************************/ #if CONFIG_DEBUG_LOG > 3 - #define WIFI_INDICATE_MSG 1 +#define WIFI_INDICATE_MSG 1 #else - #define WIFI_INDICATE_MSG 0 +#define WIFI_INDICATE_MSG 0 #endif -#define WIFI_MANAGER_STACKSIZE 1300 +#define WIFI_MANAGER_STACKSIZE 400 // 1300 #define WIFI_MANAGER_PRIORITY (0) //Actual priority is 4 since calling rtw_create_task #define WIFI_MANAGER_Q_SZ 8 @@ -22,44 +22,47 @@ * Globals ******************************************************/ -static event_list_elem_t event_callback_list[WIFI_EVENT_MAX][WIFI_EVENT_MAX_ROW]; +static event_list_elem_t event_callback_list[WIFI_EVENT_MAX][WIFI_EVENT_MAX_ROW]; #if CONFIG_WIFI_IND_USE_THREAD -static rtw_worker_thread_t wifi_worker_thread; +static rtw_worker_thread_t wifi_worker_thread; #endif //----------------------------------------------------------------------------// #if CONFIG_WIFI_IND_USE_THREAD -static rtw_result_t rtw_send_event_to_worker(int event_cmd, char *buf, int buf_len, int flags) -{ +static rtw_result_t rtw_send_event_to_worker(int event_cmd, char *buf, + int buf_len, int flags) { rtw_event_message_t message; int i; rtw_result_t ret = RTW_SUCCESS; char *local_buf = NULL; - - if(event_cmd >= WIFI_EVENT_MAX) + + if (event_cmd >= WIFI_EVENT_MAX) return RTW_BADARG; - - for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){ - if(event_callback_list[event_cmd][i].handler == NULL) + + for (i = 0; i < WIFI_EVENT_MAX_ROW; i++) { + if (event_callback_list[event_cmd][i].handler == NULL) continue; - message.function = (event_handler_t)event_callback_list[event_cmd][i].handler; + message.function = + (event_handler_t) event_callback_list[event_cmd][i].handler; message.buf_len = buf_len; - if(buf_len){ - local_buf = (char*)pvPortMalloc(buf_len); - if(local_buf == NULL) + if (buf_len) { + local_buf = (char*) pvPortMalloc(buf_len); + if (local_buf == NULL) return RTW_NOMEM; memcpy(local_buf, buf, buf_len); - //printf("\n!!!!!Allocate %p(%d) for evcmd %d\n", local_buf, buf_len, event_cmd); + //debug_printf("Allocate %p(%d) for evcmd %d\n", local_buf, buf_len, event_cmd); } message.buf = local_buf; message.flags = flags; message.user_data = event_callback_list[event_cmd][i].handler_user_data; ret = rtw_push_to_xqueue(&wifi_worker_thread.event_queue, &message, 0); - if(ret != RTW_SUCCESS){ - if(local_buf){ - printf("rtw_send_event_to_worker: enqueue cmd %d failed and free %p(%d)\n", event_cmd, local_buf, buf_len); + if (ret != RTW_SUCCESS) { + if (local_buf) { + warning_printf( + "rtw_send_event_to_worker: enqueue cmd %d failed and free %p(%d)\n", + event_cmd, local_buf, buf_len); vPortFree(local_buf); } break; @@ -72,14 +75,14 @@ static rtw_result_t rtw_indicate_event_handle(int event_cmd, char *buf, int buf_ { rtw_event_handler_t handle = NULL; int i; - + if(event_cmd >= WIFI_EVENT_MAX) - return RTW_BADARG; - - for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){ + return RTW_BADARG; + + for(i = 0; i < WIFI_EVENT_MAX_ROW; i++) { handle = event_callback_list[event_cmd][i].handler; if(handle == NULL) - continue; + continue; handle(buf, buf_len, flags, event_callback_list[event_cmd][i].handler_user_data); } @@ -91,118 +94,111 @@ static rtw_result_t rtw_indicate_event_handle(int event_cmd, char *buf, int buf_ extern gpio_t gpio_led; #endif -void wifi_indication( WIFI_EVENT_INDICATE event, char *buf, int buf_len, int flags) -{ +void wifi_indication(WIFI_EVENT_INDICATE event, char *buf, int buf_len, + int flags) { // // If upper layer application triggers additional operations on receiving of wext_wlan_indicate, // please strictly check current stack size usage (by using uxTaskGetStackHighWaterMark() ) // , and tries not to share the same stack with wlan driver if remaining stack space is // not available for the following operations. // ex: using semaphore to notice another thread. - switch(event) - { - case WIFI_EVENT_DISCONNECT: + switch (event) { + case WIFI_EVENT_DISCONNECT: #if(WIFI_INDICATE_MSG>0) - printf(" %s():Disconnection indication received\n", __FUNCTION__); + info_printf("%s: Disconnection indication received\n", __func__); #endif - break; - case WIFI_EVENT_CONNECT: - // For WPA/WPA2 mode, indication of connection does not mean data can be - // correctly transmitted or received. Data can be correctly transmitted or - // received only when 4-way handshake is done. - // Please check WIFI_EVENT_FOURWAY_HANDSHAKE_DONE event + break; + case WIFI_EVENT_CONNECT: + // For WPA/WPA2 mode, indication of connection does not mean data can be + // correctly transmitted or received. Data can be correctly transmitted or + // received only when 4-way handshake is done. + // Please check WIFI_EVENT_FOURWAY_HANDSHAKE_DONE event #if(WIFI_INDICATE_MSG>0) - // Sample: return mac address - if(buf != NULL && buf_len == 6) - { - printf("%s():Connect indication received: %02x:%02x:%02x:%02x:%02x:%02x\n", __FUNCTION__, - buf[0],buf[1],buf[2],buf[3],buf[4],buf[5]); - } + // Sample: return mac address + if (buf != NULL && buf_len == 6) { + info_printf( + "%s: Connect indication received: %02x:%02x:%02x:%02x:%02x:%02x\n", + __func__, buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); + } #endif - break; - case WIFI_EVENT_FOURWAY_HANDSHAKE_DONE: + break; + case WIFI_EVENT_FOURWAY_HANDSHAKE_DONE: #if(WIFI_INDICATE_MSG>0) - if(buf != NULL) - { - if(buf_len == strlen(IW_EXT_STR_FOURWAY_DONE)) - printf("%s():%s\n", __FUNCTION__, buf); - } + if (buf != NULL) + info_printf("%s: %s\n", __func__, buf); #endif - break; - case WIFI_EVENT_SCAN_RESULT_REPORT: + break; + case WIFI_EVENT_SCAN_RESULT_REPORT: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_SCAN_RESULT_REPORT\n", __func__); + info_printf("%s: WIFI_EVENT_SCAN_RESULT_REPORT\n", __func__); #endif - break; - case WIFI_EVENT_SCAN_DONE: + break; + case WIFI_EVENT_SCAN_DONE: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_SCAN_DONE\n", __func__); -#if CONFIG_DEBUG_LOG > 3 - printf("Time at start %d ms.\n", xTaskGetTickCount()); + info_printf("%s: WIFI_EVENT_SCAN_DONE\n", __func__); +//#if CONFIG_DEBUG_LOG > 3 +// debug_printf("Time at start %d ms.\n", xTaskGetTickCount()); +//#endif #endif -#endif - break; - case WIFI_EVENT_RECONNECTION_FAIL: + break; + case WIFI_EVENT_RECONNECTION_FAIL: #if(WIFI_INDICATE_MSG>0) - if(buf != NULL){ - if(buf_len == strlen(IW_EXT_STR_RECONNECTION_FAIL)) - printf("%s\n", buf); - } + info_printf("%s: %s\n", __func__, buf); #endif - break; - case WIFI_EVENT_NO_NETWORK: + break; + case WIFI_EVENT_NO_NETWORK: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_NO_NETWORK\n", __func__); + info_printf("%s: %s\n", __func__, buf); #endif - break; + break; #if CONFIG_ENABLE_P2P - case WIFI_EVENT_SEND_ACTION_DONE: + case WIFI_EVENT_SEND_ACTION_DONE: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_SEND_ACTION_DONE\n", __func__); + info_printf("%s: %s\n", __func__); #endif - break; - case WIFI_EVENT_RX_MGNT: + break; + case WIFI_EVENT_RX_MGNT: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_RX_MGNT\n", __func__); + info_printf("%s: WIFI_EVENT_RX_MGNT\n", __func__); #endif - break; + break; #endif //CONFIG_ENABLE_P2P - case WIFI_EVENT_STA_ASSOC: + case WIFI_EVENT_STA_ASSOC: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_STA_ASSOC\n", __func__); + info_printf("%s: %s\n", __func__); #endif - break; - case WIFI_EVENT_STA_DISASSOC: + break; + case WIFI_EVENT_STA_DISASSOC: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_STA_DISASSOC\n", __func__); + info_printf("%s: %s\n", __func__); #endif - break; + break; #ifdef CONFIG_WPS case WIFI_EVENT_STA_WPS_START: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_STA_WPS_START\n", __func__); + info_printf("%s: WIFI_EVENT_STA_WPS_START\n", __func__); #endif - break; + break; case WIFI_EVENT_WPS_FINISH: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_WPS_FINISH\n", __func__); + info_printf("%s: WIFI_EVENT_WPS_FINISH\n", __func__); #endif - break; + break; case WIFI_EVENT_EAPOL_RECVD: #if(WIFI_INDICATE_MSG>0) - printf("%s(): WIFI_EVENT_EAPOL_RECVD\n", __func__); + info_printf("%s: WIFI_EVENT_EAPOL_RECVD\n", __func__); #endif - break; + break; #endif - case WIFI_EVENT_BEACON_AFTER_DHCP: + case WIFI_EVENT_BEACON_AFTER_DHCP: #if(WIFI_INDICATE_MSG>1) - printf("%s(): WIFI_EVENT_BEACON_AFTER_DHCP\n", __func__); + info_printf("%s: WIFI_EVENT_BEACON_AFTER_DHCP\n", __func__); #endif #if 0 // test beacon - gpio_write(&gpio_led, 1); - gpio_write(&gpio_led, 0); + gpio_write(&gpio_led, 1); + gpio_write(&gpio_led, 0); #endif - break; + break; } #if CONFIG_INIC_EN @@ -216,31 +212,33 @@ void wifi_indication( WIFI_EVENT_INDICATE event, char *buf, int buf_len, int fla #endif } -void wifi_reg_event_handler(unsigned int event_cmds, rtw_event_handler_t handler_func, void *handler_user_data) -{ +void wifi_reg_event_handler(unsigned int event_cmds, + rtw_event_handler_t handler_func, void *handler_user_data) { int i = 0, j = 0; - if(event_cmds < WIFI_EVENT_MAX){ - for(i=0; i < WIFI_EVENT_MAX_ROW; i++){ - if(event_callback_list[event_cmds][i].handler == NULL){ - for(j=0; j #include -#if CONFIG_DEBUG_LOG > 0 - #define wext_printf(...) rtl_printf(__VA_ARGS__) -#else - #define wext_printf(...) -#endif - - -int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) -{ +int iw_ioctl(const char * ifname, unsigned long request, struct iwreq * pwrq) { memcpy(pwrq->ifr_name, ifname, 5); - return rltk_wlan_control(request, (void *) pwrq); + int ret = rltk_wlan_control(request, (void *) pwrq); +#if CONFIG_DEBUG_LOG > 3 + if (ret < 0) + error_printf("ioctl[%p, '%s', %02x %02x %02x %02x ...] error (%d)!\n", + request, ifname, pwrq->u.name[0], pwrq->u.name[1], + pwrq->u.name[2], pwrq->u.name[3], ret); +#endif +#if CONFIG_DEBUG_LOG > 4 + else + debug_printf("ioctl[%p, '%s', %02x %02x %02x %02x ...] = %d\n", + request, ifname, pwrq->u.name[0], pwrq->u.name[1], + pwrq->u.name[2], pwrq->u.name[3], ret); +#endif + return ret; } -int wext_get_ssid(const char *ifname, __u8 *ssid) -{ +/* ssid = NULL -> not connected */ +int wext_get_ssid(const char *ifname, __u8 *ssid) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.essid.pointer = ssid; iwr.u.essid.length = 32; - - if (iw_ioctl(ifname, SIOCGIWESSID, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWESSID] ssid = NULL, not connected\n"); //do not use perror - ret = -1; - } else { + int ret = iw_ioctl(ifname, SIOCGIWESSID, &iwr); + if (ret >= 0) { ret = iwr.u.essid.length; if (ret > 32) ret = 32; @@ -43,194 +43,134 @@ int wext_get_ssid(const char *ifname, __u8 *ssid) ret--; ssid[ret] = '\0'; } - return ret; } -int wext_set_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) -{ +int wext_set_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.essid.pointer = (void *) ssid; iwr.u.essid.length = ssid_len; iwr.u.essid.flags = (ssid_len != 0); - - if (iw_ioctl(ifname, SIOCSIWESSID, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWESSID] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWESSID, &iwr); } -int wext_set_bssid(const char *ifname, const __u8 *bssid) -{ +int wext_set_bssid(const char *ifname, const __u8 *bssid) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.ap_addr.sa_family = ARPHRD_ETHER; memcpy(iwr.u.ap_addr.sa_data, bssid, ETH_ALEN); - - if(bssid[ETH_ALEN]=='#' && bssid[ETH_ALEN + 1]=='@'){ + if (bssid[ETH_ALEN] == '#' && bssid[ETH_ALEN + 1] == '@') { memcpy(iwr.u.ap_addr.sa_data + ETH_ALEN, bssid + ETH_ALEN, 6); } - - if (iw_ioctl(ifname, SIOCSIWAP, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWAP] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWAP, &iwr); } -int is_broadcast_ether_addr(const unsigned char *addr) -{ +int is_broadcast_ether_addr(const unsigned char *addr) { return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff; } -int wext_set_auth_param(const char *ifname, __u16 idx, __u32 value) -{ +int wext_set_auth_param(const char *ifname, __u16 idx, __u32 value) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.param.flags = idx & IW_AUTH_INDEX; iwr.u.param.value = value; - - if (iw_ioctl(ifname, SIOCSIWAUTH, &iwr) < 0) { - wext_printf("WEXT: SIOCSIWAUTH(param %d value 0x%x) failed)\n", idx, value); - } - - return ret; + return iw_ioctl(ifname, SIOCSIWAUTH, &iwr); } -int wext_set_key_ext(const char *ifname, __u16 alg, const __u8 *addr, int key_idx, int set_tx, const __u8 *seq, __u16 seq_len, __u8 *key, __u16 key_len) -{ +int wext_set_key_ext(const char *ifname, __u16 alg, const __u8 *addr, + int key_idx, int set_tx, const __u8 *seq, __u16 seq_len, __u8 *key, + __u16 key_len) { struct iwreq iwr; - int ret = 0; + int ret = -1; struct iw_encode_ext *ext; - ext = (struct iw_encode_ext *) malloc(sizeof(struct iw_encode_ext) + key_len); - if (ext == NULL) - return -1; - else + ext = (struct iw_encode_ext *) pvPortMalloc( + sizeof(struct iw_encode_ext) + key_len); + if (ext != NULL) { memset(ext, 0, sizeof(struct iw_encode_ext) + key_len); - - memset(&iwr, 0, sizeof(iwr)); - iwr.u.encoding.flags = key_idx + 1; - iwr.u.encoding.flags |= IW_ENCODE_TEMP; - iwr.u.encoding.pointer = ext; - iwr.u.encoding.length = sizeof(struct iw_encode_ext) + key_len; - - if (alg == IW_ENCODE_DISABLED) - iwr.u.encoding.flags |= IW_ENCODE_DISABLED; - - if (addr == NULL || is_broadcast_ether_addr(addr)) - ext->ext_flags |= IW_ENCODE_EXT_GROUP_KEY; - - if (set_tx) - ext->ext_flags |= IW_ENCODE_EXT_SET_TX_KEY; - - ext->addr.sa_family = ARPHRD_ETHER; - - if (addr) - memcpy(ext->addr.sa_data, addr, ETH_ALEN); + memset(&iwr, 0, sizeof(iwr)); + iwr.u.encoding.flags = key_idx + 1; + iwr.u.encoding.flags |= IW_ENCODE_TEMP; + iwr.u.encoding.pointer = ext; + iwr.u.encoding.length = sizeof(struct iw_encode_ext) + key_len; + if (alg == IW_ENCODE_DISABLED) + iwr.u.encoding.flags |= IW_ENCODE_DISABLED; + if (addr == NULL || is_broadcast_ether_addr(addr)) + ext->ext_flags |= IW_ENCODE_EXT_GROUP_KEY; + if (set_tx) + ext->ext_flags |= IW_ENCODE_EXT_SET_TX_KEY; + ext->addr.sa_family = ARPHRD_ETHER; + if (addr) + memcpy(ext->addr.sa_data, addr, ETH_ALEN); + else + memset(ext->addr.sa_data, 0xff, ETH_ALEN); + if (key && key_len) { + memcpy(ext->key, key, key_len); + ext->key_len = key_len; + } + ext->alg = alg; + if (seq && seq_len) { + ext->ext_flags |= IW_ENCODE_EXT_RX_SEQ_VALID; + memcpy(ext->rx_seq, seq, seq_len); + } + ret = iw_ioctl(ifname, SIOCSIWENCODEEXT, &iwr); + vPortFree(ext); + } +#if CONFIG_DEBUG_LOG > 3 else - memset(ext->addr.sa_data, 0xff, ETH_ALEN); - - if (key && key_len) { - memcpy(ext->key, key, key_len); - ext->key_len = key_len; - } - - ext->alg = alg; - - if (seq && seq_len) { - ext->ext_flags |= IW_ENCODE_EXT_RX_SEQ_VALID; - memcpy(ext->rx_seq, seq, seq_len); - } - - if (iw_ioctl(ifname, SIOCSIWENCODEEXT, &iwr) < 0) { - ret = -2; - wext_printf("ioctl[SIOCSIWENCODEEXT] set key fail\n"); - } - - free(ext); - + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -int wext_get_enc_ext(const char *ifname, __u16 *alg, __u8 *key_idx, __u8 *passphrase) -{ +int wext_get_enc_ext(const char *ifname, __u16 *alg, __u8 *key_idx, + __u8 *passphrase) { struct iwreq iwr; - int ret = 0; + int ret = -1; struct iw_encode_ext *ext; - ext = (struct iw_encode_ext *) malloc(sizeof(struct iw_encode_ext) + 16); - if (ext == NULL) - return -1; - else + ext = (struct iw_encode_ext *) pvPortMalloc( + sizeof(struct iw_encode_ext) + 16); + if (ext != NULL) { memset(ext, 0, sizeof(struct iw_encode_ext) + 16); - - iwr.u.encoding.pointer = ext; - - if (iw_ioctl(ifname, SIOCGIWENCODEEXT, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWENCODEEXT] error\n"); - ret = -1; + iwr.u.encoding.pointer = ext; + ret = iw_ioctl(ifname, SIOCGIWENCODEEXT, &iwr); + if (ret >= 0) { + *alg = ext->alg; + if (key_idx) + *key_idx = (__u8 ) iwr.u.encoding.flags; + if (passphrase) + memcpy(passphrase, ext->key, ext->key_len); + } + vPortFree(ext); } +#if CONFIG_DEBUG_LOG > 3 else - { - *alg = ext->alg; - if(key_idx) - *key_idx = (__u8)iwr.u.encoding.flags; - if(passphrase) - memcpy(passphrase, ext->key, ext->key_len); - } - - if(ext != NULL) - free(ext); - + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -int wext_set_passphrase(const char *ifname, const __u8 *passphrase, __u16 passphrase_len) -{ +int wext_set_passphrase(const char *ifname, const __u8 *passphrase, + __u16 passphrase_len) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.passphrase.pointer = (void *) passphrase; iwr.u.passphrase.length = passphrase_len; iwr.u.passphrase.flags = (passphrase_len != 0); - - if (iw_ioctl(ifname, SIOCSIWPRIVPASSPHRASE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWESSID+0x1f] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWPRIVPASSPHRASE, &iwr); } -int wext_get_passphrase(const char *ifname, __u8 *passphrase) -{ +int wext_get_passphrase(const char *ifname, __u8 *passphrase) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.passphrase.pointer = (void *) passphrase; - - if (iw_ioctl(ifname, SIOCGIWPRIVPASSPHRASE, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWPRIVPASSPHRASE] error\n"); - ret = -1; - } - else { + int ret = iw_ioctl(ifname, SIOCGIWPRIVPASSPHRASE, &iwr); + if (ret >= 0) { ret = iwr.u.passphrase.length; passphrase[ret] = '\0'; } - return ret; } @@ -238,7 +178,7 @@ int wext_get_passphrase(const char *ifname, __u8 *passphrase) int wext_set_mac_address(const char *ifname, char * mac) { char buf[13+17+1]; - rtw_memset(buf, 0, sizeof(buf)); + memset(buf, 0, sizeof(buf)); snprintf(buf, 13+17, "write_mac %s", mac); return wext_private_command(ifname, buf, 0); } @@ -248,318 +188,212 @@ int wext_get_mac_address(const char *ifname, char * mac) int ret = 0; char buf[32]; - rtw_memset(buf, 0, sizeof(buf)); - rtw_memcpy(buf, "read_mac", 8); + memset(buf, 0, sizeof(buf)); + memcpy(buf, "read_mac", 8); ret = wext_private_command_with_retval(ifname, buf, buf, 32); strcpy(mac, buf); return ret; } #endif -int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) -{ +int wext_enable_powersave(const char *ifname, __u8 ips_mode, __u8 lps_mode) { struct iwreq iwr; - int ret = 0; - __u16 pindex = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u16 pindex = 7; + __u8 para[16]; // 7 + (1+1+1) + (1+1+1) + int cmd_len = sizeof("pm_set"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("pm_set"); - // Encode parameters as TLV (type, length, value) format - para = pvPortMalloc( 7 + (1+1+1) + (1+1+1) ); - if(para == NULL) return -1; - - snprintf((char*)para, cmd_len, "pm_set"); - pindex = 7; - + snprintf((char*) para, cmd_len, "pm_set"); para[pindex++] = 0; // type 0 for ips para[pindex++] = 1; para[pindex++] = ips_mode; - para[pindex++] = 1; // type 1 for lps para[pindex++] = 1; para[pindex++] = lps_mode; - - iwr.u.data.pointer = para; + iwr.u.data.pointer = ¶[0]; iwr.u.data.length = pindex; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - } - - vPortFree(para); - return ret; + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); } -int wext_disable_powersave(const char *ifname) -{ +int wext_disable_powersave(const char *ifname) { struct iwreq iwr; - int ret = 0; - __u16 pindex = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u16 pindex = 7; + __u8 para[16]; // 7 + (1+1+1) + (1+1+1) + int cmd_len = sizeof("pm_set"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("pm_set"); - // Encode parameters as TLV (type, length, value) format - para = pvPortMalloc( 7 + (1+1+1) + (1+1+1) ); - if(para == NULL) return -1; - - snprintf((char*)para, cmd_len, "pm_set"); - pindex = 7; - + snprintf((char*) para, cmd_len, "pm_set"); para[pindex++] = 0; // type 0 for ips para[pindex++] = 1; para[pindex++] = 0; // ips = 0 - para[pindex++] = 1; // type 1 for lps para[pindex++] = 1; para[pindex++] = 0; // lps = 0 - - iwr.u.data.pointer = para; + iwr.u.data.pointer = ¶[0]; iwr.u.data.length = pindex; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - } - - vPortFree(para); - return ret; - + 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) -{ +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) { struct iwreq iwr; - int ret = 0; - __u16 pindex = 0; - __u8 *para = NULL; - int cmd_len = 0; - + int ret = -1; + __u16 pindex = 7; + __u8 para[16]; // 7+(1+1+4) + int cmd_len = sizeof("pm_set"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("pm_set"); - // Encode parameters as TLV (type, length, value) format - para = pvPortMalloc( 7 + (1+1+4) ); - - snprintf((char*)para, cmd_len, "pm_set"); - pindex = 7; - + snprintf((char*) para, cmd_len, "pm_set"); para[pindex++] = 2; // type 2 tdma param para[pindex++] = 4; para[pindex++] = slot_period; para[pindex++] = rfon_period_len_1; para[pindex++] = rfon_period_len_2; para[pindex++] = rfon_period_len_3; - iwr.u.data.pointer = para; iwr.u.data.length = pindex; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - } - - vPortFree(para); - return ret; + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); } -int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) -{ +int wext_set_lps_dtim(const char *ifname, __u8 lps_dtim) { struct iwreq iwr; - int ret = 0; - __u16 pindex = 0; - __u8 *para = NULL; + int ret = -1; + __u16 pindex = 7; + __u8 para[16]; // 7+(1+1+1) int cmd_len = 0; memset(&iwr, 0, sizeof(iwr)); cmd_len = sizeof("pm_set"); - // Encode parameters as TLV (type, length, value) format - para = pvPortMalloc( 7 + (1+1+1) ); - - snprintf((char*)para, cmd_len, "pm_set"); - pindex = 7; - + snprintf((char*) para, cmd_len, "pm_set"); para[pindex++] = 3; // type 3 lps dtim para[pindex++] = 1; para[pindex++] = lps_dtim; - - iwr.u.data.pointer = para; + iwr.u.data.pointer = ¶[0]; iwr.u.data.length = pindex; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - } - - vPortFree(para); + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); return ret; } -int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) -{ +int wext_get_lps_dtim(const char *ifname, __u8 *lps_dtim) { struct iwreq iwr; - int ret = 0; - __u16 pindex = 0; - __u8 *para = NULL; + int ret = -1; + __u16 pindex = 7; int cmd_len = 0; - + __u8 para[16]; // 7+(1+1+1) memset(&iwr, 0, sizeof(iwr)); cmd_len = sizeof("pm_get"); - // Encode parameters as TLV (type, length, value) format - para = pvPortMalloc( 7 + (1+1+1) ); - - snprintf((char*)para, cmd_len, "pm_get"); - pindex = 7; - + snprintf((char*) para, cmd_len, "pm_get"); para[pindex++] = 3; // type 3 for lps dtim para[pindex++] = 1; para[pindex++] = 0; - - iwr.u.data.pointer = para; + iwr.u.data.pointer = ¶[0]; iwr.u.data.length = pindex; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - goto exit; - } - + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); //get result at the beginning of iwr.u.data.pointer - if((para[0]==3)&&(para[1]==1)) + if ((para[0] == 3) && (para[1] == 1)) *lps_dtim = para[2]; - else - wext_printf("%s error\n", __func__); - -exit: - vPortFree(para); - - return ret; -} - -int wext_set_tos_value(const char *ifname, __u8 *tos_value) -{ - struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = sizeof("set_tos_value"); - - memset(&iwr, 0, sizeof(iwr)); - - para = pvPortMalloc(cmd_len + 4); - snprintf((char*)para, cmd_len, "set_tos_value"); - - if(*tos_value >= 0 && *tos_value <=32){ - *(para + cmd_len) = 0x4f; - *(para + cmd_len+1) = 0xa4; - *(para + cmd_len+2) = 0; - *(para + cmd_len+3) = 0; - } - else if(*tos_value > 32 && *tos_value <=96){ - *(para + cmd_len) = 0x2b; - *(para + cmd_len+1) = 0xa4; - *(para + cmd_len+2) = 0; - *(para + cmd_len+3) = 0; - } - else if(*tos_value > 96 && *tos_value <= 160){ - *(para + cmd_len) = 0x22; - *(para + cmd_len+1) = 0x43; - *(para + cmd_len+2) = 0x5e; - *(para + cmd_len+3) = 0; - } - else if(*tos_value > 160){ - *(para + cmd_len) = 0x22; - *(para + cmd_len+1) = 0x32; - *(para + cmd_len+2) = 0x2f; - *(para + cmd_len+3) = 0; - } - - iwr.u.data.pointer = para; - iwr.u.data.length = cmd_len + 4; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_set_tos_value():ioctl[SIOCDEVPRIVATE] error\n"); + else { +#if CONFIG_DEBUG_LOG > 3 + error_printf("%s: error!\n", __func__); +#endif ret = -1; } - - vPortFree(para); return ret; } -int wext_get_tx_power(const char *ifname, __u8 *poweridx) -{ +int wext_set_tos_value(const char *ifname, __u8 *tos_value) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = sizeof("get_tx_power"); + int ret = -1; + __u8 para[sizeof("set_tos_value") + 4]; + int cmd_len = sizeof("set_tos_value"); + memset(&iwr, 0, sizeof(iwr)); + snprintf((char*) para, cmd_len, "set_tos_value"); + if (*tos_value >= 0 && *tos_value <= 32) { + *(para + cmd_len) = 0x4f; + *(para + cmd_len + 1) = 0xa4; + *(para + cmd_len + 2) = 0; + *(para + cmd_len + 3) = 0; + } else if (*tos_value > 32 && *tos_value <= 96) { + *(para + cmd_len) = 0x2b; + *(para + cmd_len + 1) = 0xa4; + *(para + cmd_len + 2) = 0; + *(para + cmd_len + 3) = 0; + } else if (*tos_value > 96 && *tos_value <= 160) { + *(para + cmd_len) = 0x22; + *(para + cmd_len + 1) = 0x43; + *(para + cmd_len + 2) = 0x5e; + *(para + cmd_len + 3) = 0; + } else if (*tos_value > 160) { + *(para + cmd_len) = 0x22; + *(para + cmd_len + 1) = 0x32; + *(para + cmd_len + 2) = 0x2f; + *(para + cmd_len + 3) = 0; + } + iwr.u.data.pointer = ¶[0]; + iwr.u.data.length = cmd_len + 4; + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); +} +int wext_get_tx_power(const char *ifname, __u8 *poweridx) { + struct iwreq iwr; + int ret = -1; + __u8 *para; + int cmd_len = sizeof("get_tx_power"); memset(&iwr, 0, sizeof(iwr)); //Tx power size : 20 Bytes //CCK 1M,2M,5.5M,11M : 4 Bytes //OFDM 6M, 9M, 12M, 18M, 24M, 36M 48M, 54M : 8 Bytes //MCS 0~7 : 8 Bytes para = pvPortMalloc(cmd_len + 20); - if(para != NULL) { - - snprintf((char*)para, cmd_len, "get_tx_power"); - + if (para != NULL) { + snprintf((char*) para, cmd_len, "get_tx_power"); iwr.u.data.pointer = para; iwr.u.data.length = cmd_len + 20; - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_get_tx_power():ioctl[SIOCDEVPRIVATE] error!\n"); - ret = -1; - } - - memcpy(poweridx,(__u8 *)(iwr.u.data.pointer),20); + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + if (ret >= 0) + memcpy(poweridx, (__u8 *) (iwr.u.data.pointer), 20); vPortFree(para); } - else { - printf("wext_get_tx_power() error alloc!\n"); - ret = -1; - } - +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -#if 0 -int wext_set_txpower(const char *ifname, int poweridx) -{ +#if 1 // work ? +int wext_set_txpower(const char *ifname, int poweridx) { int ret; char buf[24]; - - rtw_memset(buf, 0, sizeof(buf)); + + memset(buf, 0, sizeof(buf)); snprintf(buf, 24, "txpower patha=%d", poweridx); ret = wext_private_command(ifname, buf, 0); return ret; } -int wext_get_associated_client_list(const char *ifname, void * client_list_buffer, uint16_t buffer_length) -{ +int wext_get_associated_client_list(const char *ifname, + void * client_list_buffer, uint16_t buffer_length) { int ret; char buf[25]; - rtw_memset(buf, 0, sizeof(buf)); + memset(buf, 0, sizeof(buf)); snprintf(buf, 25, "get_client_list %x", client_list_buffer); ret = wext_private_command(ifname, buf, 0); return ret; } -int wext_get_ap_info(const char *ifname, rtw_bss_info_t * ap_info, rtw_security_t* security) -{ +int wext_get_ap_info(const char *ifname, rtw_bss_info_t * ap_info, + rtw_security_t* security) { int ret = 0; char buf[24]; - rtw_memset(buf, 0, sizeof(buf)); + memset(buf, 0, sizeof(buf)); snprintf(buf, 24, "get_ap_info %x", ap_info); ret = wext_private_command(ifname, buf, 0); @@ -571,772 +405,599 @@ int wext_get_ap_info(const char *ifname, rtw_bss_info_t * ap_info, rtw_security_ } #endif -int wext_set_mode(const char *ifname, int mode) -{ +int wext_set_mode(const char *ifname, int mode) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.mode = mode; - if (iw_ioctl(ifname, SIOCSIWMODE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWMODE] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWMODE, &iwr); } -int wext_get_mode(const char *ifname, int *mode) -{ +int wext_get_mode(const char *ifname, int *mode) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); - - if (iw_ioctl(ifname, SIOCGIWMODE, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWMODE] error\n"); - ret = -1; - } - else + int ret = iw_ioctl(ifname, SIOCGIWMODE, &iwr); + if (ret >= 0) *mode = iwr.u.mode; - return ret; } -int wext_set_ap_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) -{ +int wext_set_ap_ssid(const char *ifname, const __u8 *ssid, __u16 ssid_len) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.essid.pointer = (void *) ssid; iwr.u.essid.length = ssid_len; iwr.u.essid.flags = (ssid_len != 0); - - if (iw_ioctl(ifname, SIOCSIWPRIVAPESSID, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVAPESSID] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWPRIVAPESSID, &iwr); } -int wext_set_country(const char *ifname, rtw_country_code_t country_code) -{ +int wext_set_country(const char *ifname, rtw_country_code_t country_code) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); - iwr.u.param.value = country_code; - - if (iw_ioctl(ifname, SIOCSIWPRIVCOUNTRY, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWPRIVCOUNTRY] error\n"); - ret = -1; - } - return ret; + return iw_ioctl(ifname, SIOCSIWPRIVCOUNTRY, &iwr); } -int wext_get_rssi(const char *ifname, int *rssi) -{ +int wext_get_rssi(const char *ifname, int *rssi) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); - - if (iw_ioctl(ifname, SIOCGIWSENS, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWSENS] error\n"); - ret = -1; - } else { + int ret = iw_ioctl(ifname, SIOCGIWSENS, &iwr); + if (ret >= 0) *rssi = 0 - iwr.u.sens.value; - } return ret; } -int wext_set_pscan_channel(const char *ifname, __u8 *ch, __u8 *pscan_config, __u8 length) -{ +int wext_set_pscan_channel(const char *ifname, __u8 *ch, __u8 *pscan_config, + __u8 length) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int i =0; - + int ret = -1; + __u8 *para; + int i = 0; memset(&iwr, 0, sizeof(iwr)); //Format of para:function_name num_channel chan1... pscan_config1 ... para = pvPortMalloc((length + length + 1) + 12);//size:num_chan + num_time + length + function_name - if(para == NULL) return -1; + if (para != NULL) { + //Cmd + snprintf((char*) para, 12, "PartialScan"); + //length + *(para + 12) = length; + for (i = 0; i < length; i++) { + *(para + 13 + i) = *(ch + i); + *((__u16 *) (para + 13 + length + i)) = *(pscan_config + i); + } - //Cmd - snprintf((char*)para, 12, "PartialScan"); - //length - *(para+12) = length; - for(i = 0; i < length; i++){ - *(para + 13 + i)= *(ch + i); - *((__u16*) (para + 13 + length + i))= *(pscan_config + i); + iwr.u.data.pointer = para; + iwr.u.data.length = (length + length + 1) + 12; + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + vPortFree(para); } - - iwr.u.data.pointer = para; - iwr.u.data.length = (length + length + 1) + 12; - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_set_pscan_channel():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - vPortFree(para); +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -int wext_set_channel(const char *ifname, __u8 ch) -{ +int wext_set_channel(const char *ifname, __u8 ch) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.freq.m = 0; iwr.u.freq.e = 0; iwr.u.freq.i = ch; - - if (iw_ioctl(ifname, SIOCSIWFREQ, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWFREQ] error\n"); - ret = -1; - } - - return ret; + return iw_ioctl(ifname, SIOCSIWFREQ, &iwr); } -int wext_get_channel(const char *ifname, __u8 *ch) -{ +int wext_get_channel(const char *ifname, __u8 *ch) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); - - if (iw_ioctl(ifname, SIOCGIWFREQ, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWFREQ] error\n"); - ret = -1; - } - else + int ret = iw_ioctl(ifname, SIOCGIWFREQ, &iwr); + if (ret >= 0) *ch = iwr.u.freq.i; - return ret; } -int wext_register_multicast_address(const char *ifname, rtw_mac_t *mac) -{ - int ret = 0; +int wext_register_multicast_address(const char *ifname, rtw_mac_t *mac) { char buf[32]; - - rtw_memset(buf, 0, sizeof(buf)); + memset(buf, 0, sizeof(buf)); snprintf(buf, 32, "reg_multicast "MAC_FMT, MAC_ARG(mac->octet)); - ret = wext_private_command(ifname, buf, 0); - - return ret; + return wext_private_command(ifname, buf, 0); } -int wext_unregister_multicast_address(const char *ifname, rtw_mac_t *mac) -{ - int ret = 0; - char buf[35]; - - rtw_memset(buf, 0, sizeof(buf)); +int wext_unregister_multicast_address(const char *ifname, rtw_mac_t *mac) { + char buf[36]; + memset(buf, 0, sizeof(buf)); snprintf(buf, 35, "reg_multicast -d "MAC_FMT, MAC_ARG(mac->octet)); - ret = wext_private_command(ifname, buf, 0); - - return ret; + return wext_private_command(ifname, buf, 0); } -int wext_set_scan(const char *ifname, char *buf, __u16 buf_len, __u16 flags) -{ +int wext_set_scan(const char *ifname, char *buf, __u16 buf_len, __u16 flags) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); #if 0 //for scan_with_ssid if(buf) - memset(buf, 0, buf_len); + memset(buf, 0, buf_len); #endif iwr.u.data.pointer = buf; iwr.u.data.flags = flags; iwr.u.data.length = buf_len; - if (iw_ioctl(ifname, SIOCSIWSCAN, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWSCAN] error\n"); - ret = -1; - } - return ret; + return iw_ioctl(ifname, SIOCSIWSCAN, &iwr); } -int wext_get_scan(const char *ifname, char *buf, __u16 buf_len) -{ +int wext_get_scan(const char *ifname, char *buf, __u16 buf_len) { struct iwreq iwr; - int ret = 0; - + memset(&iwr, 0, sizeof(iwr)); iwr.u.data.pointer = buf; iwr.u.data.length = buf_len; - if (iw_ioctl(ifname, SIOCGIWSCAN, &iwr) < 0) { - wext_printf("ioctl[SIOCGIWSCAN] error\n"); - ret = -1; - }else + int ret = iw_ioctl(ifname, SIOCGIWSCAN, &iwr); + if (ret >= 0) ret = iwr.u.data.flags; return ret; } -int wext_private_command_with_retval(const char *ifname, char *cmd, char *ret_buf, int ret_len) -{ +int wext_private_command_with_retval(const char *ifname, char *cmd, + char *ret_buf, int ret_len) { struct iwreq iwr; - int ret = 0, buf_size; + int ret = -1, buf_size; char *buf; - - buf_size = 128; - if(strlen(cmd) >= buf_size) - buf_size = strlen(cmd) + 1; // 1 : '\0' - buf = (char*)pvPortMalloc(buf_size); - if(!buf){ - wext_printf("WEXT: Can't malloc memory\n"); - return -1; - } - memset(buf, 0, buf_size); - strcpy(buf, cmd); - memset(&iwr, 0, sizeof(iwr)); - iwr.u.data.pointer = buf; - iwr.u.data.length = buf_size; - iwr.u.data.flags = 0; - if ((ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr)) < 0) { - wext_printf("ioctl[SIOCDEVPRIVATE] error. ret=%d\n", ret); + buf_size = 128; + if (strlen(cmd) >= buf_size) + buf_size = strlen(cmd) + 1; // 1 : '\0' + buf = (char*) pvPortMalloc(buf_size); + if (buf != NULL) { + memset(buf, 0, buf_size); + strcpy(buf, cmd); + memset(&iwr, 0, sizeof(iwr)); + iwr.u.data.pointer = buf; + iwr.u.data.length = buf_size; + iwr.u.data.flags = 0; + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + if (ret >= 0 & ret_buf != NULL) { + if (ret_len > iwr.u.data.length) + ret_len = iwr.u.data.length; + memcpy(ret_buf, (char *) iwr.u.data.pointer, ret_len); + } + vPortFree(buf); } - if(ret_buf){ - if(ret_len > iwr.u.data.length) - ret_len = iwr.u.data.length; - rtw_memcpy(ret_buf, (char *) iwr.u.data.pointer, ret_len); - } - vPortFree(buf); +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -int wext_private_command(const char *ifname, char *cmd, int show_msg) -{ +int wext_private_command(const char *ifname, char *cmd, int show_msg) { struct iwreq iwr; - int ret = 0, buf_size; + int ret = -1, buf_size; char *buf; - u8 cmdname[17] = {0}; // IFNAMSIZ+1 + u8 cmdname[17] = { 0 }; // IFNAMSIZ+1 sscanf(cmd, "%16s", cmdname); - if((strcmp((const char *)cmdname, "config_get") == 0) - || (strcmp((const char *)cmdname, "config_set") == 0) - || (strcmp((const char *)cmdname, "efuse_get") == 0) - || (strcmp((const char *)cmdname, "efuse_set") == 0) - || (strcmp((const char *)cmdname, "mp_psd") == 0)) - buf_size = 2600;//2600 for config_get rmap,0,512 (or realmap) + if ((strcmp((const char *)cmdname, "config_get") == 0) + || (strcmp((const char *)cmdname, "config_set") == 0) + || (strcmp((const char *)cmdname, "efuse_get") == 0) + || (strcmp((const char *)cmdname, "efuse_set") == 0) + || (strcmp((const char *)cmdname, "mp_psd") == 0)) + buf_size = 2600; //2600 for config_get rmap,0,512 (or realmap) else buf_size = 512; - if(strlen(cmd) >= buf_size) + if (strlen(cmd) >= buf_size) buf_size = strlen(cmd) + 1; // 1 : '\0' - buf = (char*)pvPortMalloc(buf_size); - if(!buf){ - wext_printf("WEXT: Can't malloc memory\n"); - return -1; - } - memset(buf, 0, buf_size); - strcpy(buf, cmd); - memset(&iwr, 0, sizeof(iwr)); - iwr.u.data.pointer = buf; - iwr.u.data.length = buf_size; - iwr.u.data.flags = 0; + buf = (char*) pvPortMalloc(buf_size); + if (buf != NULL) { + memset(buf, 0, buf_size); + strcpy(buf, cmd); + memset(&iwr, 0, sizeof(iwr)); + iwr.u.data.pointer = buf; + iwr.u.data.length = buf_size; + iwr.u.data.flags = 0; - if ((ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr)) < 0) { - wext_printf("ioctl[SIOCDEVPRIVATE] error. ret=%d\n", ret); + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + if (ret >= 0 && show_msg && iwr.u.data.length) { +#if CONFIG_DEBUG_LOG > 3 + if (iwr.u.data.length > buf_size) + error_printf("%s: Can't malloc memory!\n", __func__); + info_printf("Private Message: %s\n", (char * ) iwr.u.data.pointer); +#endif + } + vPortFree(buf); } - if (show_msg && iwr.u.data.length) { - if(iwr.u.data.length > buf_size) - wext_printf("WEXT: Malloc memory is not enough\n"); - wext_printf("Private Message: %s\n", (char *) iwr.u.data.pointer); - } - vPortFree(buf); +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } -void wext_wlan_indicate(unsigned int cmd, union iwreq_data *wrqu, char *extra) -{ - unsigned char null_mac[6] = {0}; +void wext_wlan_indicate(unsigned int cmd, union iwreq_data *wrqu, char *extra) { + unsigned char null_mac[6] = { 0 }; - switch(cmd) - { - case SIOCGIWAP: - if(wrqu->ap_addr.sa_family == ARPHRD_ETHER) - { - if(!memcmp(wrqu->ap_addr.sa_data, null_mac, sizeof(null_mac))) - wifi_indication(WIFI_EVENT_DISCONNECT, NULL, 0, 0); - else - wifi_indication(WIFI_EVENT_CONNECT, wrqu->ap_addr.sa_data, sizeof(null_mac), 0); - } - break; - - case IWEVCUSTOM: - if(extra) - { - if(!memcmp(IW_EXT_STR_FOURWAY_DONE, extra, strlen(IW_EXT_STR_FOURWAY_DONE))) - wifi_indication(WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, extra, strlen(IW_EXT_STR_FOURWAY_DONE), 0); - else if(!memcmp(IW_EXT_STR_RECONNECTION_FAIL, extra, strlen(IW_EXT_STR_RECONNECTION_FAIL))) - wifi_indication(WIFI_EVENT_RECONNECTION_FAIL, extra, strlen(IW_EXT_STR_RECONNECTION_FAIL), 0); - else if(!memcmp(IW_EVT_STR_NO_NETWORK, extra, strlen(IW_EVT_STR_NO_NETWORK))) - wifi_indication(WIFI_EVENT_NO_NETWORK, extra, strlen(IW_EVT_STR_NO_NETWORK), 0); -#if CONFIG_ENABLE_P2P || defined(CONFIG_AP_MODE) - else if(!memcmp(IW_EVT_STR_STA_ASSOC, extra, strlen(IW_EVT_STR_STA_ASSOC))) - wifi_indication(WIFI_EVENT_STA_ASSOC, wrqu->data.pointer, wrqu->data.length, 0); - else if(!memcmp(IW_EVT_STR_STA_DISASSOC, extra, strlen(IW_EVT_STR_STA_DISASSOC))) - wifi_indication(WIFI_EVENT_STA_DISASSOC, wrqu->addr.sa_data, sizeof(null_mac), 0); - else if(!memcmp(IW_EVT_STR_SEND_ACTION_DONE, extra, strlen(IW_EVT_STR_SEND_ACTION_DONE))) - wifi_indication(WIFI_EVENT_SEND_ACTION_DONE, NULL, 0, wrqu->data.flags); -#endif - } - break; - case SIOCGIWSCAN: - if(wrqu->data.pointer == NULL) - wifi_indication(WIFI_EVENT_SCAN_DONE, NULL, 0, 0); + switch (cmd) { + case SIOCGIWAP: + if (wrqu->ap_addr.sa_family == ARPHRD_ETHER) { + if (!memcmp(wrqu->ap_addr.sa_data, null_mac, sizeof(null_mac))) + wifi_indication(WIFI_EVENT_DISCONNECT, NULL, 0, 0); else - wifi_indication(WIFI_EVENT_SCAN_RESULT_REPORT, wrqu->data.pointer, wrqu->data.length, 0); - break; + wifi_indication(WIFI_EVENT_CONNECT, wrqu->ap_addr.sa_data, + sizeof(null_mac), 0); + } + break; + + case IWEVCUSTOM: + if (extra) { +#if CONFIG_DEBUG_LOG > 4 + info_printf("IWEVCUSTOM '%s'\n", extra); +#endif + if (!memcmp(IW_EXT_STR_FOURWAY_DONE, extra, + strlen(IW_EXT_STR_FOURWAY_DONE))) + wifi_indication(WIFI_EVENT_FOURWAY_HANDSHAKE_DONE, extra, + strlen(IW_EXT_STR_FOURWAY_DONE), 0); + else if (!memcmp(IW_EXT_STR_RECONNECTION_FAIL, extra, + strlen(IW_EXT_STR_RECONNECTION_FAIL))) + wifi_indication(WIFI_EVENT_RECONNECTION_FAIL, extra, + strlen(IW_EXT_STR_RECONNECTION_FAIL), 0); + else if (!memcmp(IW_EVT_STR_NO_NETWORK, extra, + strlen(IW_EVT_STR_NO_NETWORK))) + wifi_indication(WIFI_EVENT_NO_NETWORK, extra, + strlen(IW_EVT_STR_NO_NETWORK), 0); +#if CONFIG_ENABLE_P2P || defined(CONFIG_AP_MODE) + else if (!memcmp(IW_EVT_STR_STA_ASSOC, extra, + strlen(IW_EVT_STR_STA_ASSOC))) + wifi_indication(WIFI_EVENT_STA_ASSOC, wrqu->data.pointer, + wrqu->data.length, 0); + else if (!memcmp(IW_EVT_STR_STA_DISASSOC, extra, + strlen(IW_EVT_STR_STA_DISASSOC))) + wifi_indication(WIFI_EVENT_STA_DISASSOC, wrqu->addr.sa_data, + sizeof(null_mac), 0); + else if (!memcmp(IW_EVT_STR_SEND_ACTION_DONE, extra, + strlen(IW_EVT_STR_SEND_ACTION_DONE))) + wifi_indication(WIFI_EVENT_SEND_ACTION_DONE, NULL, 0, + wrqu->data.flags); +#endif + } + break; + case SIOCGIWSCAN: + if (wrqu->data.pointer == NULL) + wifi_indication(WIFI_EVENT_SCAN_DONE, NULL, 0, 0); + else + wifi_indication(WIFI_EVENT_SCAN_RESULT_REPORT, wrqu->data.pointer, + wrqu->data.length, 0); + break; #if CONFIG_ENABLE_P2P - case IWEVMGNTRECV: - wifi_indication(WIFI_EVENT_RX_MGNT, wrqu->data.pointer, wrqu->data.length, wrqu->data.flags); - break; + case IWEVMGNTRECV: + wifi_indication(WIFI_EVENT_RX_MGNT, wrqu->data.pointer, + wrqu->data.length, wrqu->data.flags); + break; #endif #ifdef REPORT_STA_EVENT case IWEVREGISTERED: - if(wrqu->addr.sa_family == ARPHRD_ETHER) - wifi_indication(WIFI_EVENT_STA_ASSOC, wrqu->addr.sa_data, sizeof(null_mac), 0); - break; + if(wrqu->addr.sa_family == ARPHRD_ETHER) + wifi_indication(WIFI_EVENT_STA_ASSOC, wrqu->addr.sa_data, sizeof(null_mac), 0); + break; case IWEVEXPIRED: - if(wrqu->addr.sa_family == ARPHRD_ETHER) - wifi_indication(WIFI_EVENT_STA_DISASSOC, wrqu->addr.sa_data, sizeof(null_mac), 0); - break; + if(wrqu->addr.sa_family == ARPHRD_ETHER) + wifi_indication(WIFI_EVENT_STA_DISASSOC, wrqu->addr.sa_data, sizeof(null_mac), 0); + break; #endif - default: - break; - + default: +#if CONFIG_DEBUG_LOG > 4 + info_printf("\nwlan_indicate: %p!\n", cmd); +#endif + break; } - } - -int wext_send_eapol(const char *ifname, char *buf, __u16 buf_len, __u16 flags) -{ +int wext_send_eapol(const char *ifname, char *buf, __u16 buf_len, __u16 flags) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.data.pointer = buf; iwr.u.data.length = buf_len; - iwr.u.data.flags = flags; - if (iw_ioctl(ifname, SIOCSIWEAPOLSEND, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWEAPOLSEND] error\n"); - ret = -1; - } - return ret; + iwr.u.data.flags = flags; + return iw_ioctl(ifname, SIOCSIWEAPOLSEND, &iwr); } - - #if CONFIG_ENABLE_P2P -int wext_send_mgnt(const char *ifname, char *buf, __u16 buf_len, __u16 flags) -{ +int wext_send_mgnt(const char *ifname, char *buf, __u16 buf_len, __u16 flags) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.data.pointer = buf; iwr.u.data.length = buf_len; - iwr.u.data.flags = flags; - if (iw_ioctl(ifname, SIOCSIWMGNTSEND, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWMGNTSEND] error\n"); - ret = -1; - } - return ret; + iwr.u.data.flags = flags; + return iw_ioctl(ifname, SIOCSIWMGNTSEND, &iwr); } #endif -int wext_set_gen_ie(const char *ifname, char *buf, __u16 buf_len, __u16 flags) -{ +int wext_set_gen_ie(const char *ifname, char *buf, __u16 buf_len, __u16 flags) { struct iwreq iwr; - int ret = 0; - memset(&iwr, 0, sizeof(iwr)); iwr.u.data.pointer = buf; iwr.u.data.length = buf_len; - iwr.u.data.flags = flags; - if (iw_ioctl(ifname, SIOCSIWGENIE, &iwr) < 0) { - wext_printf("ioctl[SIOCSIWGENIE] error\n"); - ret = -1; - } - return ret; + iwr.u.data.flags = flags; + return iw_ioctl(ifname, SIOCSIWGENIE, &iwr); } -int wext_set_autoreconnect(const char *ifname, __u8 mode, __u8 retyr_times, __u16 timeout) -{ +int wext_set_autoreconnect(const char *ifname, __u8 mode, __u8 retyr_times, + __u16 timeout) { struct iwreq iwr; int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u8 para[sizeof("SetAutoRecnt") + 4]; + int cmd_len = sizeof("SetAutoRecnt"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("SetAutoRecnt"); - para = pvPortMalloc((4) + cmd_len);//size:para_len+cmd_len - if(para == NULL) return -1; - //Cmd - snprintf((char*)para, cmd_len, "SetAutoRecnt"); + snprintf((char*) para, cmd_len, "SetAutoRecnt"); //length - *(para+cmd_len) = mode; //para1 - *(para+cmd_len+1) = retyr_times; //para2 - *(para+cmd_len+2) = timeout; //para3 - - iwr.u.data.pointer = para; - iwr.u.data.length = (4) + cmd_len; - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_set_autoreconnect():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - vPortFree(para); - return ret; + *(para + cmd_len) = mode; //para1 + *(para + cmd_len + 1) = retyr_times; //para2 + *(para + cmd_len + 2) = timeout; //para3 + iwr.u.data.pointer = ¶[0]; + iwr.u.data.length = sizeof(para); + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); } -int wext_get_autoreconnect(const char *ifname, __u8 *mode) -{ +int wext_get_autoreconnect(const char *ifname, __u8 *mode) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u8 para[sizeof("GetAutoRecnt") + 1]; + int cmd_len = sizeof("GetAutoRecnt"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("GetAutoRecnt"); - para = pvPortMalloc(cmd_len);//size:para_len+cmd_len //Cmd - snprintf((char*)para, cmd_len, "GetAutoRecnt"); + snprintf((char*) para, cmd_len, "GetAutoRecnt"); //length - - iwr.u.data.pointer = para; + iwr.u.data.pointer = ¶[0]; iwr.u.data.length = cmd_len; - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_get_autoreconnect():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - *mode = *(__u8 *)(iwr.u.data.pointer); - vPortFree(para); + int ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + if (ret >= 0) + *mode = *(__u8 *) (iwr.u.data.pointer); return ret; } -int wext_get_drv_ability(const char *ifname, __u32 *ability) -{ - int ret = 0; - char * buf = (char *)rtw_zmalloc(33); - if(buf == NULL) return -1; - - snprintf(buf, 33, "get_drv_ability %x", ability); - ret = wext_private_command(ifname, buf, 0); - - rtw_free(buf); +int wext_get_drv_ability(const char *ifname, __u32 *ability) { + int ret = -1; + char * buf = (char *) pvPortMalloc(33); + if (buf != NULL) { + memset(buf, 0, 33); + snprintf(buf, 33, "get_drv_ability %x", ability); + ret = wext_private_command(ifname, buf, 0); + vPortFree(buf); + } +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif return ret; } #ifdef CONFIG_CUSTOM_IE -int wext_add_custom_ie(const char *ifname, void *cus_ie, int ie_num) -{ +int wext_add_custom_ie(const char *ifname, void *cus_ie, int ie_num) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - if(ie_num <= 0 || !cus_ie){ - wext_printf("wext_add_custom_ie():wrong parameter\n"); - ret = -1; - return ret; + int ret = -1; + __u8 *para; + int cmd_len = sizeof("SetCusIE"); + if (ie_num <= 0 || !cus_ie) { +#if CONFIG_DEBUG_LOG > 3 + wext_printf("%s: wrong parameter!\n", __func__); +#endif + } else { + memset(&iwr, 0, sizeof(iwr)); + para = pvPortMalloc((4) * 2 + cmd_len); //size:addr len+cmd_len + if (para != NULL) { + //Cmd + snprintf(para, cmd_len, "SetCusIE"); + //addr length + *(__u32 *) (para + cmd_len) = (__u32 ) cus_ie; //ie addr + //ie_num + *(__u32 *) (para + cmd_len + 4) = ie_num; //num of ie + + iwr.u.data.pointer = para; + iwr.u.data.length = (4) * 2 + cmd_len; // 2 input + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + vPortFree(para); + } +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif } - memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("SetCusIE"); - para = pvPortMalloc((4)* 2 + cmd_len);//size:addr len+cmd_len - if(para == NULL) return -1; - - //Cmd - snprintf(para, cmd_len, "SetCusIE"); - //addr length - *(__u32 *)(para + cmd_len) = (__u32)cus_ie; //ie addr - //ie_num - *(__u32 *)(para + cmd_len + 4) = ie_num; //num of ie - - iwr.u.data.pointer = para; - iwr.u.data.length = (4)* 2 + cmd_len;// 2 input - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_add_custom_ie():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - vPortFree(para); - return ret; } -int wext_update_custom_ie(const char *ifname, void * cus_ie, int ie_index) -{ +int wext_update_custom_ie(const char *ifname, void * cus_ie, int ie_index) { struct iwreq iwr; - int ret = 0; + int ret = -1; __u8 *para = NULL; - int cmd_len = 0; - if(ie_index <= 0 || !cus_ie){ - wext_printf("wext_update_custom_ie():wrong parameter\n"); - ret = -1; - return ret; + int cmd_len = sizeof("UpdateIE"); + if (ie_index <= 0 || !cus_ie) { +#if CONFIG_DEBUG_LOG > 3 + wext_printf("%s: wrong parameter!\n", __func__); +#endif + } else { + memset(&iwr, 0, sizeof(iwr)); + cmd_len = para = pvPortMalloc((4) * 2 + cmd_len); //size:addr len+cmd_len + if (para != NULL) { + //Cmd + snprintf(para, cmd_len, "UpdateIE"); + //addr length + *(__u32 *) (para + cmd_len) = (__u32 ) cus_ie; //ie addr + //ie_index + *(__u32 *) (para + cmd_len + 4) = ie_index; //num of ie + + iwr.u.data.pointer = para; + iwr.u.data.length = (4) * 2 + cmd_len; // 2 input + ret = iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); + vPortFree(para); + } +#if CONFIG_DEBUG_LOG > 3 + else + error_printf("%s: Can't malloc memory!\n", __func__); +#endif } - memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("UpdateIE"); - para = pvPortMalloc((4)* 2 + cmd_len);//size:addr len+cmd_len - if(para == NULL) return -1; - - //Cmd - snprintf(para, cmd_len, "UpdateIE"); - //addr length - *(__u32 *)(para + cmd_len) = (__u32)cus_ie; //ie addr - //ie_index - *(__u32 *)(para + cmd_len + 4) = ie_index; //num of ie - - iwr.u.data.pointer = para; - iwr.u.data.length = (4)* 2 + cmd_len;// 2 input - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_update_custom_ie():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - vPortFree(para); - return ret; - } -int wext_del_custom_ie(const char *ifname) -{ +int wext_del_custom_ie(const char *ifname) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u8 para[sizeof("DelIE")]; memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("DelIE"); - para = pvPortMalloc(cmd_len);//size:addr len+cmd_len //Cmd - snprintf(para, cmd_len, "DelIE"); - - iwr.u.data.pointer = para; - iwr.u.data.length = cmd_len; - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_del_custom_ie():ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - vPortFree(para); - - return ret; - - + snprintf(para, sizeof("DelIE"), "DelIE"); + iwr.u.data.pointer = ¶[0]; + iwr.u.data.length = sizeof("DelIE"); + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); } #endif #ifdef CONFIG_AP_MODE -int wext_enable_forwarding(const char *ifname) -{ +int wext_set_forwarding(const char *ifname, char flg) { struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - + __u8 para[sizeof("forwarding_set") + 1]; + int cmd_len = sizeof("forwarding_set"); memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("forwarding_set"); - para = pvPortMalloc(cmd_len + 1); - if(para == NULL) return -1; - // forwarding_set 1 snprintf((char *) para, cmd_len, "forwarding_set"); - *(para + cmd_len) = '1'; - + *(para + cmd_len) = flg; iwr.u.essid.pointer = para; iwr.u.essid.length = cmd_len + 1; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_enable_forwarding(): ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - - vPortFree(para); - return ret; + return iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr); +} +int wext_enable_forwarding(const char *ifname) { + return wext_set_forwarding(ifname, '1'); } -int wext_disable_forwarding(const char *ifname) -{ - struct iwreq iwr; - int ret = 0; - __u8 *para = NULL; - int cmd_len = 0; - - memset(&iwr, 0, sizeof(iwr)); - cmd_len = sizeof("forwarding_set"); - para = pvPortMalloc(cmd_len + 1); - if(para == NULL) return -1; - - // forwarding_set 0 - snprintf((char *) para, cmd_len, "forwarding_set"); - *(para + cmd_len) = '0'; - - iwr.u.essid.pointer = para; - iwr.u.essid.length = cmd_len + 1; - - if (iw_ioctl(ifname, SIOCDEVPRIVATE, &iwr) < 0) { - wext_printf("wext_disable_forwarding(): ioctl[SIOCDEVPRIVATE] error\n"); - ret = -1; - } - - vPortFree(para); - return ret; - +int wext_disable_forwarding(const char *ifname) { + return wext_set_forwarding(ifname, '0'); } #endif #ifdef CONFIG_CONCURRENT_MODE -int wext_set_ch_deauth(const char *ifname, __u8 enable) -{ - int ret = 0; - char * buf = (char *)rtw_zmalloc(16); - if(buf == NULL) return -1; - +int wext_set_ch_deauth(const char *ifname, __u8 enable) { + char buf[16]; + memset(buf, 0, 16); snprintf(buf, 16, "SetChDeauth %d", enable); - ret = wext_private_command(ifname, buf, 0); - - rtw_free(buf); - return ret; + return wext_private_command(ifname, buf, 0); } #endif -int wext_set_adaptivity(rtw_adaptivity_mode_t adaptivity_mode) -{ +int wext_set_adaptivity(rtw_adaptivity_mode_t adaptivity_mode) { extern u8 rtw_adaptivity_en; extern u8 rtw_adaptivity_mode; - switch(adaptivity_mode){ - case RTW_ADAPTIVITY_NORMAL: - rtw_adaptivity_en = 1; // enable adaptivity - rtw_adaptivity_mode = RTW_ADAPTIVITY_MODE_NORMAL; - break; - case RTW_ADAPTIVITY_CARRIER_SENSE: - rtw_adaptivity_en = 1; // enable adaptivity - rtw_adaptivity_mode = RTW_ADAPTIVITY_MODE_CARRIER_SENSE; - break; - case RTW_ADAPTIVITY_DISABLE: - default: - rtw_adaptivity_en = 0; //disable adaptivity - break; + switch (adaptivity_mode) { + case RTW_ADAPTIVITY_NORMAL: + rtw_adaptivity_en = 1; // enable adaptivity + rtw_adaptivity_mode = RTW_ADAPTIVITY_MODE_NORMAL; + break; + case RTW_ADAPTIVITY_CARRIER_SENSE: + rtw_adaptivity_en = 1; // enable adaptivity + rtw_adaptivity_mode = RTW_ADAPTIVITY_MODE_CARRIER_SENSE; + break; + case RTW_ADAPTIVITY_DISABLE: + default: + rtw_adaptivity_en = 0; //disable adaptivity + break; } return 0; } -int wext_set_adaptivity_th_l2h_ini(__u8 l2h_threshold) -{ +int wext_set_adaptivity_th_l2h_ini(__u8 l2h_threshold) { extern s8 rtw_adaptivity_th_l2h_ini; - rtw_adaptivity_th_l2h_ini = (__s8)l2h_threshold; + rtw_adaptivity_th_l2h_ini = (__s8 ) l2h_threshold; return 0; } -extern int rltk_get_auto_chl(const char *ifname, unsigned char *channel_set, int channel_num); +extern int rltk_get_auto_chl(const char *ifname, unsigned char *channel_set, + int channel_num); -int wext_get_auto_chl(const char *ifname, unsigned char *channel_set, unsigned char channel_num) -{ +int wext_get_auto_chl(const char *ifname, unsigned char *channel_set, + unsigned char channel_num) { int ret = -1; int channel = 0; wext_disable_powersave(ifname); - if((channel = rltk_get_auto_chl(ifname,channel_set,channel_num)) != 0 ) - ret = channel ; + if ((channel = rltk_get_auto_chl(ifname, channel_set, channel_num)) != 0) + ret = channel; wext_enable_powersave(ifname, 1, 1); return ret; } extern int rltk_set_sta_num(unsigned char ap_sta_num); -int wext_set_sta_num(unsigned char ap_sta_num) -{ +int wext_set_sta_num(unsigned char ap_sta_num) { return rltk_set_sta_num(ap_sta_num); } extern int rltk_del_station(const char *ifname, unsigned char *hwaddr); -int wext_del_station(const char *ifname, unsigned char* hwaddr) -{ +int wext_del_station(const char *ifname, unsigned char* hwaddr) { return rltk_del_station(ifname, hwaddr); } extern struct list_head *mf_list_head; -int wext_init_mac_filter(void) -{ - if(mf_list_head != NULL){ - return -1; +int wext_init_mac_filter(void) { + int ret = -1; + if (mf_list_head == NULL) { + mf_list_head = malloc(sizeof(struct list_head)); + if (mf_list_head != NULL) { + INIT_LIST_HEAD(mf_list_head); + ret = 0; + } +#if CONFIG_DEBUG_LOG > 3 + else error_printf("%s: Can't malloc memory!\n", __func__); +#endif } - - mf_list_head = malloc(sizeof(struct list_head)); - if(mf_list_head == NULL){ - wext_printf("ERROR: %s : can't allocate mf_list_head\n",__func__); - return -1; - } - - INIT_LIST_HEAD(mf_list_head); - - return 0; + return ret; } -int wext_deinit_mac_filter(void) -{ - if(mf_list_head == NULL){ - return -1; - } - struct list_head *iterator; - rtw_mac_filter_list_t *item; - list_for_each(iterator, mf_list_head) { - item = list_entry(iterator, rtw_mac_filter_list_t, node); - list_del(iterator); - free(item); - item = NULL; - iterator = mf_list_head; - } - - free(mf_list_head); - mf_list_head = NULL; - return 0; -} - -int wext_add_mac_filter(unsigned char* hwaddr) -{ - if(mf_list_head == NULL){ - return -1; - } - - rtw_mac_filter_list_t *mf_list_new; - mf_list_new = malloc(sizeof(rtw_mac_filter_list_t)); - if(mf_list_new == NULL){ - wext_printf("ERROR: %s : can't allocate mf_list_new",__func__); - return -1; - } - memcpy(mf_list_new->mac_addr,hwaddr,6); - list_add(&(mf_list_new->node), mf_list_head); - - return 0; -} - -int wext_del_mac_filter(unsigned char* hwaddr) -{ - if(mf_list_head == NULL){ - return -1; - } - - struct list_head *iterator; - rtw_mac_filter_list_t *item; - list_for_each(iterator, mf_list_head) { - item = list_entry(iterator, rtw_mac_filter_list_t, node); - if(memcmp(item->mac_addr,hwaddr,6) == 0){ +int wext_deinit_mac_filter(void) { + int ret = -1; + if (mf_list_head != NULL) { + struct list_head *iterator; + rtw_mac_filter_list_t *item; + list_for_each(iterator, mf_list_head) + { + item = list_entry(iterator, rtw_mac_filter_list_t, node); list_del(iterator); free(item); item = NULL; - return 0; + iterator = mf_list_head; + } + free(mf_list_head); + mf_list_head = NULL; + ret = 0; + } + return ret; +} + +int wext_add_mac_filter(unsigned char* hwaddr) { + int ret = -1; + if (mf_list_head != NULL) { + rtw_mac_filter_list_t *mf_list_new; + mf_list_new = malloc(sizeof(rtw_mac_filter_list_t)); + if (mf_list_new != NULL) { + memcpy(mf_list_new->mac_addr, hwaddr, 6); + list_add(&(mf_list_new->node), mf_list_head); + ret = 0; + } +#if CONFIG_DEBUG_LOG > 3 + else error_printf("%s: Can't malloc memory!\n", __func__); +#endif + } + return ret; +} + +int wext_del_mac_filter(unsigned char* hwaddr) { + int ret = -1; + if (mf_list_head != NULL) { + struct list_head *iterator; + rtw_mac_filter_list_t *item; + list_for_each(iterator, mf_list_head) + { + item = list_entry(iterator, rtw_mac_filter_list_t, node); + if (memcmp(item->mac_addr, hwaddr, 6) == 0) { + list_del(iterator); + free(item); + item = NULL; + ret = 0; + } } } - return -1; + return ret; } 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 3a3b51c..76c9364 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 @@ -7,15 +7,16 @@ #include "osdep_service.h" #include "freertos/wrapper.h" +#include "rtl_bios_data.h" -#define _atr_aligned2_ __attribute__((aligned(2))) -#define _atr_aligned4_ __attribute__((aligned(4))) -#define _atr_aligned8_ __attribute__((aligned(4))) +#define _atr_aligned2_ __attribute__((aligned(2))) +#define _atr_aligned4_ __attribute__((aligned(4))) +#define _atr_aligned8_ __attribute__((aligned(4))) #define sint8_t char #define sint16_t short #define sint32_t int -#define sint64_t long long +//#define sint64_t long long // warning align(8)! /* struct _ADAPTER; struct dvobj_priv; @@ -45,7 +46,7 @@ //typedef uint32_t dma_addr_t; // basic_types.h //typedef uint8_t uint8_t; //typedef uint16_t uint16_t; -//typedef unsigned sint64_t uint64_t; +//typedef unsigned sint64_t u8Byte; typedef int sint; typedef uint8_t BOOL; typedef uint8_t bool; @@ -55,6 +56,7 @@ typedef uint8_t u1Byte; typedef uint16_t u2Byte; typedef uint32_t u4Byte; typedef uint64_t u8Byte; +typedef uint64_t __attribute__((aligned(4))) _u8Byte; typedef sint8_t s1Byte; typedef sint16_t s2Byte; typedef sint32_t s4Byte; @@ -365,7 +367,6 @@ struct _NDIS_802_11_SSID { uint32_t SsidLength; uint8_t Ssid[36]; }; - typedef struct _NDIS_802_11_SSID NDIS_802_11_SSID; typedef uint8_t NDIS_802_11_MAC_ADDRESS[6]; typedef int NDIS_802_11_RSSI; @@ -545,7 +546,7 @@ struct mlme_priv { uint8_t key_mask; uint8_t acm_mask; uint8_t ChannelPlan; - RT_SCAN_TYPE scan_mode; + uint8_t scan_mode; // RT_SCAN_TYPE scan_mode; byte/dword ?? uint8_t *wps_probe_req_ie; uint32_t wps_probe_req_ie_len; uint8_t *wps_assoc_req_ie; @@ -566,12 +567,12 @@ struct mlme_priv { _lock bcn_update_lock; uint8_t update_bcn; uint8_t scanning_via_buddy_intf; - union recv_frame *p_copy_recv_frame; + struct recv_frame *p_copy_recv_frame; }; struct _atr_aligned4_ _RT_CHANNEL_INFO { uint8_t ChannelNum; - RT_SCAN_TYPE ScanType; + RT_SCAN_TYPE ScanType; // uint8_t ScanType; // byte/dword? uint8_t pscan_config; }; typedef struct _RT_CHANNEL_INFO RT_CHANNEL_INFO; @@ -603,22 +604,18 @@ struct WMM_para_element { struct AC_param ac_param[4]; }; -struct _atr_aligned4_ $FE810F6EACF8FAA6CBF1198AEAF43F3A { - uint16_t HT_caps_info; - uint8_t AMPDU_para; - uint8_t MCS_rate[16]; - uint16_t HT_ext_caps; - uint32_t Beamforming_caps; - uint8_t ASEL_caps; -}; - -union $4DB0E692E0E1D0D49E1F34B7B8486D8E { - struct $FE810F6EACF8FAA6CBF1198AEAF43F3A HT_cap_element; - uint8_t HT_cap[26]; -}; - struct HT_caps_element { - union $4DB0E692E0E1D0D49E1F34B7B8486D8E u; + union { + struct _atr_aligned4_ { + uint16_t HT_caps_info; + uint8_t AMPDU_para; + uint8_t MCS_rate[16]; + uint16_t HT_ext_caps; + uint32_t Beamforming_caps; + uint8_t ASEL_caps; + } HT_cap_element; + uint8_t HT_cap[26]; + }u; }; struct HT_info_element { @@ -685,8 +682,8 @@ typedef struct _cus_ie{ #endif /* _CUS_IE_ */ // typedef struct _cus_ie *p_cus_ie; -struct _atr_aligned2_ mlme_ext_priv { //__attribute__((packed))? - _adapter *padapter; +struct mlme_ext_priv { //__attribute__((packed))? + _adapter *padapter; //+0 padapter+1256 [912] uint8_t mlmeext_init; struct atomic_t event_seq; uint16_t mgnt_seq; @@ -698,15 +695,15 @@ struct _atr_aligned2_ mlme_ext_priv { //__attribute__((packed))? RT_CHANNEL_INFO channel_set[14]; uint8_t basicrate[13]; uint8_t datarate[13]; - struct ss_res sitesurvey_res; - struct mlme_ext_info mlmext_info; + struct ss_res sitesurvey_res; //padapter+1472 + struct mlme_ext_info mlmext_info; //padapter+1528 _timer survey_timer; _timer link_timer; - uint16_t chan_scan_time; - uint8_t scan_abort; - uint8_t tx_rate; - uint8_t retry; - uint64_t TSFValue; + uint16_t chan_scan_time; //padapter+1984 + uint8_t scan_abort; //padapter+1986 + uint8_t tx_rate; //padapter+1987 + uint8_t retry; //padapter+1988 + _u8Byte TSFValue; //+740? padapter+1992 uint8_t bstart_bss; uint16_t action_public_rxseq; _timer reconnect_timer; @@ -784,11 +781,11 @@ struct _atr_aligned8_ xmit_priv { uint8_t vcs_setting; uint8_t vcs; uint8_t vcs_type; - uint64_t tx_bytes; - uint64_t tx_pkts; - uint64_t tx_drop; - uint64_t last_tx_bytes; - uint64_t last_tx_pkts; + u8Byte tx_bytes; + u8Byte tx_pkts; + u8Byte tx_drop; + u8Byte last_tx_bytes; + u8Byte last_tx_pkts; struct hw_xmit *hwxmits; uint8_t hwxmit_entry; struct rtw_tx_ring tx_ring[8]; @@ -830,11 +827,11 @@ struct _atr_aligned8_ recv_priv { uint32_t free_recvframe_cnt; _adapter *adapter; uint32_t bIsAnyNonBEPkts; - uint64_t rx_bytes; - uint64_t rx_pkts; - uint64_t rx_drop; - uint64_t rx_overflow; - uint64_t last_rx_bytes; + u8Byte rx_bytes; + u8Byte rx_pkts; + u8Byte rx_drop; + u8Byte rx_overflow; + u8Byte last_rx_bytes; uint32_t rx_icv_err; uint32_t rx_largepacket_crcerr; uint32_t rx_smallpacket_crcerr; @@ -898,20 +895,20 @@ union Keytype { uint32_t lkey[4]; }; -struct $7EAAF07643C317F97751F130E632CB13 { - uint8_t TSC0; - uint8_t TSC1; - uint8_t TSC2; - uint8_t TSC3; - uint8_t TSC4; - uint8_t TSC5; - uint8_t TSC6; - uint8_t TSC7; -}; + union pn48 { - uint64_t val; - struct $7EAAF07643C317F97751F130E632CB13 _byte_; + u8Byte val; + struct { + uint8_t TSC0; + uint8_t TSC1; + uint8_t TSC2; + uint8_t TSC3; + uint8_t TSC4; + uint8_t TSC5; + uint8_t TSC6; + uint8_t TSC7; + }_byte_; }; struct _NDIS_802_11_WEP { @@ -1091,7 +1088,7 @@ struct _atr_aligned4_ pwrctrl_priv { uint8_t smart_ps; uint8_t bcn_ant_mode; uint32_t alives; - uint64_t wowlan_fw_iv; + u8Byte wowlan_fw_iv; uint8_t bpower_saving; uint8_t b_hw_radio_off; uint8_t reg_rfoff; @@ -1310,10 +1307,12 @@ struct recv_frame_hdr { struct sta_info *psta; }; -union recv_frame { +struct recv_frame { +union { _list list; struct recv_frame_hdr hdr; uint32_t mem[32]; + }; }; /* union $AB04817EA6EB89125E28056B7464A4D7 { @@ -1380,22 +1379,22 @@ struct sta_recv_priv { }; struct stainfo_stats { - uint64_t rx_mgnt_pkts; - uint64_t rx_ctrl_pkts; - uint64_t rx_data_pkts; - uint64_t last_rx_mgnt_pkts; - uint64_t last_rx_ctrl_pkts; - uint64_t last_rx_data_pkts; - uint64_t rx_bytes; - uint64_t tx_pkts; - uint64_t tx_bytes; + u8Byte rx_mgnt_pkts; + u8Byte rx_ctrl_pkts; + u8Byte rx_data_pkts; + u8Byte last_rx_mgnt_pkts; + u8Byte last_rx_ctrl_pkts; + u8Byte last_rx_data_pkts; + u8Byte rx_bytes; + u8Byte tx_pkts; + u8Byte tx_bytes; }; struct _RSSI_STA { int32_t UndecoratedSmoothedPWDB; int32_t UndecoratedSmoothedCCK; int32_t UndecoratedSmoothedOFDM; - uint64_t PacketMap; + u8Byte PacketMap; uint8_t ValidBit; uint32_t OFDM_pkt; }; @@ -1980,61 +1979,62 @@ struct hal_ops { struct _atr_aligned4_ _ADAPTER { uint16_t HardwareType; - uint16_t interface_type; + uint16_t interface_type; //+2 uint32_t work_mode; - struct dvobj_priv *dvobj; - struct mlme_priv mlmepriv; - struct mlme_ext_priv mlmeextpriv; - struct cmd_priv cmdpriv; - struct evt_priv evtpriv; + struct dvobj_priv *dvobj; //+8 + struct mlme_priv mlmepriv; //+12 [1244] + struct mlme_ext_priv mlmeextpriv; //+1256 [912] + struct cmd_priv cmdpriv; //+2168 + struct evt_priv evtpriv; //+ struct io_priv iopriv; - struct xmit_priv xmitpriv; - struct recv_priv recvpriv; - struct sta_priv stapriv; + struct xmit_priv xmitpriv; //+2248 + struct recv_priv recvpriv; //+2752 + struct sta_priv stapriv; //+3024 [164] struct security_priv securitypriv; struct registry_priv registrypriv; - struct pwrctrl_priv pwrctrlpriv; + struct pwrctrl_priv pwrctrlpriv; // pwrctrlpriv.bInternalAutoSuspend //+5061 struct eeprom_priv eeprompriv; PVOID HalData; uint32_t hal_data_sz; struct hal_ops HalFunc; - int32_t bDriverStopped; - int32_t bSurpriseRemoved; - int32_t bCardDisableWOHSM; - uint8_t RxStop; + int32_t bDriverStopped; //+5880 + int32_t bSurpriseRemoved; //+5884 + int32_t bCardDisableWOHSM; //+5888 + uint8_t RxStop; //+5892 uint32_t IsrContent; uint32_t ImrContent; uint8_t EepromAddressSize; - uint8_t hw_init_completed; + uint8_t hw_init_completed; //+5905 uint8_t bDriverIsGoingToUnload; uint8_t init_adpt_in_progress; uint8_t bMpDriver; uint8_t bForwardingDisabled; - struct task_struct isrThread; - struct task_struct cmdThread; - struct task_struct recvtasklet_thread; - struct task_struct xmittasklet_thread; - void (*intf_start)(_adapter *); - void (*intf_stop)(_adapter *); - _nic_hdl pnetdev; - int bup; + struct task_struct isrThread; //+5888 + struct task_struct cmdThread; //+5920 + struct task_struct recvtasklet_thread; //+5952 + struct task_struct xmittasklet_thread; //+5984 + void (*intf_start)(_adapter *); //+6008 + void (*intf_stop)(_adapter *); //+6012 + _nic_hdl pnetdev; //+6016 + int bup; //+6020 struct net_device_stats stats; - uint8_t net_closed; + uint8_t net_closed; //+6052 uint8_t bFWReady; uint8_t bLinkInfoDump; uint8_t bRxRSSIDisplay; - _adapter *pbuddy_adapter; - _mutex *hw_init_mutex; - uint8_t isprimary; - uint8_t adapter_type; - uint8_t iface_type; - _mutex *ph2c_fwcmd_mutex; - _mutex *psetch_mutex; - _mutex *psetbw_mutex; - struct co_data_priv *pcodatapriv; - uint8_t fix_rate; -}; + _adapter *pbuddy_adapter; //+6056 + _mutex *hw_init_mutex; //+6060 + uint8_t isprimary; //+6064 + uint8_t adapter_type; //+6065 + uint8_t iface_type; //+6056 + _mutex *ph2c_fwcmd_mutex; //+6068 + _mutex *psetch_mutex; //+6072 + _mutex *psetbw_mutex; //+6076 + struct co_data_priv *pcodatapriv; //+6080 + uint8_t fix_rate; //+6084 +}; // [6088] (!) typedef struct _ADAPTER *PADAPTER; +// if sizeof(struct _ADAPTER) != 6088 #error "Check aligned struct!" ! enum tag_HAL_IC_Type_Definition // : sint32_t { @@ -2315,7 +2315,7 @@ struct _ODM_NOISE_MONITOR_ { s2Byte noise_all; }; typedef struct _ODM_NOISE_MONITOR_ ODM_NOISE_MONITOR; - +/* in rtl_bios_data.h struct _FALSE_ALARM_STATISTICS { u4Byte Cnt_Parity_Fail; u4Byte Cnt_Rate_Illegal; @@ -2334,6 +2334,7 @@ struct _FALSE_ALARM_STATISTICS { u4Byte Cnt_BW_LSC; }; typedef struct _FALSE_ALARM_STATISTICS FALSE_ALARM_STATISTICS; +*/ enum _BASEBAND_CONFIG_PHY_REG_PG_VALUE_TYPE //: sint32_t { @@ -2341,6 +2342,7 @@ enum _BASEBAND_CONFIG_PHY_REG_PG_VALUE_TYPE //: sint32_t }; typedef enum _BASEBAND_CONFIG_PHY_REG_PG_VALUE_TYPE PHY_REG_PG_TYPE; +/* in rtl_bios_data.h struct _atr_aligned4_ _CFO_TRACKING_ { BOOLEAN bATCStatus; BOOLEAN largeCFOHit; @@ -2358,7 +2360,8 @@ struct _atr_aligned4_ _CFO_TRACKING_ { u1Byte CFO_TH_ATC; }; typedef struct _CFO_TRACKING_ CFO_TRACKING; - +*/ +/* in rtl_bios_data.h struct _atr_aligned8_ _ROM_INFO { u1Byte EEPROMVersion; u1Byte CrystalCap; @@ -2366,6 +2369,8 @@ struct _atr_aligned8_ _ROM_INFO { u4Byte DebugLevel; }; typedef struct _ROM_INFO ROM_INFO; +*/ + typedef struct _ROM_INFO *PROM_INFO; typedef struct sta_info *PSTA_INFO_T; @@ -3269,7 +3274,7 @@ typedef int (*mac_monitor_ptr)(uint8_t *, char); struct mlme_handler { uint32_t num; - uint32_t (*func)(_adapter *, union recv_frame *); + uint32_t (*func)(_adapter *, struct recv_frame *); }; struct fwevent { 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 111e677..5559791 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 @@ -271,7 +271,7 @@ extern int rtw_ps_enable(int enable); extern int rltk_wifi_fw_test(int argc, char **argv); // Data declarations extern _list timer_table; -extern struct net_device *rltk_wlan_info; +extern Rltk_wlan_t rltk_wlan_info[2]; // in wrapper.h extern int timer_used_num; extern int max_timer_used_num; //-------------------------------- @@ -527,12 +527,12 @@ extern _sema *pExportWlanIrqSemaphore; // freertos_recv.o // Function declarations extern int rtw_os_recv_resource_init(struct recv_priv *precvpriv, _adapter *padapter); -extern int rtw_os_recv_resource_alloc(_adapter *padapter, union recv_frame *precvframe); +extern int rtw_os_recv_resource_alloc(_adapter *padapter, struct recv_frame *precvframe); extern int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf); extern int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf); extern int rtw_tkip_countermeasure(_adapter *padapter); extern void rtw_handle_tkip_mic_err(_adapter *padapter, int bgroup); -extern int rtw_recv_indicatepkt(_adapter *padapter, union recv_frame *precv_frame); +extern int rtw_recv_indicatepkt(_adapter *padapter, struct recv_frame *precv_frame); extern void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl); //-------------------------------- @@ -951,10 +951,10 @@ extern int32_t rtl8195a_init_recv_priv(_adapter *padapter); //-------------------------------- // rtl8195a_rxdesc.o // Function declarations -extern void process_rssi(_adapter *padapter, union recv_frame *prframe); +extern void process_rssi(_adapter *padapter, struct recv_frame *prframe); extern int32_t translate2dbm(int signal_strength_idx); -extern void rtl8195a_query_rx_desc_status(union recv_frame *precvframe, uint8_t *pdesc); -extern void rtl8195a_query_rx_phy_status(union recv_frame *precvframe, uint8_t *pphy_status, int a3); +extern void rtl8195a_query_rx_desc_status(struct recv_frame *precvframe, uint8_t *pdesc); +extern void rtl8195a_query_rx_phy_status(struct recv_frame *precvframe, uint8_t *pphy_status, int a3); // Data declarations //-------------------------------- // rtl8195a_xmit.o @@ -1057,16 +1057,16 @@ extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char *, int, char *, int // Function declarations extern u8 *get_da(u8 *pframe); extern u8 *get_sa(u8 *pframe); -extern signed int OnAction(_adapter *padapter, union recv_frame *precv_frame); -extern signed int DoReserved(_adapter *padapter, union recv_frame *precv_frame); -extern void mgt_dispatcher(_adapter *padapter, struct mlme_handler *ptable, union recv_frame *precv_frame); +extern signed int OnAction(_adapter *padapter, struct recv_frame *precv_frame); +extern signed int DoReserved(_adapter *padapter, struct recv_frame *precv_frame); +extern void mgt_dispatcher(_adapter *padapter, struct mlme_handler *ptable, struct recv_frame *precv_frame); extern int rtw_is_channel_set_contains_channel(RT_CHANNEL_INFO *channel_set, const uint32_t channel_num, int *pchannel_idx); extern int init_hw_mlme_ext(_adapter *padapter); extern unsigned int init_channel_set(_adapter *padapter, int ChannelPlan, RT_CHANNEL_INFO *channel_set); extern void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext); -//void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame, int a3); -extern unsigned int OnAction_public(_adapter *padapter, union recv_frame *precv_frame); -extern signed int OnAction_p2p(_adapter *padapter, union recv_frame *precv_frame); +//void mgt_dispatcher(_adapter *padapter, struct recv_frame *precv_frame, int a3); +extern unsigned int OnAction_public(_adapter *padapter, struct recv_frame *precv_frame); +extern signed int OnAction_p2p(_adapter *padapter, struct recv_frame *precv_frame); extern struct xmit_frame *alloc_mgtxmitframe(struct xmit_priv *pxmitpriv); extern struct xmit_frame *alloc_FwRsvdframe(struct xmit_priv *pxmitpriv, uint32_t size); extern void update_mgnt_tx_rate(_adapter *padapter, uint8_t rate); @@ -1078,36 +1078,36 @@ extern void issue_action_BSSCoexistPacket(_adapter *padapter); extern uint32_t update_hidden_ssid(uint8_t *ies, uint32_t ies_len, int hidden_ssid_mode); extern void issue_beacon(_adapter *padapter); extern void issue_probersp(_adapter *padapter, u8 *da, uint8_t is_valid_p2p_probereq); -extern signed int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnProbeReq(_adapter *padapter, struct recv_frame *precv_frame); extern void issue_probereq(_adapter *padapter, NDIS_802_11_SSID *pssid, int blnbc); extern void issue_auth(_adapter *padapter, struct sta_info *psta, int status); -extern signed int OnAuth(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnAuth(_adapter *padapter, struct recv_frame *precv_frame); extern void issue_asocrsp(_adapter *padapter, uint16_t status, struct sta_info *pstat, int pkt_type); extern void issue_assocreq(_adapter *padapter); extern void issue_nulldata(_adapter *padapter, unsigned int power_mode); extern void issue_qos_nulldata(_adapter *padapter, u8 *da, uint16_t tid); extern void issue_deauth(_adapter *padapter, u8 *da, uint32_t reason); extern void issue_action_BA(_adapter *padapter, u8 *raddr, u8 action, uint16_t status); -extern signed int OnAction_back(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnAction_back(_adapter *padapter, struct recv_frame *precv_frame); extern signed int send_beacon(_adapter *padapter); -extern signed int collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSID_EX *bssid); +extern signed int collect_bss_info(_adapter *padapter, struct recv_frame *precv_frame, WLAN_BSSID_EX *bssid); extern void start_clnt_auth(_adapter *padapter); extern void start_clnt_assoc(_adapter *padapter); -extern signed int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnAuthClient(_adapter *padapter, struct recv_frame *precv_frame); extern int report_scan_result_one(_adapter *padapter, WLAN_BSSID_EX *bssid); extern int add_site_survey(_adapter *padapter, WLAN_BSSID_EX *bssid); -extern void report_survey_event(_adapter *padapter, union recv_frame *precv_frame); -extern signed int OnProbeRsp(_adapter *padapter, union recv_frame *precv_frame); +extern void report_survey_event(_adapter *padapter, struct recv_frame *precv_frame); +extern signed int OnProbeRsp(_adapter *padapter, struct recv_frame *precv_frame); extern void report_surveydone_event(_adapter *padapter); extern void report_join_res(_adapter *padapter, int res); -extern signed int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnAssocRsp(_adapter *padapter, struct recv_frame *precv_frame); extern void report_del_sta_event(_adapter *padapter, u8 *MacAddr, uint16_t reason); extern signed int receive_disconnect(_adapter *padapter, u8 *MacAddr, uint16_t reason); -extern signed int OnBeacon(_adapter *padapter, union recv_frame *precv_frame); -extern signed int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame); -extern signed int OnDisassoc(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnBeacon(_adapter *padapter, struct recv_frame *precv_frame); +extern signed int OnDeAuth(_adapter *padapter, struct recv_frame *precv_frame); +extern signed int OnDisassoc(_adapter *padapter, struct recv_frame *precv_frame); extern void report_add_sta_event(_adapter *padapter, u8 *MacAddr, int cam_idx); -extern signed int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame); +extern signed int OnAssocReq(_adapter *padapter, struct recv_frame *precv_frame); extern signed int rtw_port_switch_chk(_adapter *adapter); extern void update_sta_info(_adapter *padapter, struct sta_info *psta); extern void mlmeext_sta_del_event_callback(_adapter *padapter); @@ -1222,10 +1222,10 @@ extern const struct fwevent wlanevents[24]; /* = extern u8 *get_hdr_bssid(u8 *pframe); extern int filter_packet(u8 *buf, int length); extern signed int promisc_get_encrypt(_adapter *padapter, uint8_t *bssid); -extern void promisc_info_get(_adapter *padapter, union recv_frame *prframe, ieee80211_frame_info_t *ppromisc_info, int a4); +extern void promisc_info_get(_adapter *padapter, struct recv_frame *prframe, ieee80211_frame_info_t *ppromisc_info, int a4); extern void promisc_set_enable(_adapter *padapter, int enabled, int len_used); extern void promisc_deinit(_adapter *padapter); -extern int promisc_recv_func(_adapter *padapter, union recv_frame *rframe); +extern int promisc_recv_func(_adapter *padapter, struct recv_frame *rframe); extern int promisc_set(rtw_rcr_level_t enabled, void (*callback)(u8 *, unsigned int, void *), int len_used); extern int promisc_set_mgntframe(int result); extern int is_promisc_enabled(); @@ -1306,9 +1306,9 @@ extern sint rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter); extern void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv); extern struct list_head *rtw_alloc_recvframe(_queue *pfree_recv_queue); //struct list_head *rtw_alloc_recvframe(_queue *pfree_recv_queue, _irqL a2, int a3); -extern int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue); -extern sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue); -extern sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue); +extern int rtw_free_recvframe(struct recv_frame *precvframe, _queue *pfree_recv_queue); +extern sint rtw_enqueue_recvframe(struct recv_frame *precvframe, _queue *queue); +extern sint rtw_enqueue_recvframe(struct recv_frame *precvframe, _queue *queue); extern void rtw_free_recvframe_queue(_queue *pframequeue, _queue *pfree_recv_queue); extern int rtw_free_uc_swdec_pending_queue(_adapter *adapter, _irqL a2, int a3); extern void rtw_free_recv_priv(struct recv_priv *precvpriv); @@ -1316,34 +1316,34 @@ extern sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue extern uint32_t rtw_free_buf_pending_queue(_adapter *adapter); extern sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue); extern struct list_head *rtw_dequeue_recvbuf(_queue *queue, _irqL a2, int a3); -extern sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe, int a3, int a4); -extern union recv_frame *decryptor(_adapter *padapter, union recv_frame *precv_frame); -extern union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame); -extern sint recv_decache(union recv_frame *precv_frame, uint8_t bretry, struct stainfo_rxcache *prxcache); -extern void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame, int a3, int a4); -extern void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame); -extern void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info *sta); -extern sint sta2sta_data_frame(_adapter *adapter, union recv_frame *precv_frame, struct sta_info **psta, int a4); -extern sint ap2sta_data_frame(_adapter *adapter, union recv_frame *precv_frame, struct sta_info **psta); -extern sint sta2ap_data_frame(_adapter *adapter, union recv_frame *precv_frame, struct sta_info **psta); -extern sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame); -extern sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame); -extern sint wlanhdr_to_ethhdr(union recv_frame *precvframe, int a2, int a3); -extern union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q); -extern _queue *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *precv_frame); -extern sint validate_recv_mgnt_frame(PADAPTER padapter, union recv_frame **pprecv_frame); -extern sint validate_recv_frame(_adapter *adapter, union recv_frame **pprecv_frame); -extern int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe); +extern sint recvframe_chkmic(_adapter *adapter, struct recv_frame *precvframe, int a3, int a4); +extern struct recv_frame *decryptor(_adapter *padapter, struct recv_frame *precv_frame); +extern struct recv_frame *portctrl(_adapter *adapter, struct recv_frame *precv_frame); +extern sint recv_decache(struct recv_frame *precv_frame, uint8_t bretry, struct stainfo_rxcache *prxcache); +extern void process_pwrbit_data(_adapter *padapter, struct recv_frame *precv_frame, int a3, int a4); +extern void process_wmmps_data(_adapter *padapter, struct recv_frame *precv_frame); +extern void count_rx_stats(_adapter *padapter, struct recv_frame *prframe, struct sta_info *sta); +extern sint sta2sta_data_frame(_adapter *adapter, struct recv_frame *precv_frame, struct sta_info **psta, int a4); +extern sint ap2sta_data_frame(_adapter *adapter, struct recv_frame *precv_frame, struct sta_info **psta); +extern sint sta2ap_data_frame(_adapter *adapter, struct recv_frame *precv_frame, struct sta_info **psta); +extern sint validate_recv_ctrl_frame(_adapter *padapter, struct recv_frame *precv_frame); +extern sint validate_recv_data_frame(_adapter *adapter, struct recv_frame *precv_frame); +extern sint wlanhdr_to_ethhdr(struct recv_frame *precvframe, int a2, int a3); +extern struct recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q); +extern _queue *recvframe_chk_defrag(PADAPTER padapter, struct recv_frame *precv_frame); +extern sint validate_recv_mgnt_frame(PADAPTER padapter, struct recv_frame **pprecv_frame); +extern sint validate_recv_frame(_adapter *adapter, struct recv_frame **pprecv_frame); +extern int amsdu_to_msdu(_adapter *padapter, struct recv_frame *prframe); extern int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, int seq_num); -extern int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, union recv_frame *prframe); +extern int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, struct recv_frame *prframe); extern int recv_indicatepkts_in_order(_adapter *padapter, struct recv_reorder_ctrl *preorder_ctrl, int bforced); -extern int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prframe, int a3); +extern int recv_indicatepkt_reorder(_adapter *padapter, struct recv_frame *prframe, int a3); extern void rtw_reordering_ctrl_timeout_handler(void *pcontext, _irqL a2); -extern int process_recv_indicatepkts(_adapter *padapter, union recv_frame *prframe, int a3); -extern int recv_func_prehandle(_adapter *padapter, union recv_frame *rframe, int a3); -extern int recv_func_posthandle(_adapter *padapter, union recv_frame *prframe); -extern int recv_func(_adapter *padapter, union recv_frame *rframe, int a3); -extern int32_t rtw_recv_entry(union recv_frame *precvframe, int a2, int a3); +extern int process_recv_indicatepkts(_adapter *padapter, struct recv_frame *prframe, int a3); +extern int recv_func_prehandle(_adapter *padapter, struct recv_frame *rframe, int a3); +extern int recv_func_posthandle(_adapter *padapter, struct recv_frame *prframe); +extern int recv_func(_adapter *padapter, struct recv_frame *rframe, int a3); +extern int32_t rtw_recv_entry(struct recv_frame *precvframe, int a2, int a3); extern void rtw_recv_tasklet(thread_context context); // Data declarations extern const uint8_t SNAP_ETH_TYPE_APPLETALK_AARP[2]; // = { 128u, 243u }; diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/freertos/wrapper.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/freertos/wrapper.h index 4922122..bc4dbf4 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/freertos/wrapper.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/freertos/wrapper.h @@ -392,24 +392,24 @@ struct net_device_stats { }; struct net_device { - char name[16]; - void *priv; /* pointer to private data */ - unsigned char dev_addr[6]; /* set during bootup */ - int (*init)(void); - int (*open)(struct net_device *dev); - int (*stop)(struct net_device *dev); - int (*hard_start_xmit)(struct sk_buff *skb, struct net_device *dev); - int (*do_ioctl)(struct net_device *dev, struct iwreq *ifr, int cmd); - struct net_device_stats* (*get_stats)(struct net_device *dev); + char name[16]; //+0 + void *priv; //+16 _adapter /* pointer to private data */ + unsigned char dev_addr[6]; //+20 /* set during bootup */ + int (*init)(void); //+28 + int (*open)(struct net_device *dev); //+32 + int (*stop)(struct net_device *dev); //+36 + int (*hard_start_xmit)(struct sk_buff *skb, struct net_device *dev); //+40 + int (*do_ioctl)(struct net_device *dev, struct iwreq *ifr, int cmd); //+44 + struct net_device_stats* (*get_stats)(struct net_device *dev); //+48 }; typedef struct { - struct net_device *dev; /* Binding wlan driver netdev */ - void *skb; /* pending Rx packet */ - unsigned int tx_busy; - unsigned int rx_busy; - unsigned char enable; - unsigned char mac[6]; + struct net_device *dev; //+0 /* Binding wlan driver netdev */ + void *skb; //+4 /* pending Rx packet */ + unsigned int tx_busy; //+8 + unsigned int rx_busy; //+12 + unsigned char enable; //+16 + unsigned char mac[6]; //+17..23 } Rltk_wlan_t; #define netdev_priv(dev) dev->priv diff --git a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wlan_intf.h b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wlan_intf.h index 7e461b0..02d6def 100644 --- a/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wlan_intf.h +++ b/RTL00_SDKV35a/component/common/drivers/wlan/realtek/src/osdep/wlan_intf.h @@ -38,7 +38,7 @@ struct sk_buff { /************************************************************/ // #include "wrapper.h" -extern struct net_device *rltk_wlan_info; +//extern Rltk_wlan_t rltk_wlan_info[2]; //----- ------------------------------------------------------------------ // Wlan Interface opened for upper layer diff --git a/RTL00_SDKV35a/component/os/os_dep/include/osdep_service.h b/RTL00_SDKV35a/component/os/os_dep/include/osdep_service.h index c7298c5..c51bee3 100644 --- a/RTL00_SDKV35a/component/os/os_dep/include/osdep_service.h +++ b/RTL00_SDKV35a/component/os/os_dep/include/osdep_service.h @@ -113,7 +113,7 @@ struct timer_list { _timerHandle timer_hdl; - unsigned long data; + unsigned long data; // unsigned int data; ? void (*function)(void *); }; diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/misc/bsp/lib/common/GCC/export-rom_v04.txt b/RTL00_SDKV35a/component/soc/realtek/8195a/misc/bsp/lib/common/GCC/export-rom_v04.txt index 691ae6f..56a467a 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/misc/bsp/lib/common/GCC/export-rom_v04.txt +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/misc/bsp/lib/common/GCC/export-rom_v04.txt @@ -624,7 +624,9 @@ SECTIONS rom_wps_rcons = 0x35d88; rom_wps_Td4s = 0x35d94; rom_wps_Td0 = 0x35e94; - str_rom_hex_addr = 0x442D6; + str_rom_0123456789ABCDEF = 0x3ec24; /* "0123456789ABCDEF" */ + str_rom_hex_addr = 0x442D6; /* "[Addr] .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F\r\n" */ + str_rom_0123456789abcdef = 0x44660; /* "0123456789abcdef" */ __rom_b_cut_end__ = 0x4467c; __rom_c_cut_text_start__ = 0x4467c; HalInitPlatformLogUartV02 = 0x4467d; diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/misc/driver/rtl_consol.h b/RTL00_SDKV35a/component/soc/realtek/8195a/misc/driver/rtl_consol.h index 56606ad..5593a36 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/misc/driver/rtl_consol.h +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/misc/driver/rtl_consol.h @@ -29,7 +29,7 @@ #define UART_LOG_CMD_BUFLEN 127 #define MAX_ARGV 10 -extern COMMAND_TABLE UartLogRomCmdTable[6]; // in ROM (hal_diag.h) +//extern COMMAND_TABLE UartLogRomCmdTable[6]; // in ROM (hal_diag.h) typedef u32 (*ECHOFUNC)(IN u8*,...); //UART LOG echo-function type. diff --git a/build/bin/ota.bin b/build/bin/ota.bin index 5519ba7..539679d 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 984a1de..24d24bd 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 009b4b6..fc8d35f 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 b5d0240..8f03bc1 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 7fa0548..ae5e2cd 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 5451cc3..20f2146 100644 --- a/build/obj/build.nmap +++ b/build/obj/build.nmap @@ -625,8 +625,10 @@ 00035d88 A rom_wps_rcons 00035d94 A rom_wps_Td4s 00035e94 A rom_wps_Td0 +0003ec24 A str_rom_0123456789ABCDEF 0003ec24 A txt0123456789ABCDEF 000442d6 A str_rom_hex_addr +00044660 A str_rom_0123456789abcdef 0004467c A __rom_b_cut_end__ 0004467c A __rom_c_cut_text_start__ 0004467d A HalInitPlatformLogUartV02 @@ -973,2231 +975,2233 @@ 1000dbdc t wifi_disconn_hdl 1000dc44 t wifi_connected_hdl 1000dc78 t wifi_connect_local -1000dd84 T wifi_autoreconnect_hdl -1000ddc0 T patch_rltk_wlan_deinit -1000de7c T wifi_rx_beacon_hdl -1000de80 T wifi_disconnect -1000deb4 T wifi_set_channel -1000dec0 T wifi_set_mib -1000dec8 T wifi_on -1000df70 T wifi_off -1000dfec T wifi_set_pscan_chan -1000e004 T wifi_get_setting -1000e0b4 T restore_wifi_info_to_flash -1000e1e4 T wifi_connect -1000e46c t wifi_autoreconnect_thread -1000e4d4 T wifi_connect_bssid -1000e6cc T wifi_config_autoreconnect -1000e6f0 T wifi_set_autoreconnect -1000e708 T wifi_indication -1000e744 T wifi_reg_event_handler -1000e798 T wifi_unreg_event_handler -1000e7dc T init_event_callback_list -1000e7ec T promisc_deinit -1000e7f0 T promisc_recv_func -1000e7f4 T promisc_set -1000e7f8 T is_promisc_enabled -1000e802 T iw_ioctl -1000e820 T wext_get_ssid -1000e87c T wext_set_ssid -1000e8c8 T wext_set_bssid -1000e928 T is_broadcast_ether_addr -1000e94c T wext_set_auth_param -1000e990 T wext_set_key_ext -1000eaa4 T wext_get_enc_ext -1000eb18 T wext_set_passphrase -1000eb64 T wext_get_passphrase -1000eba4 T wext_get_mode -1000ebe0 T wext_set_pscan_channel -1000ec74 T wext_set_channel -1000ecb8 T wext_get_channel -1000ecf8 T wext_wlan_indicate -1000ee40 T wext_set_autoreconnect -1000eeb4 T wext_set_adaptivity -1000eedc T LwIP_Init -1000efa8 T LwIP_DHCP -1000f100 T LwIP_GetIP -1000f104 T LwIP_AUTOIP -1000f180 T init_thread -1000f19c T wlan_network -1000f1e0 t netconn_recv_data -1000f2b0 T netconn_new_with_proto_and_callback -1000f310 T netconn_delete -1000f334 T netconn_getaddr -1000f378 T netconn_connect -1000f3b8 T netconn_recv_tcp_pbuf -1000f3ca T netconn_recv -1000f44c T netconn_recved -1000f478 T netconn_send -1000f4b4 T netconn_write_partly -1000f544 T netconn_gethostbyname -1000f59c t recv_udp -1000f608 t recv_raw -1000f684 t setup_tcp -1000f6c8 t err_tcp -1000f760 t do_connected -1000f7cc t do_writemore -1000f8cc t do_close_internal -1000f9b8 t poll_tcp -1000fa08 t do_dns_found -1000fa34 t sent_tcp -1000fa82 t recv_tcp -1000fafc T do_newconn -1000fb8c T netconn_alloc -1000fbf4 T netconn_free -1000fc22 t netconn_drain -1000fcb2 T do_delconn -1000fd40 T do_connect -1000fdd4 T do_send -1000fe44 T do_recv -1000fe84 T do_write -1000febe T do_getaddr -1000ff34 T do_gethostbyname -1000ff60 T netbuf_delete -1000ff82 T netbuf_free -1000ff98 T netbuf_ref -1000ffd4 T lwip_gethostbyname -10010020 t get_socket -10010040 t alloc_socket -100100b0 t event_callback -100101e0 T lwip_socket_init -100101e2 T lwip_close -10010234 T lwip_connect -10010290 T lwip_recvfrom -10010448 T lwip_read -1001045c T lwip_sendto -10010508 T lwip_send -10010580 T lwip_socket -100105f4 T lwip_write -100105fc t tcpip_thread -10010684 T tcpip_input -100106c8 T tcpip_callback_with_block -10010718 T tcpip_timeout -10010758 T tcpip_apimsg -100107b0 T tcpip_init -100107f4 t autoip_start_probing -10010840 t autoip_arp_announce -1001086c T autoip_start -10010900 T autoip_tmr -10010a10 T autoip_arp_reply -10010ab8 t icmp_send_response.isra.0 -10010b28 T icmp_input -10010c4c T icmp_dest_unreach -10010c56 T icmp_time_exceeded -10010c60 t igmp_send -10010d04 t igmp_delaying_member -10010d3c t igmp_lookup_group.part.1 -10010d70 T igmp_init -10010d8c T igmp_report_groups -10010db0 T igmp_lookfor_group -10010dd0 T igmp_start -10010e0c T igmp_input -10010ed0 T igmp_tmr -10010efc t lwip_standard_chksum -10010f54 T inet_chksum_pseudo -10010fda T inet_chksum -10010fe6 T inet_chksum_pbuf -1001102c T ip_route -10011068 T ip_input -10011240 T ip_output_if_opt -10011394 T ip_output_if -100113b6 T ip_output -100113ee T ip4_addr_isbroadcast -10011426 T ipaddr_aton -1001153c T ipaddr_addr -10011554 T ipaddr_ntoa_r -100115ec T ipaddr_ntoa -100115f8 t ipfrag_free_pbuf_custom -10011610 t ip_reass_free_complete_datagram -10011694 t ip_reass_remove_oldest_datagram -10011708 T ip_reass_tmr -10011730 T ip_reass -100119d8 T ip_frag -10011b40 T lwip_htons -10011b46 T lwip_ntohs -10011b4c T lwip_htonl -10011b50 T lwip_ntohl -10011b54 t dhcp_set_state -10011b64 t dhcp_option -10011b84 t dhcp_option_byte -10011b96 t dhcp_option_short -10011bb8 t dhcp_option_long -10011bfc t dhcp_create_msg -10011d4c t dhcp_delete_msg -10011d62 t dhcp_check -10011d88 t dhcp_bind -10011e5c t dhcp_option_trailer -10011e88 t dhcp_discover -10011f3c t dhcp_rebind -10011fc8 t dhcp_select -100120ac t dhcp_reboot -10012150 t dhcp_recv -10012560 T dhcp_arp_reply -100125e0 T dhcp_renew -10012668 T dhcp_release -10012710 T dhcp_coarse_tmr -1001279c T dhcp_fine_tmr -10012838 T dhcp_release_unicast -100128fc T dhcp_stop -1001292c T dhcp_start -100129cc t dns_parse_name -100129e8 t dns_recv -10012b7c t dns_send -10012c4c t dns_check_entry -10012cfc T dns_setserver -10012d1c T dns_init -10012d74 T dns_tmr -10012da0 T dns_gethostbyname -10012ee0 T lwip_init -10012f10 T sys_timeout -10012f68 T tcp_timer_needed -10012f9c t tcpip_tcp_timer -10012fd4 T sys_timeouts_init -10013048 t dns_timer -10013064 t igmp_timer -1001307c t autoip_timer -10013094 t dhcp_timer_fine -100130b0 t dhcp_timer_coarse -100130cc t arp_timer -100130e8 t ip_reass_timer -10013104 T sys_untimeout -1001314c T sys_timeouts_mbox_fetch -100131b0 T mem_init -100131f4 T mem_free -1001329c T mem_trim -10013374 T mem_malloc -10013444 T memp_init -10013494 T memp_malloc -100134c0 T memp_free -100134e8 T netif_init -100134ec T netif_set_ipaddr -10013544 T netif_set_addr -10013560 T netif_add -100135c4 T netif_set_gw -100135cc T netif_set_netmask -100135d4 T netif_set_default -100135e0 T netif_set_up -10013616 T netif_set_down -10013630 t pbuf_free_ooseq_callback -10013664 t pbuf_pool_is_empty -100136a0 T pbuf_alloced_custom -100136f4 T pbuf_header -1001374c T pbuf_free -100137a8 T pbuf_alloc -100138ba T pbuf_realloc -10013906 T pbuf_clen -10013916 T pbuf_ref -10013930 T pbuf_cat -1001394c T pbuf_chain -1001395c T pbuf_copy -100139f8 T pbuf_copy_partial -10013a60 T pbuf_coalesce -10013a8c T raw_input -10013b04 T raw_connect -10013b0e T raw_recv -10013b14 T raw_sendto -10013ba4 T raw_send -10013bac T raw_remove -10013bd8 T raw_new -10013c04 t tcp_new_port -10013c54 T tcp_init -10013c56 T tcp_update_rcv_ann_wnd -10013c8c T tcp_recved -10013cc6 T tcp_seg_free -10013ce2 T tcp_segs_free -10013cf2 T tcp_seg_copy -10013d12 T tcp_arg -10013d16 T tcp_recv -10013d1c T tcp_sent -10013d22 T tcp_err -10013d28 T tcp_accept -10013d2c T tcp_poll -10013d36 T tcp_pcb_purge -10013d78 T tcp_slowtmr -10014038 T tcp_pcb_remove -100140a0 t tcp_close_shutdown -100141d4 T tcp_close -100141ec T tcp_recv_null -10014210 T tcp_process_refused_data -10014270 T tcp_fasttmr -100142e8 T tcp_tmr -1001430c T tcp_shutdown -1001435c T tcp_abandon -100143f8 T tcp_abort -10014400 T tcp_next_iss -10014418 T tcp_alloc -10014530 T tcp_new -10014536 T tcp_eff_send_mss -10014554 T tcp_connect -100146b0 t tcp_oos_insert_segment -10014730 t tcp_receive -10014f08 t tcp_parseopt.isra.0 -10014f8c T tcp_input -100157e8 t tcp_pbuf_prealloc -1001583a t tcp_create_segment -100158fa t tcp_output_alloc_header.constprop.0 -10015964 T tcp_write -10015cb4 T tcp_enqueue_flags -10015d5c T tcp_send_fin -10015da4 T tcp_send_empty_ack -10015e04 T tcp_output -1001607c T tcp_rst -10016112 T tcp_rexmit_rto -10016140 T tcp_rexmit -10016190 T tcp_rexmit_fast -100161e6 T tcp_keepalive -10016238 T tcp_zero_window_probe -100162e0 T udp_init -100162e4 T udp_input -1001646c T udp_bind -10016514 T udp_sendto_if -10016612 T udp_sendto -10016648 T udp_send -10016654 T udp_connect -1001669c T udp_disconnect -100166ac T udp_recv -100166b4 T udp_remove -100166e0 T udp_new -100166fc t etharp_free_entry -1001672c t etharp_find_entry -10016808 t etharp_send_ip -1001683c T etharp_tmr -1001687c T etharp_cleanup_netif -100168a4 T etharp_raw -10016960 T etharp_request -1001698c t etharp_output_to_arp_index -100169d4 T etharp_query -10016ad8 T etharp_output -10016bd0 T ethernet_input -10016dc0 t low_level_output -10016e1c t arp_timer -10016e38 T ethernetif_recv -10016eb0 T ethernetif_init -10016ed8 T lwip_POST_SLEEP_PROCESSING -10016ef4 T rltk_wlan_set_netif_info -10016f14 T rltk_wlan_send -10016fa8 T rltk_wlan_recv -10017008 T netif_is_valid_IP -10017040 T netif_get_idx -10017060 T netif_rx -10017070 T netif_post_sleep_processing -10017074 T sys_mbox_new -1001708e T sys_mbox_free -100170a2 T sys_mbox_post -100170c2 T sys_mbox_trypost -100170e4 T sys_arch_mbox_fetch -1001712e T sys_arch_mbox_tryfetch -1001714e T sys_mbox_valid -10017158 T sys_mbox_set_invalid -1001715e T sys_sem_new -1001719a T sys_arch_sem_wait -100171da T sys_sem_signal -100171e6 T sys_sem_free -100171ec T sys_sem_valid -100171f6 T sys_sem_set_invalid -100171fc T sys_init -10017220 T sys_thread_new_tcm -10017288 T sys_arch_protect -10017292 T sys_arch_unprotect -10017298 t add_offer_options -10017354 t mark_ip_in_table -1001744c t dhcps_initialize_message -100174fc T dhcps_handle_state_machine_change -100175d0 t dhcps_receive_udp_packet_handler -100178e0 T dhcps_init -100179e0 T dhcps_deinit -10017a08 t prvInsertBlockIntoFreeList -10017a50 T dump_mem_block_list -10017a9c T __vPortFree -10017ae8 T vPortSetExtFree -10017b04 T vPortFree -10017b34 T xPortGetFreeHeapSize -10017b40 T vPortDefineHeapRegions -10017bf8 T pvPortMalloc -10017cc0 t prvPortStartFirstTask -10017ce0 T pxPortInitialiseStack -10017cfc T vPortSVCHandler -10017d1c t pxCurrentTCBConst2 -10017d20 T vPortYield -10017d38 T ulPortSetInterruptMask -10017d48 t prvTaskExitError -10017d50 T vPortEnterCritical -10017d6c T vPortClearInterruptMask -10017d74 T vPortExitCritical -10017d88 T xPortPendSVHandler -10017dc8 t pxCurrentTCBConst -10017dcc T xPortSysTickHandler -10017df0 W vPortSuppressTicksAndSleep -10017f08 W vPortSetupTimerInterrupt -10017f58 T xPortStartScheduler -10017f88 T vApplicationIdleHook -10017f8c T vApplicationStackOverflowHook -10017fa8 T osKernelSysTick -10017fac T vListInitialise -10017fc2 T vListInitialiseItem -10017fc8 T vListInsertEnd -10017fe0 T vListInsert -10018010 T uxListRemove -10018030 t prvCopyDataToQueue -1001809a t prvCopyDataFromQueue -100180c2 t prvUnlockQueue -1001812a T xQueueGenericReset -10018184 T xQueueGenericCreate -100181d0 T xQueueCreateCountingSemaphore -100181e2 T xQueueGenericSend -100182c0 T xQueueCreateMutex -1001830a T xQueueGenericSendFromISR -1001836e T xQueueGenericReceive -10018472 T uxQueueMessagesWaiting -10018484 T vQueueDelete -1001849a T vQueueWaitForMessageRestricted -100184d4 t prvGenerateRunTimeOfPeroid -10018514 t prvGetExpectedIdleTime -10018544 t prvListTaskWithinSingleList -1001862c t prvResetNextTaskUnblockTime -10018650 t prvAddCurrentTaskToDelayedList -100186a0 T xTaskGenericCreate -10018854 T vTaskDelete -100188f4 T uxTaskPriorityGet -10018910 T vTaskPrioritySet -100189c8 T vTaskStartScheduler -10018a20 T vTaskSuspendAll -10018a30 T xTaskGetTickCount -10018a48 T pcTaskGetTaskName -10018a58 T vTaskStepTick -10018a68 T xTaskIncrementTick -10018be8 T xTaskResumeAll -10018cb0 T vTaskDelay -10018d00 t prvIdleTask -10018d88 T uxTaskGetSystemState -10018e38 T vTaskSwitchContext -10018ef0 T vTaskPlaceOnEventList -10018f4c T vTaskPlaceOnEventListRestricted -10018f90 T xTaskRemoveFromEventList -10019000 T vTaskSetTimeOutState -10019018 T xTaskCheckForTimeOut -10019064 T vTaskMissedYield -10019070 T eTaskConfirmSleepModeStatus -10019090 T xTaskGetSchedulerState -100190b0 T vTaskPriorityInherit -10019144 T xTaskPriorityDisinherit -100191b4 T vTaskGetRunTimeStats -10019294 T pvTaskIncrementMutexHeldCount -100192ac T vTaskGetCurrentTCB -100192b8 t prvCheckForValidListAndQueue -10019304 t prvInsertTimerInActiveList -10019340 T xTimerCreateTimerTask -1001937c T xTimerCreate -100193b8 T xTimerGenericCommand -1001944c t prvSwitchTimerLists -100194bc t prvTimerTask -10019620 T xTimerIsTimerActive -10019638 t device_mutex_init -1001967c T device_mutex_lock -100196ac T device_mutex_unlock -100196c8 t _freertos_systime_to_sec -100196d2 t _freertos_ms_to_systime -100196d4 t _freertos_sec_to_systime -100196dc t _freertos_usleep_os -100196de t _freertos_ATOMIC_SET -100196e2 t _freertos_ATOMIC_READ -100196e6 t _freertos_modular64 -1001975a t _freertos_thread_enter -1001975c t _freertos_enter_critical -10019760 t _freertos_exit_critical -10019764 t _freertos_ATOMIC_SUB_RETURN -1001977c t _freertos_ATOMIC_DEC_RETURN -10019792 t _freertos_ATOMIC_ADD_RETURN -100197aa t _freertos_ATOMIC_INC_RETURN -100197c0 t _freertos_ATOMIC_SUB -100197d8 t _freertos_ATOMIC_DEC -100197de t _freertos_ATOMIC_ADD -100197f6 t _freertos_ATOMIC_INC -100197fc t _freertos_enter_critical_from_isr -1001980c T _freertos_malloc -10019810 T _freertos_zmalloc -10019828 t _freertos_memset -1001982c T _freertos_mfree -10019830 t _freertos_get_current_time -10019834 t _freertos_spinunlock_irqsave -1001984a t _freertos_spinunlock -10019856 t _freertos_mutex_put -1001985a T _freertos_wakeup_task -10019860 t _freertos_up_sema -10019864 t _freertos_exit_critical_mutex -10019870 T _freertos_timerCreate -10019874 T _freertos_timerDelete -10019888 T _freertos_timerStop -1001989c T _freertos_timerChangePeriod -100198b6 T _freertos_timerIsTimerActive -100198ba T _freertos_acquire_wakelock -100198c0 T _freertos_release_wakelock -100198c6 T _freertos_get_scheduler_state -100198e6 t _freertos_thread_exit -100198ec t _freertos_GetFreeHeapSize -100198f0 t _freertos_yield_os -100198f4 t _freertos_udelay_os -100198f8 t _freertos_mdelay_os -100198fc t _freertos_deinit_xqueue -10019916 t _freertos_spinlock_free -10019928 t _freertos_mutex_free -1001992c t _freertos_free_sema -10019930 t _freertos_push_to_xqueue -10019958 t _freertos_pop_from_xqueue -10019980 t _freertos_down_sema -100199a2 t _freertos_init_xqueue -100199bc t _freertos_spinlock_irqsave -100199f8 t _freertos_spinlock -10019a30 t _freertos_enter_critical_mutex -10019a68 t _freertos_mutex_get -10019aa0 t _freertos_spinlock_init -10019aae t _freertos_mutex_init -10019ab4 t _freertos_exit_critical_from_isr -10019ac0 t _freertos_up_sema_from_isr -10019ae8 t _freertos_init_sema -10019af8 t _freertos_create_task -10019b70 t _freertos_memcmp -10019b7e t _freertos_memcpy -10019b84 t _freertos_delete_task -10019bd0 t _freertos_mutex_get_timeout -10019c0c t _freertos_systime_to_ms -10019c0e t _freertos_msleep_os -10019c12 T save_and_cli -10019c16 T restore_flags -10019c1a T cli -10019c20 T _freertos_arc4random -10019c50 t _freertos_get_random_bytes -10019c8e T RtlInitSema -10019c9c T RtlUpSemaFromISR -10019cbc T RtlDownSema -10019cd0 T RtlUdelayOS -10019cd4 T _htons -10019cda T _ntohs -10019ce0 T _rtw_zvmalloc -10019d00 T _rtw_vmfree -10019d24 T _rtw_malloc -10019d34 T _rtw_zmalloc -10019d44 T _rtw_mfree -10019d54 T rtw_vmfree -10019d58 T rtw_mfree -10019d5c T rtw_memcpy -10019d6c T rtw_memcmp -10019d7c T rtw_memset -10019d8c T rtw_init_listhead -10019d92 T rtw_is_list_empty -10019d9c T rtw_list_insert_head -10019da8 T rtw_list_insert_tail -10019db4 T rtw_list_delete -10019dc4 T rtw_init_sema -10019dd4 T rtw_free_sema -10019de4 T rtw_up_sema -10019df4 T rtw_up_sema_from_isr -10019e04 T rtw_down_timeout_sema -10019e14 T rtw_down_sema -10019e28 T rtw_mutex_init -10019e38 T rtw_mutex_free -10019e48 T rtw_mutex_put -10019e58 T rtw_mutex_get_timeout -10019e6c T rtw_enter_critical_from_isr -10019e7c T rtw_enter_critical -10019e80 T rtw_exit_critical_from_isr -10019e90 T rtw_exit_critical -10019e94 T rtw_enter_critical_mutex -10019ea4 T rtw_exit_critical_mutex -10019eb4 T rtw_queue_empty -10019ebe T rtw_end_of_queue_search -10019ec8 T rtw_spinlock_init -10019ed8 T rtw_init_queue -10019ee4 T rtw_spinlock_free -10019ef4 T rtw_spin_lock -10019f04 T rtw_enter_critical_bh -10019f08 T rtw_spin_unlock -10019f18 T rtw_exit_critical_bh -10019f1c T rtw_get_current_time -10019f2c T rtw_systime_to_ms -10019f40 T rtw_systime_to_sec -10019f54 T rtw_ms_to_systime -10019f68 T rtw_sec_to_systime -10019f7c T rtw_get_passing_time_ms -10019f90 T rtw_msleep_os -10019fa0 T rtw_usleep_os -10019fb0 T rtw_mdelay_os -10019fc0 T rtw_udelay_os -10019fd0 T ATOMIC_SET -10019fe0 T ATOMIC_INC -10019ff0 T ATOMIC_INC_RETURN -1001a004 T ATOMIC_DEC_RETURN -1001a018 T ATOMIC_DEC_AND_TEST -1001a028 T rtw_modular64 -1001a044 T rtw_get_random_bytes -1001a058 T rtw_getFreeHeapSize -1001a068 T init_mem_monitor -1001a078 T add_mem_usage -1001a0ac T rtw_zvmalloc -1001a0cc T rtw_malloc -1001a0ec T rtw_zmalloc -1001a10c T rtw_netif_queue_stopped -1001a110 T rtw_netif_wake_queue -1001a112 T rtw_netif_start_queue -1001a114 T rtw_netif_stop_queue -1001a116 T flush_signals_thread -1001a118 T rtw_acquire_wakelock -1001a128 T rtw_release_wakelock -1001a138 T rtw_create_task -1001a154 T rtw_delete_task -1001a164 T rtw_wakeup_task -1001a174 T rtw_timerCreate -1001a190 T rtw_timerDelete -1001a1a4 T rtw_timerIsTimerActive -1001a1b8 T rtw_timerStop -1001a1cc T rtw_timerChangePeriod -1001a1e0 T rtw_thread_enter -1001a1f0 T rtw_thread_exit -1001a200 T tcm_heap_init -1001a250 T tcm_heap_dump -1001a298 T tcm_heap_freemem -1001a318 T tcm_heap_free -1001a328 T tcm_heap_freeSpace -1001a368 T tcm_heap_allocmem -1001a3f8 T tcm_heap_malloc -1001a40a T tcm_heap_calloc -1001a424 T flash_init -1001a4c0 T flash_turnon -1001a4d8 T flash_erase_sector -1001a504 T flash_stream_read -1001a5d4 T flash_stream_write -1001a72c T i2s_init -1001a804 T i2s_set_dma_buffer -1001a856 T i2s_tx_irq_handler -1001a85c T i2s_set_param -1001a890 T i2s_deinit -1001a894 T i2s_enable -1001a898 T i2s_disable -1001a89c W pinmap_merge -1001a8d8 W pinmap_find_peripheral -1001a8f0 W pinmap_peripheral -1001a928 T sleep_ex_selective -1001a93c T deepsleep_ex -1001a960 T us_ticker_read -1001a98c T En32KCalibration -1001aa20 T WDGInitial -1001aaac T WDGStart -1001aac4 T WDGRefresh -1001aae0 T I2SISRHandle -1001ab9c T RtkI2SDeInit -1001ac7c T RtkI2SEnable -1001acb8 T RtkI2SDisable -1001acf4 T RtkI2SLoadDefault -1001ad58 T HalI2SOpInit -1001add4 T RtkI2SInit -1001af98 T HalI2SInit -1001afd6 T HalI2SDisable -1001affc T HalI2SEnable -1001b020 T HalI2SDeInit -1001b078 T HalTimerOpInit_Patch -1001b0b4 T freertos_ready_to_sleep -1001b0c4 T freertos_pre_sleep_processing -1001b188 T freertos_post_sleep_processing -1001b1ac T acquire_wakelock -1001b1ec T release_wakelock -1001b248 T HalI2SInitRtl8195a_Patch -1001b34a T HalI2SSetRateRtl8195a -1001b390 T HalI2SSetWordLenRtl8195a -1001b3b8 T HalI2SSetChNumRtl8195a -1001b3e0 T HalI2SSetPageNumRtl8195a -1001b408 T HalI2SSetPageSizeRtl8195a -1001b432 T HalI2SSetDMABufRtl8195a -1001b49c T HalI2SGetTxPageRtl8195a -1001b4bc T HalI2SPageSendRtl8195a -1001b508 T HalI2SClearAllOwnBitRtl8195a -1001b53c T HalI2SDMACtrlRtl8195a -1001b540 T HalTimerIrq2To7Handle_Patch -1001b594 T HalTimerIrqRegisterRtl8195a_Patch -1001b610 T HalTimerIrqUnRegisterRtl8195a_Patch -1001b688 T HalTimerDeInitRtl8195a_Patch -1001b6bc T HalTimerReadCountRtl8195a_Patch -1001b6d4 T HalTimerReLoadRtl8195a_Patch -1001b708 T HalTimerInitRtl8195a_Patch -1001b7dc T HalTimerIrqEnRtl8195a -1001b7f0 T HalTimerEnRtl8195a_Patch -1001b804 T HalTimerDisRtl8195a_Patch -1001b818 t rtw_ht_operation_update -1001b8ca t associated_clients_update.part.11 -1001b906 T chk_sta_is_alive -1001b944 T add_RATid -1001ba4c T update_sta_info_apmode -1001bb04 T update_beacon -1001bdc4 T rtw_check_beacon_data -1001c4c4 T associated_clients_update -1001c4ce T bss_cap_update_on_sta_join -1001c67e T bss_cap_update_on_sta_leave -1001c77a T ap_free_sta -1001c82c T expire_timeout_chk -1001c968 T rtw_sta_flush -1001c9ec T free_mlme_ap_info -1001ca38 T sta_info_update -1001ca74 T ap_sta_info_defer_update -1001caa4 T start_ap_mode -1001cae4 T init_mlme_ap_info -1001cafa T stop_ap_mode -1001cb48 T rtw_generate_bcn_ie -1001ce6c T _rtw_init_evt_priv -1001ce7e T _rtw_free_cmd_priv -1001ce88 T _rtw_enqueue_cmd -1001ceb4 T _rtw_dequeue_cmd -1001cee8 T _rtw_observequeue_cmd -1001cefc T rtw_init_cmd_priv -1001cf06 T rtw_init_evt_priv -1001cf0a T rtw_free_evt_priv -1001cf0c T rtw_free_cmd_priv -1001cf10 T rtw_cmd_filter -1001cf2e T rtw_free_cmd_obj -1001cf58 T rtw_enqueue_cmd -1001cfae T rtw_set_channel_plan_cmd_callback -1001cfc6 T rtw_survey_cmd_callback -1001cfe2 T rtw_disassoc_cmd_callback -1001d012 T rtw_joinbss_cmd_callback -1001d02e T rtw_setstaKey_cmdrsp_callback -1001d048 T rtw_cmd_thread -1001d1a4 T rtw_joinbss_cmd -1001d44e T rtw_disassoc_cmd -1001d49c T rtw_setstakey_cmd -1001d58c T rtw_clearstakey_cmd -1001d62c T rtw_dynamic_chk_wk_cmd -1001d67e T rtw_set_chplan_cmd -1001d6fe T dynamic_chk_wk_hdl -1001d7c6 T lps_ctrl_wk_hdl -1001d82a T rtw_lps_ctrl_wk_cmd -1001d894 T rtw_sitesurvey_cmd -1001d95c T rpt_timer_setting_wk_hdl -1001d970 T rtw_ps_cmd -1001d9cc T rtw_chk_hi_queue_cmd -1001da20 T rtw_drvextra_cmd_hdl -1001dafc t rtw_free_mlme_ie_data -1001db14 T rtw_init_mlme_timer -1001db70 T rtw_del_mlme_timer -1001db90 T reconnect_timer_hdl -1001dc30 T _rtw_init_mlme_priv -1001dcb2 T rtw_mfree_mlme_priv_lock -1001dcce T rtw_free_mlme_priv_ie_data -1001dd06 T _rtw_free_mlme_priv -1001dd2e T _rtw_alloc_network -1001dd7e T _rtw_free_network -1001ddde T _rtw_free_network_nolock -1001de04 T _rtw_find_network -1001de40 T _rtw_free_network_queue -1001de88 T rtw_if_up -1001dea8 T rtw_get_capability_from_ie -1001deac T rtw_get_capability -1001dec6 T rtw_get_beacon_interval_from_ie -1001deca T rtw_init_mlme_priv -1001dee2 T rtw_free_mlme_priv -1001dee6 T rtw_free_network_queue -1001deea T rtw_is_same_ibss -1001df00 T is_same_network -1001df64 T update_network -1001dffe T rtw_update_scanned_network -1001e110 T rtw_add_network -1001e14e T rtw_survey_event_callback -1001e1fa T rtw_dummy_event_callback -1001e1fc T rtw_free_assoc_resources -1001e2c6 T rtw_indicate_connect -1001e2d6 T rtw_indicate_disconnect -1001e2f8 T rtw_indicate_scan_done -1001e2fc T rtw_joinbss_event_callback -1001e31a T search_max_mac_id -1001e362 T rtw_stassoc_hw_rpt -1001e39a T rtw_stassoc_event_callback -1001e3c8 T rtw_stadel_event_callback -1001e46e T _rtw_join_timeout_handler -1001e4f8 T rtw_join_timeout_handler -1001e550 T rtw_scan_timeout_handler -1001e580 T _rtw_scan_timeout_handler -1001e584 T rtw_dynamic_check_timer_handlder -1001e5dc T _dynamic_check_timer_handlder -1001e620 T rtw_select_and_join_from_scanned_queue -1001e6f4 T rtw_surveydone_event_callback -1001e80c T rtw_set_auth -1001e85c T rtw_set_key -1001e91e T rtw_restruct_wmm_ie -1001e984 T rtw_restruct_sec_ie -1001e9f0 T rtw_joinbss_reset -1001ea00 T rtw_restructure_ht_ie -1001eae0 T rtw_update_ht_cap -1001eb6a T rtw_joinbss_event_prehandle -1001ed96 T rtw_linked_check -1001edb2 T rtw_buddy_adapter_up -1001edea T check_buddy_fwstate -1001ee08 t get_da -1001ee28 t get_sa -1001ee52 T OnAction -1001ee64 T DoReserved -1001ee68 t _mgt_dispatcher.isra.2 -1001eeb4 T rtw_is_channel_set_contains_channel -1001eed6 T init_hw_mlme_ext -1001eeec T init_channel_set -1001ef84 T free_mlme_ext_priv -1001efac T mgt_dispatcher -1001f034 T alloc_mgtxmitframe -1001f06c T update_mgnt_tx_rate -1001f072 T update_mgntframe_attrib -1001f0ce T rtw_build_mgnt_frame -1001f124 T dump_mgntframe -1001f13e T rtw_send_mgnt -1001f15c t issue_action_BSSCoexistPacket -1001f368 T update_hidden_ssid -1001f3bc T issue_beacon -1001f5d4 T issue_probersp -1001f864 T OnProbeReq -1001f92c T issue_probereq -1001fae4 T issue_auth -1001fd4c T OnAuth -1001fff0 T issue_asocrsp -10020264 T issue_assocreq -100205a0 T issue_nulldata -1002068a T issue_qos_nulldata -100207bc T issue_deauth -100208a4 T issue_action_BA -10020b20 T OnAction_back -10020bee T collect_bss_info -10020e20 T start_clnt_auth -10020eb0 T start_clnt_assoc -10020ee4 T OnAuthClient -10020fc4 T report_scan_result_one -10021184 T add_site_survey -1002130a T report_survey_event -10021548 T OnProbeRsp -1002157c T report_surveydone_event -100215e0 T report_join_res -10021650 T OnAssocRsp -1002179c T report_del_sta_event -1002182e T receive_disconnect -10021884 T OnBeacon -10021a0c T OnDeAuth -10021b64 T OnDisassoc -10021cd4 T report_add_sta_event -10021d48 T OnAssocReq -10022338 T rtw_port_switch_chk -100223bc T update_sta_info -1002243c T mlmeext_sta_del_event_callback -100224bc T _linked_info_dump -1002251e T _linked_rx_signal_strehgth_display -10022558 T linked_status_chk -100227cc T survey_timer_hdl -100228ac T _survey_timer_hdl -100228b0 T link_timer_hdl -1002292e T _link_timer_hdl -10022932 T addba_timer_hdl -10022952 T NULL_hdl -10022956 T setopmode_hdl -1002299c T disconnect_hdl -10022a48 T setauth_hdl -10022a58 T setkey_hdl -10022ab0 T set_stakey_hdl -10022bb4 T set_tx_beacon_cmd -10022c28 T mlme_evt_hdl -10022c74 T tx_beacon_hdl -10022d2e T check_buddy_mlmeinfo_state -10022d48 T site_survey -10022f18 T sitesurvey_cmd_hdl -10023026 T concurrent_chk_start_clnt_join -100230bc T start_clnt_join -10023190 T join_cmd_hdl -100232b4 T concurrent_chk_joinbss_done -1002347c T mlmeext_joinbss_event_callback -100235b8 T set_chplan_hdl -100235d4 T init_mlme_ext_timer -10023630 T init_mlme_ext_priv -1002376c t get_hdr_bssid -10023794 t filter_packet -1002381c t promisc_get_encrypt -1002386e t promisc_info_get -10023912 t promisc_set_enable -100239ae T _promisc_deinit -10023a00 T _promisc_recv_func -10023f4c T _promisc_set -10023fdc T _is_promisc_enabled -10023ff4 t SetEAPOL_KEYIV -10024092 t ToDrv_SetPTK -1002413a t Message_ReplayCounter_OC2LI.isra.2 -10024168 t Message_SmallerEqualReplayCounter.isra.4 -1002419a t Message_setReplayCounter.isra.5 -100241b8 t INCLargeInteger -100241d8 t INCOctet16_INTEGER -10024220 t INCOctet32_INTEGER -10024280 t ToDrv_DisconnectSTA -10024344 t CheckMIC.constprop.14 -100243c4 t CalcMIC.constprop.15 -10024424 T DecWPA2KeyData -100244d8 T DecGTK -10024594 T ToDrv_SetGTK -10024624 T init_wpa_sta_info -10024710 T SendEAPOL -10024dc8 T ClientSendEAPOL -100252b0 t ResendTimeout -10025338 T EAPOLKeyRecvd -100254b0 T ClientEAPOLKeyRecvd -10025870 T psk_derive -10025924 T psk_init -10025a14 T psk_strip_rsn_pairwise -10025a94 T psk_strip_wpa_pairwise -10025b14 T tkip_send_mic_failure_report -10025c88 T pwr_state_check_handler -10025c8c T ips_enter -10025d34 T ips_leave -10025e4c T rtw_pwr_unassociated_idle -10025e96 T rtw_ps_processor -10025eee T PS_RDY_CHECK -10025f56 T rtw_set_ps_mode -10025fc4 T LPS_RF_ON_check -1002601a T LPS_Enter -10026088 T LPS_Leave -100260c4 T LeaveAllPowerSaveMode -100260d4 T rtw_init_pwrctrl_priv -100261a8 T rtw_free_pwrctrl_priv -100261bc T _rtw_pwr_wakeup -10026298 T rtw_pm_set_lps -100262e0 T rtw_pm_set_ips -10026324 T rtw_pm_set_tdma_param -10026340 T rtw_pm_set_lps_dtim -1002634c T rtw_pm_get_lps_dtim -10026358 t recvframe_pull -1002637a t recvframe_pull_tail -1002639c T rtw_signal_stat_timer_hdl -1002643a T _rtw_init_sta_recv_priv -10026458 T _rtw_init_recv_priv -10026500 T rtw_mfree_recv_priv_lock -10026534 T _rtw_alloc_recvframe -10026566 T rtw_alloc_recvframe -1002658c T rtw_free_recvframe -10026628 T _rtw_enqueue_recvframe -10026654 T rtw_enqueue_recvframe -1002667e T rtw_free_recvframe_queue -100266b6 T rtw_free_uc_swdec_pending_queue -100266de T _rtw_free_recv_priv -1002670e T rtw_free_buf_pending_queue -10026712 T recvframe_chkmic -10026810 T decryptor -100268ac T portctrl -10026922 T recv_decache -10026950 T process_pwrbit_data -10026990 T process_wmmps_data -10026a18 T count_rx_stats -10026a8c T sta2sta_data_frame -10026bc8 T ap2sta_data_frame -10026cf4 T sta2ap_data_frame -10026d7c T validate_recv_ctrl_frame -10026f16 T validate_recv_data_frame -10027170 T wlanhdr_to_ethhdr -100272ac T recvframe_defrag -10027356 T recvframe_chk_defrag -1002740c T validate_recv_mgnt_frame -10027448 T validate_recv_frame -10027510 T recv_indicatepkt_reorder -10027532 T process_recv_indicatepkts -1002758a T recv_func_prehandle -100275b2 T recv_func_posthandle -10027616 T recv_func -100276a0 T rtw_recv_entry -100276d0 T rtw_recv_tasklet -10027728 T rtw_wep_encrypt -1002776e T rtw_wep_decrypt -100277b4 T rtw_tkip_encrypt -10027820 T rtw_tkip_decrypt -1002788c T rtw_aes_encrypt -100278f8 T rtw_aes_decrypt -1002795c T rtw_init_sec_priv -100279ce T rtw_free_sec_priv -100279ee t wifi_mac_hash -10027a18 T _addba_timer_hdl -10027a1c T _rtw_init_stainfo -10027a96 T _rtw_init_sta_priv -10027b7e T _rtw_free_sta_xmit_priv_lock -10027baa T rtw_mfree_stainfo -10027bd6 T rtw_mfree_sta_priv_lock -10027c0c T _rtw_free_sta_priv -10027c2c T init_addba_retry_timer -10027c54 T rtw_alloc_stainfo -10027d1e T rtw_free_stainfo -10027ec0 T rtw_get_stainfo -10027f3c T rtw_init_bcmc_stainfo -10027f6c T rtw_get_bcmc_stainfo -10027f90 T rtw_free_all_stainfo -10027fea T cckrates_included -10028012 T cckratesonly_included -1002803a T networktype_to_raid_ex -10028098 T judge_network_type -100280e8 T ratetbl_val_2wifirate -100280fc T is_basicrate -10028128 T ratetbl2rateset -1002816c T get_rate_set -10028196 T UpdateBrateTbl -100281c8 T UpdateBrateTblForSoftAP -100281fc T Save_DM_Func_Flag -10028212 T Restore_DM_Func_Flag -10028228 T Switch_DM_Func -10028244 T Set_MSR -10028268 T set_opmode -100282ac T SelectChannel -100282e0 T SetBWMode -1002831c T set_channel_bwmode -10028372 T get_my_bssid -10028376 T get_beacon_interval -10028394 T is_client_associated_to_ap -100283ac T is_client_associated_to_ibss -100283c8 T is_IBSS_empty -100283ea T decide_wait_for_beacon_timeout -10028406 T invalidate_cam_all -1002840e T write_cam -10028484 T clear_cam_entry -100284b2 T flush_all_cam_entry -10028510 T WMM_param_handler -10028536 T WMMOnAssocRsp -10028604 T HT_caps_handler -100286a4 T HT_info_handler -100286c8 T HTOnAssocRsp -10028700 T ERP_IE_handler -1002871c T VCS_update -1002876e T rtw_check_bcn_info -1002897e T update_beacon_info -100289d4 T is_ap_in_tkip -10028a4c T wifirate2_ratetbl_inx -10028ab8 T update_basic_rate -10028ae6 T update_supported_rate -10028b10 T update_MCS_rate -10028b1c T support_short_GI -10028b4a T get_highest_rate_idx -10028b64 T Update_RA_Entry -10028b6c T set_sta_rate -10028b74 T update_tx_basic_rate -10028bcc T check_assoc_AP -10028cc0 T update_IOT_info -10028d1e T update_capinfo -10028d9c T update_wireless_mode -10028e3c T update_bmc_sta_support_rate -10028e64 T update_TSF -10028e76 T correct_TSF -10028e7e t _init_txservq -10028e94 t set_qos -10028ee4 T _rtw_init_sta_xmit_priv -10028f2a T rtw_mfree_xmit_priv_lock -10028f76 T qos_acm -10028fb0 T xmitframe_addmic -1002910e T xmitframe_swencrypt -1002913a T rtw_make_wlanhdr -1002931a T rtw_txframes_pending -10029356 T rtw_txframes_sta_ac_pending -1002938c T rtw_txframes_update_attrib_vcs_info -1002942c T rtw_put_snap -10029470 T rtw_update_protection -100294b6 T rtw_count_tx_stats -10029506 T rtw_free_xmitbuf_ext -10029548 T rtw_alloc_xmitframe -100295a0 T rtw_free_xmitframe -100295f2 T rtw_free_xmitframe_queue -10029630 T rtw_get_sta_pending -10029670 T rtw_xmit_classifier -100296d6 T rtw_xmitframe_enqueue -100296e4 T rtw_alloc_hwxmits -1002973e T rtw_free_hwxmits -10029754 T _rtw_free_xmit_priv -10029820 T rtw_init_hwxmits -10029838 T _rtw_init_xmit_priv -100299f0 T rtw_get_ff_hwaddr -10029a04 T xmitframe_enqueue_for_sleeping_sta -10029bc4 t dequeue_xmitframes_to_sleeping_queue -10029c1a T stop_sta_xmit -10029d02 T wakeup_sta_to_xmit -10029f18 T xmit_delivery_enabled_frames -1002a034 T rtw_xmit_tasklet -1002a08c T rtw_xmit_mgnt -1002a090 T rtw_xmit -1002a3ba T rtw_sctx_done_err -1002a3c6 T rtw_alloc_xmitbuf -1002a420 T rtw_free_xmitbuf -1002a492 T rtw_alloc_xmitbuf_ext -1002a518 T rtw_sctx_done -1002a51e t rtl8195a_free_rx_ring -1002a52c t bus_write32 -1002a588 t bus_write16 -1002a5e4 t bus_write8 -1002a640 t bus_read32 -1002a69a t bus_read16 -1002a6f6 t bus_read8 -1002a752 t rtl8195a_free_tx_ring -1002a7e0 T rtl8195a_init_desc_ring -1002a920 T rtl8195a_free_desc_ring -1002a93c T rtl8195a_reset_desc_ring -1002a9d2 T InitLxDmaRtl8195a -1002ab34 T rtl8195a_check_txdesc_closed -1002abac t rtl8195a_tx_isr -1002ac90 T InterruptRecognized8195a -1002ad20 T InitInterrupt8195a -1002ad40 T EnableDMA8195a -1002ad68 T EnableInterrupt8195a -1002ada8 T DisableDMA8195a -1002adb4 T DisableInterrupt8195a -1002adcc T UpdateInterruptMask8195a -1002ae2e T CheckRxTgRtl8195a -1002ae68 T rtl8192ee_check_rxdesc_remain -1002ae98 T rtl8195a_recv_tasklet -1002b1ac T rtl8195a_tx_int_handler -1002b1d8 T InterruptHandle8195a -1002b44c T rtl8195a_xmit_tasklet -1002b474 T lxbus_set_intf_ops -1002b4b4 t GetTxBufDesc -1002b4fe t UpdateFirstTxbdtoXmitBuf.isra.3 -1002b530 t check_nic_enough_desc.isra.4 -1002b580 T rtl8195ab_init_xmit_priv -1002b58e T rtl8195ab_free_xmit_priv -1002b596 T GetDmaTxbdIdx -1002b5b2 T rtl8195a_enqueue_xmitbuf -1002b5d6 T rtl8195a_dequeue_xmitbuf -1002b5fa T SetTxbdForLxDMARtl8195ab -1002b67a T UpdateTxbdHostIndex -1002b6b8 T rtw_dump_xframe -1002b88a T check_tx_desc_resource -1002b8c4 T rtw_dequeue_xframe -1002b958 T rtw_xmitframe_coalesce -1002bc0c T rtl8195ab_xmitframe_resume -1002bd02 T rtl8195ab_mgnt_xmit -1002bd3e T rtl8195ab_hal_xmit -1002be4c t Hal_GetEfuseDefinition -1002be7c t ResumeTxBeacon -1002bec0 T UpdateHalRAMask8195A -1002c058 T HalLittleWifiMCUThreadRtl8195a -1002c0ac T HalCheckInReqStateThreadRtl8195a -1002c0f8 T HalTDMAChangeStateThreadRtl8195a -1002c144 t rtl8195a_read_chip_version -1002c1b8 t Hal_EfuseWordEnableDataWrite -1002c3fc t Hal_EfusePowerSwitch -1002c410 t rtl8195a_free_hal_data -1002c42a t StopTxBeacon -1002c474 T SetHalODMVar8195A -1002c52c T rtl8195a_start_thread -1002c594 T rtl8195a_stop_thread -1002c5b8 t Hal_ReadEFuse -1002c728 T GetHalODMVar8195A -1002c73c t rtw_flash_map_update.part.12 -1002c7dc t rtw_flash_map_erase -1002c820 t Hal_EfusePgPacketWrite -1002ca9c t Hal_EfuseGetCurrentSize -1002cb7c t rtw_flash_map_write -1002cd4a T rtl8195a_InitBeaconParameters -1002cdba T _InitBurstPktLen_8195AB -1002cdc4 T rtl8195a_set_hal_ops -1002cea4 T rtl8195a_init_default_value -1002cea6 T rtl8195a_InitLLTTable -1002cef0 T Hal_GetChnlGroup8195A -1002cf2c T rtw_config_map_read -1002d018 T rtw_config_map_write -1002d0c4 T Hal_InitPGData -1002d122 T Hal_EfuseParseIDCode -1002d13a T Hal_ReadPowerValueFromPROM_8195A -1002d1d8 T Hal_EfuseParseTxPowerInfo_8195A -1002d270 T Hal_EfuseParseEEPROMVer_8195A -1002d286 T Hal_EfuseParsePackageType_8195A -1002d2f0 T Hal_EfuseParseChnlPlan_8195A -1002d320 T Hal_EfuseParseCustomerID_8195A -1002d336 T Hal_EfuseParseXtal_8195A -1002d34e T Hal_EfuseParseThermalMeter_8195A -1002d376 T Hal_ReadRFGainOffset -1002d3c6 T BWMapping_8195A -1002d3e6 T SCMapping_8195A -1002d40e T rtl8195a_update_txdesc -1002d6de T rtl8195a_fill_fake_txdesc -1002d79c T SetHwReg8195A -1002e45c T GetHwReg8195A -1002e4f0 T SetHalDefVar8195A -1002e5d0 T GetHalDefVar8195A -1002e5f4 T PHY_QueryBBReg_8195A_Safe -1002e620 T PHY_SetBBReg_8195A_Safe -1002e64c t phy_RFSerialRead_8195A -1002e700 T PHY_QueryRFReg_8195A -1002e718 T PHY_SetRFReg_8195A -1002e770 T PHY_MACConfig8195A -1002e78a T PHY_BBConfig8195A -1002e89a T PHY_RFConfig8195A -1002e89e T PHY_SetTxPowerIndex_8195A -1002e9a8 T phy_TxPwrAdjInPercentage -1002e9e8 T PHY_GetTxPowerIndex_8195A -1002ead8 T PHY_SetTxPowerLevel8195A -1002eade T phy_SpurCalibration_8195A -1002ed96 T phy_SetRegBW_8195A -1002edd4 T phy_PostSetBwMode8195A -1002ef30 T phy_SwChnl8195A -1002efd8 T phy_SwChnlAndSetBwMode8195A -1002f028 T PHY_HandleSwChnlAndSetBW8195A -1002f0d8 T PHY_SetBWMode8195A -1002f0fa T PHY_SwChnl8195A -1002f114 T PHY_SetSwChnlBWMode8195A -1002f132 t HalTimerEnable -1002f144 T InitTDMATimer -1002f16c T ChangeStateByTDMA -1002f17c T GetMinRateInRRSR -1002f1b0 T CheckInReqState -1002f1c0 T InitCheckStateTimer -1002f1f0 T InitGTimer1ms -1002f23c T DeInitGTimer1ms -1002f284 T ChangeTransmiteRate -1002f2c0 T PowerBitSetting -1002f33c T ChkandChangePS -1002f3a0 T IssueRsvdPagePacketSetting -1002f414 T IssuePSPoll -1002f440 T WaitTxStateMachineOk -1002f494 T IssueNullData -1002f524 T PsCloseRF -1002f558 T PsOpenRF -1002f588 T ChkTxQueueIsEmpty -1002f5a0 T InitPS -1002f610 T ConfigListenBeaconPeriod -1002f634 T PS_S2_Condition_Match -1002f668 T PS_S4_Condition_Match -1002f6e4 T PS_32K_Condition_Match -1002f720 T PS_S2ToS3ToS0State -1002f788 T PS_S2ToS0State -1002f7a4 T PS_S3ToS2orS0State -1002f7d4 T PS_S0ToS1ToS2State -1002f830 T PS_S1ToS0orS2State -1002f860 T PS_S2ToS4State -1002f8ac T PS_S0ToS6State -1002f8cc T PS_S6ToS0State -1002f8e4 T CheckTSFIsStable -1002f934 T WaitHWStateReady -1002f944 T SysClkDown -1002f9b4 T SysClkUp -1002fa00 T ResetPSParm -1002fa74 T PS_S4ToS2State -1002fa98 T SleepTo32K -1002faf8 T Change_PS_State -1002fca4 T Legacy_PS_Setting -1002fd18 T PSModeSetting -1002fdbc T ChangePSStateByRPWM -1002fe00 T ChangeTDMAState -1002ff20 T TDMAChangeStateTask -1002ff4a T EnterPS -1002ff6c T SetSmartPSTimer -1002ffa8 T GTimer7Handle -10030004 T SmartPS2InitTimerAndToGetRxPkt -10030040 T PS_OnBeacon -100300f0 T PSBcnEarlyProcess -100301ac T PSMtiBcnEarlyProcess -10030258 T PSRxBcnProcess -100303a8 T TxPktInPSOn -100303e6 T PsBcnToProcess -100304a0 T GTimer6Handle -100304ec T RPWMProcess -10030528 T PSSetMode -100305a0 T SpeRPT -100306c0 T ISR_BcnEarly -1003072c T ISR_MtiBcnEarly -10030760 T ISR_RxBcn -1003077c T ISR_RxBCMD1 -100307ac T ISR_RxBCMD0 -10030800 T ISR_RxUCMD1 -1003083e T ISR_RxUCMD0 -1003087a T ISR_TxPktIn -1003088c T ISR_TXCCX -10030890 T H2CHDL_SetPwrMode -100309b8 T CheckInReqStateTask -100309fe T HalGetNullTxRpt -10030a1c T ISR_TBTT -10030a94 T H2CHDL_BcnIgnoreEDCCA -10030aa4 T PMUInitial -10030af4 T PMUTask -10030c00 T PHY_RF6052SetBandwidth8195A -10030c44 T PHY_RF6052_Config8195A -10030cfc t process_rssi -10030d32 T rtl8195a_query_rx_desc_status -10030de2 T rtl8195a_query_rx_phy_status -10030f3a T hal_com_get_channel_plan -10030f6e T HAL_IsLegalChannel -10030f8c T MRateToHwRate -10030fa0 T HwRateToMRate -10030fb4 T HalSetBrateCfg -10031060 T Hal_MappingOutPipe -1003107c T hal_init_macaddr -100310a8 T hw_var_port_switch -10031330 T SetHwReg -1003133a T GetHwReg -1003133c T switch_power_saving_mode -10031380 T rtw_bb_rf_gain_offset -100313c8 T PHY_GetRateValuesOfTxPowerByRate -10031560 T PHY_StoreTxPowerByRateNew -100315fc T PHY_InitTxPowerByRate -10031614 T PHY_StoreTxPowerByRate -1003162c T PHY_GetTxPowerIndexBase -100316cc T PHY_GetTxPowerTrackingOffset -100316f8 T PHY_GetRateIndexOfTxPowerByRate -1003170c T PHY_GetTxPowerByRate -1003176c T phy_StoreTxPowerByRateBase -100317b8 T PHY_SetTxPowerByRate -100317f4 T phy_ConvertTxPowerByRateInDbmToRelativeValues -100318f4 T PHY_TxPowerByRateConfiguration -10031906 T PHY_SetTxPowerIndexByRateArray -10031944 T PHY_SetTxPowerIndexByRateSection -100319a8 T PHY_SetTxPowerLevelByPath -100319de T phy_GetWorldWideLimit -10031a0a T PHY_GetTxPowerLimit -10031b34 T PHY_ConvertTxPowerLimitToPowerIndex -10031c84 T PHY_InitTxPowerLimit -10031ccc T PHY_SetTxPowerLimit -10031d48 T PHY_GetTxPowerIndex -10031d58 T rtw_hal_chip_configure -10031d6e T rtw_hal_read_chip_info -10031d84 T rtw_hal_read_chip_version -10031d9a T rtw_hal_def_value_init -10031db0 T rtw_hal_free_data -10031dc6 T rtw_hal_dm_init -10031ddc T rtw_hal_dm_deinit -10031df2 T rtw_hal_init -10031e1c T rtw_hal_deinit -10031e36 T rtw_hal_set_hwreg -10031e44 T rtw_hal_get_hwreg -10031e52 T rtw_hal_set_def_var -10031e64 T rtw_hal_get_def_var -10031e76 T rtw_hal_set_odm_var -10031e84 T rtw_hal_get_odm_var -10031e92 T rtw_hal_enable_interrupt -10031eb4 T rtw_hal_disable_interrupt -10031ed6 T rtw_hal_inirp_init -10031ee8 T rtw_hal_inirp_deinit -10031efa T rtw_hal_irp_reset -10031f08 T rtw_hal_xmit -10031f1a T rtw_hal_mgnt_xmit -10031f2c T rtw_hal_init_xmit_priv -10031f3e T rtw_hal_free_xmit_priv -10031f4c T rtw_hal_update_ra_mask -10031f7a T rtw_hal_add_ra_tid -10031f88 T rtw_hal_clone_data -10031f96 T rtw_hal_start_thread -10031fa4 T rtw_hal_stop_thread -10031fb2 T rtw_hal_read_bbreg -10031fe6 T rtw_hal_write_bbreg -10032012 T rtw_hal_read_rfreg -10032024 T rtw_hal_write_rfreg -10032038 T rtw_hal_interrupt_handler -1003204a T rtw_hal_set_bwmode -10032058 T rtw_hal_set_chan -10032066 T rtw_hal_set_chnl_bw -1003207c T rtw_hal_dm_watchdog -10032092 T rtw_hal_macid_sleep -100320b2 T rtw_hal_macid_wakeup -100320d2 T decide_chip_type_by_device_id -100320d8 t rtw_net_get_stats -10032128 t netdev_if2_close -10032148 t netdev_close -100321a4 t rtw_if1_deinit -1003223e T rtw_os_indicate_connect -10032242 T rtw_os_indicate_scan_done -10032246 T rtw_reset_securitypriv -1003233a T rtw_os_indicate_disconnect -10032384 T rtw_init_netdev -100324d4 T rtw_drv_if2_init -100326dc T rtw_drv_if2_stop -10032732 T rtw_drv_if2_free -10032780 T _netdev_open -1003289c T _netdev_if2_open -10032958 T netdev_if2_open -10032980 T netdev_open -100329a8 T rtw_drv_probe -10032b28 T rtw_dev_remove -10032b6c T rtw_drv_entry -10032b98 T rtw_drv_halt -10032bc8 t rtw_wx_set_autoreconnect -10032bf6 t rtw_wx_get_autoreconnect -10032c04 t rtw_forwarding_set -10032c26 t rtw_set_ch_deauth -10032c48 t get_priv_size -10032c5c t rtw_wx_del_custome_ie -10032ca8 t rtw_wx_set_pscan_freq -10032d2a t rtw_wx_update_custome_ie -10032d9c t rtw_set_tos_value -10032dbc t rtw_get_tx_power -10032f00 t rtw_wx_set_custome_ie -10032fac t rtw_pm_get -10032ff0 t rtw_pm_set -100330a4 t rtw_wx_read32 -10033150 t rtw_wx_write32 -100331b4 t rtw_wx_set_freq.isra.10 -1003325c T rtw_ex_set -1003331c T wireless_send_event -10033326 T indicate_wx_custom_event -10033382 T indicate_wx_scan_result_present -100333aa T indicate_wx_scan_complete_event -100333d4 T rtw_indicate_sta_assoc -10033424 T rtw_indicate_sta_disassoc -1003347c T rtw_indicate_wx_assoc_event -100334ae T rtw_indicate_wx_disassoc_event -100334de T rtw_set_wpa_ie -100335f4 T strtopsk -10033660 T rtw_wx_get_passphrase -100336ac T rtw_wx_set_ap_essid -1003379c T mac_reg_dump -10033848 T bb_reg_dump -100338a4 T rf_reg_dump -1003391c t rtw_dbg_port -10033f84 T rtw_ex_get_drv_ability -10034044 T rtw_ex_get -100342dc T rtw_ioctl -10035268 T rtw_os_recv_resource_init -1003526c T rtw_os_recv_resource_alloc -10035276 T rtw_os_recv_resource_free -10035278 T rtw_tkip_countermeasure -10035318 T rtw_handle_tkip_mic_err -100353c0 T rtw_recv_indicatepkt -10035610 T skb_fail_inc -1003562c T skb_fail_get_and_rst -10035648 T init_skb_pool -100356a0 T init_skb_data_pool -100356f8 T alloc_skb -100357f8 T kfree_skb -10035860 T kfree_skb_chk_key -10035864 T skb_put -10035898 T skb_reserve -100358a6 T dev_alloc_skb -100358c2 T skb_end_pointer -100358c6 T skb_set_tail_pointer -100358ce T skb_pull -100358e6 T skb_copy -1003590e T rtw_remainder_len -1003591a T _rtw_open_pktfile -1003592c T _rtw_pktfile_read -1003595a T rtw_set_tx_chksum_offload -1003595c T rtw_os_xmit_resource_alloc -10035966 T rtw_os_xmit_resource_free -10035968 T rtw_os_pkt_complete -10035970 T rtw_os_xmit_complete -10035982 T rtw_os_xmit_schedule -100359be T rtw_xmit_entry -10035a0a T rtw_alloc_etherdev_with_old_priv -10035a20 T rtw_alloc_etherdev -10035a4c T rtw_free_netdev -10035a6c T timer_wrapper -10035ac0 T alloc_etherdev -10035b1c T free_netdev -10035b36 T dev_alloc_name -10035b40 T init_timer_wrapper -10035b60 T deinit_timer_wrapper -10035bac T init_timer -10035c64 T mod_timer -10035d44 T cancel_timer_ex -10035d8c T del_timer_sync -10035df0 T rtw_init_timer -10035df8 T rtw_set_timer -10035dfc T rtw_cancel_timer -10035e06 T rtw_del_timer -10035e0c T rltk_get_idx_bydev -10035e1c T rltk_wlan_init -10035ea4 T rltk_wlan_start -10035ed8 T rltk_wlan_check_isup -10035ee8 T rltk_wlan_tx_inc -10035efc T rltk_wlan_tx_dec -10035f10 T rltk_wlan_get_recv_skb -10035f20 T rltk_wlan_alloc_skb -10035f60 T rltk_wlan_send_skb -10035f94 T rltk_netif_rx -10036040 T rltk_wlan_control -100360d4 T rltk_wlan_running -100360ec T rltk_wlan_handshake_done -10036120 T rltk_wlan_is_connected_to_ap -10036164 T Efuse_PowerSwitch -10036170 T Efuse_GetCurrentSize -1003617c T Efuse_CalculateWordCnts -100361a0 T EFUSE_GetEfuseDefinition -100361b4 T efuse_OneByteRead -100361e8 T efuse_OneByteWrite -1003621c T Efuse_PgPacketWrite -10036230 T efuse_WordEnableDataRead -10036262 T Efuse_WordEnableDataWrite -10036276 T efuse_GetCurrentSize -1003629e T rtw_efuse_map_read -10036300 T rtw_efuse_map_write -10036480 T rtw_macaddr_cfg -10036544 T rtw_get_cipher_info -100365be T rtw_get_bcn_info -1003668e T rtw_init_default_value -100366fc T rtw_cancel_all_timer -10036766 T rtw_free_drv_sw -100367dc T rtw_reset_drv_sw -10036838 T rtw_init_drv_sw -100368c0 T rtw_start_drv_threads -1003697c T rtw_stop_drv_threads -100369b0 T rtw_read8 -100369be T rtw_read16 -100369cc T rtw_read32 -100369da T rtw_write8 -100369e8 T rtw_write16 -100369f6 T rtw_write32 -10036a04 T rtw_do_join -10036aa8 T rtw_set_802_11_bssid -10036c2c T rtw_set_802_11_ssid -10036d34 T rtw_set_802_11_infrastructure_mode -10036dd6 T rtw_set_802_11_bssid_list_scan -10036e26 T rtw_set_802_11_authentication_mode -10036e48 T rtw_set_802_11_add_wep -10036ea8 T ODM_InitRAInfo -10036f48 T InitialRateUpdate -10037048 T RateUp_search_RateMask -1003707a T RateDown_search_RateMask -100370cc T StartRateByRSSI -100370f6 T RateUpRAM8195A -1003718a T RateDownTrying -100371c8 T TryDone -10037260 T RateDownStepRAM8195A -10037300 T RateDecisionRAM8195A -100373e4 T ArfrRefresh -100375ec T H2CHDL_Set_MACID_Config -100376b0 T PHY_DM_RA_SetRSSI_8195A -100376de t CheckPositive.isra.0 -100377c0 T ODM_ReadAndConfig_MP_8195A_AGC_TAB -10037838 T ODM_ReadAndConfig_MP_8195A_PHY_REG -100378b0 T ODM_GetVersion_MP_8195A_PHY_REG -100378b4 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG -100378e8 T odm_ConfigRFReg_8195A -10037920 T odm_ConfigRF_RadioA_8195A -10037930 T odm_ConfigMAC_8195A -10037934 T odm_ConfigBB_AGC_8195A -10037944 T odm_ConfigBB_PHY_REG_PG_8195A -10037972 T odm_ConfigBB_PHY_8195A -100379ba T odm_ConfigBB_TXPWR_LMT_8195A -100379e0 T ODM_CmnInfoInit -10037ad4 T ODM_CmnInfoHook -10037b78 T ODM_CmnInfoPtrArrayHook -10037b88 T ODM_CmnInfoUpdate -10037c58 T odm_CommonInfoSelfInit -10037ccc T ODM_DMInit -10037d1a T odm_CommonInfoSelfUpdate -10037d6c T ODM_DMWatchdog -10037dd8 T PhyDM_Get_Structure -10037dfc T Phydm_CheckAdaptivity -10037e2a T Phydm_NHMCounterStatisticsInit -10037ea0 T Phydm_SetEDCCAThreshold -10037ed8 T Phydm_MACEDCCAState -10037f16 T Phydm_AdaptivityInit -10037ff4 T Phydm_Adaptivity -10038114 T ODM_CfoTrackingInit -1003813e T ODM_CfoTracking -1003815e T ODM_ParsingCFO -10038190 T ODM_InitDebugSetting -100381a4 T ODM_Write_DIG -10038244 T odm_ForbiddenIGICheck -100382d6 T ODM_Write_CCK_CCA_Thres -10038310 T odm_DIGInit -100383aa T odm_DigAbort -100383cc T odm_DIGbyRSSI_LPS -10038478 T odm_FAThresholdCheck -100384a4 T odm_DIG -10038704 T odm_FalseAlarmCounterStatistics -10038730 T odm_CCKPacketDetectionThresh -10038788 T odm_RxPhyStatus8195A_Parsing -1003888c T odm_Process_RSSIForDM_8195A -100389ce T ODM_PhyStatusQuery_8195A -100389fa T ODM_PhyStatusQuery -100389fe T ODM_ConfigRFWithHeaderFile -10038a1c T ODM_ConfigRFWithTxPwrTrackHeaderFile -10038a4e T ODM_ConfigBBWithHeaderFile -10038a76 T ODM_ConfigMACWithHeaderFile -10038a88 T ODM_Read1Byte -10038a8e T ODM_Read4Byte -10038a94 T ODM_Write1Byte -10038a9a T ODM_Write2Byte -10038aa0 T ODM_Write4Byte -10038aa6 T ODM_SetMACReg -10038aac T ODM_SetBBReg -10038ab2 T ODM_GetBBReg -10038ab8 T ODM_SetRFReg -10038abe T ODM_GetRFReg -10038ac4 T ODM_MoveMemory -10038ace T ODM_delay_ms -10038ad2 T ODM_delay_us -10038ad8 T getSwingIndex -10038b30 T odm_TXPowerTrackingThermalMeterInit -10038be2 T odm_TXPowerTrackingInit -10038be6 T odm_TXPowerTrackingCheckIOT -10038c1a T ODM_TXPowerTrackingCheck -10038c28 T odm_RSSIMonitorInit -10038c30 T ODM_RAPostActionOnAssoc -10038c38 T odm_RSSIMonitorCheckIOT -10038d0c T odm_RSSIMonitorCheck -10038d20 T odm_RateAdaptiveMaskInit -10038d48 T ODM_RAStateCheck -10038d8a T odm_RefreshRateAdaptiveMaskIOT -10038dda T odm_RefreshRateAdaptiveMask -10038df0 T ODM_Get_Rate_Bitmap -10038ee0 t _ReadEfuseInfo8195a -10038fa8 t rtl8195a_interface_configure -10038fdc t rtl8195a_hal_deinit -10039018 T _InitPowerOn -10039098 t ReadAdapterInfo8195a -100390c8 T _InitDriverInfoSize -100390d2 T _InitNetworkType -100390f4 T _InitWMACSetting -10039164 T _InitAdaptiveCtrl -100391a8 T _InitEDCA -10039224 T _InitRateFallback -10039268 T _InitRetryFunction -10039294 T _InitOperationMode -100392dc T _InitInterrupt -1003931c t rtl8195a_hal_init -100395f4 T rtl8195ab_set_hal_ops -100396cc T FillH2CCmd8195A -100396ec T CheckFwRsvdPageContent -100396ee T rtl8195a_set_FwRsvdPage_cmd -100396f8 T rtl8195a_set_FwMediaStatusRpt_cmd -10039724 T rtl8195a_set_FwMacIdConfig_cmd -100397e4 T rtl8195a_set_FwPwrMode_cmd -10039874 T rtl8195a_download_rsvd_page -10039b7c T rtl8195a_set_FwJoinBssRpt_cmd -10039b86 T rtl8195a_Add_RateATid -10039bd8 T rtw_rpt_h_addr -10039c24 T rtw_txrpt_read8 -10039c42 T rtw_txrpt_write8 -10039c66 T rtw_ratemask_read8 -10039c84 T rtw_ratemask_write8 -10039ca8 T ReadRateMask8 -10039cb2 T WriteRateMask8 -10039cb6 T ReadTxrpt8 -10039cc0 T WriteTxrpt8 -10039cc4 T ResetTxrpt -10039cfc T PsuseTxrpt -10039d1c T CheckMaxMacidNum -10039d54 T GetMediaStatusCommon -10039d6e T GetTxrptStatistic -10039e24 T rtl8195a_InitHalDm -10039f48 T rtl8195a_HalDmWatchDog -1003a02c T rtl8195a_init_dm_priv -1003a104 T rtl8195a_deinit_dm_priv -1003a106 T MediaConnection -1003a124 T MediaDisconnection -1003a144 T RATaskEnable -1003a16e T SetMediaStatus -1003a1ac T H2CHDL_JoinInfo -1003a1e4 T H2CHDL_SetRsvdPage -1003a27c T H2CCmdCommon -1003a2c0 T HalPwrSeqCmdParsing -1003a380 T hci_dvobj_init -1003a390 T hci_dvobj_deinit -1003a3a0 T hci_dvobj_request_irq -1003a3b0 T hci_dvobj_free_irq -1003a3c0 T hci_lxbus_dvobj_init -1003a3fc T hci_lxbus_dvobj_deinit -1003a43c T hci_lxbus_dvobj_request_irq -1003a490 T hci_lxbus_free_irq -1003a4e8 T hci_lxbus_intf_stop -1003a520 T rtw_interrupt_thread -1003a594 T lextra_bus_dma_Interrupt -1003a5dc T init_rom_wlan_ram_map -1003a5f4 T ODM_ReadAndConfig_MP_8195A_MAC_REG -1003a750 t CheckPositive.isra.0 -1003a834 T ODM_ReadAndConfig_MP_8195A_RadioA -1003a8ac T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 -1003a8fc T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 -1003a94c T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 -1003a99c T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT -1003a9d4 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack -1003aa00 T GetDeltaSwingTable_8195A -1003aa30 T GetDeltaSwingXtalTable_8195A -1003aa40 T ODM_TxXtalTrackSetXtal_8195A -1003aa60 T Hal_MPT_CCKTxPowerAdjust -1003ab30 T ODM_TxPwrTrackSetPwr_8195A -1003ac40 T ConfigureTxpowerTrack_8195A -1003ac8c T phy_PathA_IQK_8195A -1003ae40 T phy_PathA_RxIQK8195A -1003b1d4 T _PHY_PathAFillIQKMatrix8195A -1003b36a T _PHY_PathBFillIQKMatrix8195A -1003b4e6 T _PHY_SaveADDARegisters8195A -1003b51a T _PHY_SaveMACRegisters8195A -1003b548 T _PHY_ReloadADDARegisters8195A -1003b57c T _PHY_ReloadMACRegisters8195A -1003b5ac T _PHY_PathADDAOn8195A -1003b5e8 T _PHY_MACSettingCalibration8195A -1003b630 T _PHY_PIModeSwitch8195A -1003b66c T phy_SimularityCompare_8195A -1003b7a0 T phy_IQCalibrate_8195A -1003bb18 T phy_LCCalibrate_8195A -1003bb88 T PHY_LCCalibrate_8195A -1003bbe8 T PHY_IQCalibrate_8195A -1003be9c T DoIQK_8195A -1003beba T ConfigureTxpowerTrack -1003becc T ODM_TXPowerTrackingCallback_ThermalMeter -1003c2d8 T ODM_ResetIQKResult -1003c320 T ODM_GetRightChnlPlaceforIQK -1003c374 T malloc -1003c384 T memcpy -1003c39a T memset -1003c3ac T _free_r -1003c444 T _malloc_r -1003c500 T rand -1003c574 T _sbrk_r -1003c594 T siscanf -1003c594 T sscanf -1003c5e8 T __seofread -1003c5ec T strlen -1003c5fc T __malloc_lock -1003c5fe T __malloc_unlock -1003c600 T _sungetc_r -1003c67c T __ssrefill_r -1003c6b8 T __ssvfiscanf_r -1003c6b8 T __ssvfscanf_r -1003c960 T _scanf_chars -1003ca2c T _scanf_i -1003cc10 T __sccl -1003cc70 T _strtol_r -1003cd7c T _strtoul_r -1003ce78 T __submore -1003ceea T memchr -1003cf06 T _realloc_r -1003cf52 T _malloc_usable_size_r -1003cf68 T _sbrk -1003cf84 T __aeabi_llsr -1003cf84 T __lshrdi3 -1003cf9c T __aeabi_drsub -1003cfa4 T __aeabi_dsub -1003cfa4 T __subdf3 -1003cfa8 T __adddf3 -1003cfa8 T __aeabi_dadd -1003d220 T __aeabi_ui2d -1003d220 T __floatunsidf -1003d240 T __aeabi_i2d -1003d240 T __floatsidf -1003d264 T __aeabi_f2d -1003d264 T __extendsfdf2 -1003d2a0 T __aeabi_ul2d -1003d2a0 T __floatundidf -1003d2b0 T __aeabi_l2d -1003d2b0 T __floatdidf -1003d30c T __aeabi_dmul -1003d30c T __muldf3 -1003d560 T __aeabi_ddiv -1003d560 T __divdf3 -1003d730 T __aeabi_d2uiz -1003d730 T __fixunsdfsi -1003d770 t __rtw_get_wpa2_ie_veneer -1003d780 t __aes_80211_encrypt_veneer -1003d790 t __wep_80211_encrypt_veneer -1003d7a0 t __aes_80211_decrypt_veneer -1003d7b0 t __rtw_set_ie_veneer -1003d7c0 t __rtw_parse_wpa2_ie_veneer -1003d7d0 t __ROM_ODM_CfoTrackingReset_veneer -1003d7e0 t __ROM_odm_FalseAlarmCounterStatistics_veneer -1003d7f0 t __rom_psk_PasswordHash_veneer -1003d800 t __Strtoul_veneer -1003d810 t __rt_md5_hmac_veneer -1003d820 t __rt_hmac_sha1_veneer -1003d830 t __ROM_odm_QueryRxPwrPercentage_veneer -1003d840 t __HalI2SRead32_veneer -1003d850 t __tkip_80211_encrypt_veneer -1003d860 t __rtw_get_rateset_len_veneer -1003d870 t __rtw_set_fixed_ie_veneer -1003d880 t __CmdWriteWord_veneer -1003d890 t __rtw_secgetmic_veneer -1003d8a0 t __rtw_get_bit_value_from_ieee_value_veneer -1003d8b0 t __ROM_odm_CfoTrackingFlow_veneer -1003d8c0 t __phy_CalculateBitShift_veneer -1003d8d0 t __rtw_get_wps_attr_content_veneer -1003d8e0 t __SpicWaitBusyDoneRtl8195A_veneer -1003d8f0 t __StrUpr_veneer -1003d900 t __prvStrCmp_veneer -1003d910 t __rt_arc4_crypt_veneer -1003d920 t __HalI2SIntrCtrlRtl8195a_veneer -1003d930 t __rtw_get_ie_veneer -1003d940 t __rtw_set_supported_rate_veneer -1003d950 t __PHY_QueryBBReg_8195A_veneer -1003d960 t __PHY_SetBBReg_8195A_veneer -1003d970 t __rtw_get_wpa_ie_veneer -1003d980 t __ROM_odm_SetCrystalCap_veneer -1003d990 t __rtw_parse_wpa_ie_veneer -1003d9a0 t __tkip_80211_decrypt_veneer -1003d9b0 t __ROM_odm_GetDefaultCrytaltalCap_veneer -1003d9c0 t __AES_UnWRAP_veneer -1003d9d0 t __rt_arc4_init_veneer -1003d9e0 t __HalCpuClkConfig_veneer -1003d9f0 t __rtw_seccalctkipmic_veneer -1003da00 t __key_2char2num_veneer -1003da10 t __rtw_secmicappend_veneer -1003da20 t __rom_psk_CalcGTK_veneer -1003da30 t __HalI2SClrAllIntrRtl8195a_veneer -1003da40 t __rom_psk_CalcPTK_veneer -1003da50 t __rtw_get_sec_ie_veneer -1003da60 t __HalDelayUs_veneer -1003da70 t __rtw_ieee802_11_parse_elems_veneer -1003da80 t __rtw_get_wps_ie_veneer -1003da90 t __CmdDumpWord_veneer -1003daa0 t __ROM_odm_EVMdbToPercentage_veneer -1003dab0 t __wep_80211_decrypt_veneer -1003dac0 t __AES_WRAP_veneer -1003dad0 t __rtw_secmicsetkey_veneer -1003dae0 t __rtw_check_network_type_veneer -1003daf0 t __HalI2SWrite32_veneer -1003e00f d __func__.12216 -1003e5c0 d __FUNCTION__.14124 -1003eae8 d bitrate_table -1003ec14 d samplerate_table -1003ec20 d decoder_table -1003ec2c d imdct_s -1003ecbc d scale.6899 -1003ed04 d sfb_8000_short -1003ed2b d sfb_32000_short -1003ed54 d is_table -1003ed70 d rq_table -10046dac d root_table -10046dc8 d sfb_44100_mixed -10046df0 d is_lsf_table -10046e68 d sflen_table -10046e88 d sfb_16000_mixed -10046eac d ca -10046ecc d sfb_44100_short -10046ef3 d sfb_44100_long -10046f09 d sfb_48000_mixed -10046f2f d sfb_24000_long -10046f45 d sfb_32000_mixed -10046f6b d sfb_16000_short -10046f92 d sfb_8000_long -10046fa8 d sfb_22050_mixed -10046fcc d window_l -1004705c d sfb_48000_long -10047074 d cs -10047094 d sfb_24000_mixed -100470b8 d pretab -100470ce d sfb_48000_short -100470f5 d sfb_22050_short -1004711c d sfb_8000_mixed -10047144 d sfbwidth_table -100471b0 d sfb_24000_short -100471d7 d sfb_32000_long -100471ed d sfb_22050_long -10047204 d window_s -10047234 d nsfb_table -1004727c d hufftab24 -10047884 d hufftab10 -10047a1c d hufftab11 -10047bbc d hufftab12 -10047d3c d hufftab13 -10048374 d hufftab3 -100483b4 d hufftab15 -100489a4 d hufftab16 -10048fec d hufftab6 -1004905c d hufftab7 -1004915c D mad_huff_pair_table -100492dc d hufftab9 -100493b4 d hufftab1 -100493d4 d hufftabA -10049444 d hufftab2 -10049484 d hufftabB -100494c4 D mad_huff_quad_table -100494cc d hufftab0 -100494d0 d hufftab5 -10049538 d hufftab8 -10049640 d crc_table -10049840 d D -1004a0c0 D mad_timer_zero -1004a3f9 d __func__.15753 -1004b153 d __FUNCTION__.8227 -1004b188 d err_to_errno_table -1004b1d0 D ip_addr_broadcast -1004b1d4 D ip_addr_any -1004b1e8 d memp_num -1004b208 d memp_sizes -1004b228 D tcp_pcb_lists -1004b238 D tcp_state_str -1004b264 D tcp_backoff -1004b2d9 D tcp_persist_backoff -1004b2e0 D ethbroadcast -1004b2e6 D ethzero -1004b3c8 d __FUNCTION__.8702 -1004b3d7 d __FUNCTION__.8714 -1004b3e6 d dhcp_magic_cookie -1004b3ea d dhcp_option_lease_time_one_day -1004b413 d dhcp_option_interface_mtu_576 -1004b454 d __FUNCTION__.4594 -1004b502 d ucExpectedStackBytes.6559 -1004b538 D osdep_service -1004b65c d __FUNCTION__.11772 -1004b672 d __FUNCTION__.11768 -1004b688 d __FUNCTION__.11606 -1004b721 d __FUNCTION__.11572 -1004b735 d __FUNCTION__.11623 -1004b748 d __FUNCTION__.11580 -1004b764 d __FUNCTION__.11634 -1004b7e5 d __FUNCTION__.6815 -1004b8dc d PinMap_I2S_RX -1004b9bc d PinMap_I2S_TX -1004ba1c d I2SDefaultSetting -1004ba30 d PinMap_I2S_CLK -1004ba90 d __FUNCTION__.8781 -1004ba9c d PinMap_I2S_WS -1004bb4b d __FUNCTION__.8597 -1004bb58 d __FUNCTION__.8610 -1004bdfd d __FUNCTION__.8459 -1004be18 d __FUNCTION__.8466 -1004bf13 d __FUNCTION__.8452 -1004bf35 d __func__.8808 -1004bf54 d __func__.8818 -1004bf72 d __func__.8830 -1004bf8c d __func__.8840 -1004bfae d __func__.8835 -1004c377 d __func__.8603 -1004c391 d __func__.8686 -1004c3a4 d __func__.8825 -1004c3bd d __func__.8631 -1004c400 D wlancmds -1004c5f8 D rtw_cmd_callback -1004c884 d RTW_ChannelPlan2G -1004c8fc D WPS_OUI -1004c900 D RSN_TKIP_CIPHER -1004c904 D MCS_rate_1R -1004c914 D P2P_OUI -1004c940 D WMM_INFO_OUI -1004c946 D RTW_WPA_OUI -1004c94a D WMM_PARA_OUI -1004c950 d RTW_ChannelPlanMap -1004c968 D null_addr -1004c96e D WMM_OUI -1004c974 d wlanevents -1004ca34 D zero_bssid -1004ca71 d __FUNCTION__.17681 -1004ca87 D SNAP_ETH_TYPE_APPLETALK_AARP -1004ca89 d __FUNCTION__.17495 -1004ca9c D SNAP_ETH_TYPE_IPX -1004ca9e D rtw_bridge_tunnel_header -1004cac5 D rtw_rfc1042_header -1004cae3 d CSWTCH.36 -1004caef D ARTHEROS_OUI1 -1004caf2 D ARTHEROS_OUI2 -1004caf5 D REALTEK_OUI -1004caf8 D RALINK_OUI -1004cafb D MARVELL_OUI -1004cafe D CISCO_OUI -1004cb01 d rtw_basic_rate_cck -1004cb05 D BROADCOM_OUI1 -1004cb08 D BROADCOM_OUI2 -1004cb0b D REALTEK_96B_IE -1004cb11 d rtw_basic_rate_mix -1004cb18 d rtw_basic_rate_ofdm -1004cb1b D AIRGOCAP_OUI -1004cb2f d CSWTCH.66 -1004cb48 d CSWTCH.48 -1004cb8a d CSWTCH.28 -1004cb9c D efuse_map_mask -1004cbac D flash_map_mask -1004cc48 d __func__.21107 -1004cf8e d CSWTCH.15 -1004d012 d CSWTCH.17 -1004d081 d CSWTCH.14 -1004d116 d __FUNCTION__.21257 -1004d128 d rtw_private_args -1004d536 d __FUNCTION__.21057 -1004d549 d __FUNCTION__.21294 -1004d55a d __FUNCTION__.21241 -1004d569 d __FUNCTION__.21126 -1004d579 d iw_priv_type_size -1004d657 d __FUNCTION__.17334 -1004d661 d __FUNCTION__.17736 -1004d671 d __FUNCTION__.17760 -1004d684 d __FUNCTION__.17712 -1004d693 d __FUNCTION__.17649 -1004d6a1 d __FUNCTION__.17661 -1004da78 d __FUNCTION__.17827 -1004da91 d __FUNCTION__.17654 -1004da9c d __FUNCTION__.17615 -1004daab d __FUNCTION__.17811 -1004dabd d __FUNCTION__.17765 -1004dacb d __FUNCTION__.17637 -1004ee6c D CCKFCCTable_Ch14_8195A -1004ee7c D CCKFCCTable_8195A -1004ee8c D OFDMSwingTable_New -1004ef38 D CCKCETable_8195A -1004ef4e d CSWTCH.39 -1004ef63 d __func__.20571 -1004ef84 D hci_ops -1004efa9 V Array_MP_8195A_TXPWR_LMT -1004f51b D _ctype_ -1004f61c D __sf_fake_stdin -1004f63c D __sf_fake_stdout -1004f65c D __sf_fake_stderr -1004f6a8 D xHeapRegions -1004f6c8 D UartLogRamCmdTable -1004f6c8 D console_commands1 -1004f778 D console_commands -1004f788 d UartLogRamCmdTable_end -1004f78c D __data_start__ -1004f78c D oversampling -1004f790 D wifi_mode -1004f794 d wifi -1004f7cc D SystemCoreClock -1004f7d0 D error_flag -1004f7d4 d iss.7391 -1004f7d8 d tcp_port -1004f7da d udp_port -1004f7dc d dhcp_recorded_xid -1004f7e0 d dhcp_server_state_machine -1004f7e4 d uxCriticalNesting -1004f7e8 d xNextTaskUnblockTime -1004f7ec d seed.11739 -1004f7f0 d wakeup_event -1004f7f4 d wakelock -1004f7f8 d last_wakelock_state -1004f818 D mlme_sta_tbl -1004f888 d PMKID_KDE_TYPE.17744 -1004f890 V nr_xmitbuff -1004f894 V nr_xmitframe -1004f898 d P802_1H_OUI -1004f89b D rtw_adaptivity_mode -1004f89c D g_user_ap_sta_num -1004f8a0 d rtw_private_handler -1004f8e4 V max_local_skb_num -1004f8e8 V max_skb_buf_num -1004f8ec D rom_e_rtw_msgp_str_ -1004fac8 D ARFB_table -1004fb07 D TRYING_NECESSARY_idx -1004fb1b D DROPING_NECESSARY -1004fb2f D PER_RATE_UP -1004fb43 D PER_RATE_DOWN -1004fb58 V Array_MP_8195A_PHY_REG_PG -1004fbe8 D Array_MP_8195A_AGC_TAB -1004fdf8 D Array_MP_8195A_PHY_REG -10050470 D rtl8195A_card_disable_flow -10050510 D rtl8195A_card_enable_flow -100505b0 D Array_MP_8195A_MAC_REG -100508b8 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A -100508d8 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A -100508f8 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A -10050916 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A -10050934 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A -10050952 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A -10050970 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A -10050990 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A -100509ae D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A -100509cc D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A -100509ec D Array_MP_8195A_RadioA -10050fb4 D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A -10050fd2 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A -10050ff2 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A -10051010 D __ctype_ptr__ -10051014 d impure_data -10051074 D _impure_ptr -10051078 D .ram.bss$$Base -10051078 D SpicInitParaAllClk -10051078 D __bss_start__ -10051078 D __data_end__ -10051078 D __ram_image2_text_end__ -10051108 d skbdata_list -10051110 V skb_data_pool -10054510 d ucIdleTaskHeap -10054628 D HalI2SOpSAL -10054664 D errno -10054668 D SYSAdapte -1005466c D PwrAdapter -100548f8 D p_write_reconnect_ptr -100548fc d sampCntAdd -10054900 d sampCnt -10054904 D tskreader_enable -10054908 D readBuf -1005490c D tskmad_enable -10054910 d bufUnderrunCt -10054914 d oldRate -10054918 d sampDelCnt -1005491c d ap -10054950 D mp3_serv -100549d2 d password -10054a14 D pbuf_fifo -10054a18 D pi2s -10054a20 D libc_has_init -10054a24 d rheap_end -10054a28 D eap_method -10054a29 D eap_phase -10054a2c D rtw_join_status -10054a30 d param.16189 -10054a48 d event_init.15914 -10054a4c d join_user_data -10054a50 d event_callback_list -10054bd0 D paff_array -10054c48 D lwip_init_done -10054c4c D xnetif -10054cc4 d s_hostent_addr.6979 -10054cc8 d s_phostent_addr.6980 -10054cd0 D h_errno -10054cd4 d s_aliases.6978 -10054cd8 d s_hostent.6977 -10054cec d select_cb_list -10054cf0 d sockets -10054db0 d select_cb_ctr -10054db4 d mbox -10054db8 d tcpip_init_done_arg -10054dbc d tcpip_init_done -10054dc0 d allsystems -10054dc4 d allrouters -10054dc8 d igmp_group_list -10054dcc D current_header -10054dd0 d ip_id -10054dd4 D current_iphdr_src -10054dd8 D current_iphdr_dest -10054ddc D current_netif -10054de0 d str.6324 -10054df0 d reassdatagrams -10054df4 d ip_reass_pbufcount -10054df6 D dhcp_rx_options_given -10054e00 d xid.7384 -10054e04 D dhcp_rx_options_val -10054e2c d dns_seqno -10054e30 d dns_table -10055290 d dns_servers -10055298 d dns_payload_buffer -1005549c d dns_pcb -100554a0 d dns_payload -100554a4 d tcpip_tcp_timer_active -100554a8 d next_timeout -100554ac D netif_list -100554b0 D netif_default -100554b4 d netif_num -100554b5 D pbuf_free_ooseq_pending -100554b8 d raw_pcbs -100554bc D tcp_active_pcbs_changed -100554c0 D tcp_ticks -100554c4 d tcp_timer -100554c8 D tcp_listen_pcbs -100554cc D tcp_active_pcbs -100554d0 d tcp_timer_ctr -100554d4 D tcp_tw_pcbs -100554d8 D tcp_tmp_pcb -100554dc D tcp_bound_pcbs -100554e0 d seqno -100554e4 d tcplen -100554e8 d ackno -100554ec d flags -100554ed d recv_flags -100554f0 d tcphdr -100554f4 d recv_data -100554f8 d inseg -1005550c D tcp_input_pcb -10055510 D udp_pcbs -10055514 d etharp_cached_entry -10055518 d arp_table -100555e0 D lwip_tickless_used -100555e4 d s_timeoutlist -10055614 d s_nextthread -10055618 d dhcps_network_id -1005561c d dhcps_ip_table_semaphore -10055620 d bound_client_ethernet_address -10055630 d client_request_ip -10055634 d dhcps_local_gateway -10055638 d dhcps_send_broadcast_address -1005563c d dhcp_message_repository -10055640 d dhcp_message_total_options_lenth -10055644 d dhcps_local_mask -10055648 d dhcps_local_address -1005564c d dhcp_client_ethernet_address -1005565c d dhcps_netif -10055660 d dhcps_addr_pool_set -10055664 d dhcps_pcb -10055668 d dhcps_subnet_broadcast -1005566c d dhcps_addr_pool_start -10055670 d dhcps_allocated_client_address -10055674 d ip_table -10055694 d dhcps_addr_pool_end -10055698 D ext_upper -1005569c d xFreeBytesRemaining -100556a0 d ext_free -100556a4 D ext_lower -100556a8 d pxEnd -100556ac d xStart -100556b4 d xMinimumEverFreeBytesRemaining -100556b8 d xBlockAllocatedBit -100556bc d ulTimerCountsForOneTick -100556c0 d ulStoppedTimerCompensation -100556c4 d xMaximumPossibleSuppressedTicks -100556c8 d xPendingReadyList -100556dc d uxTopReadyPriority -100556e0 d uxTasksDeleted -100556e4 d xTickCount -100556e8 d pxReadyTasksLists -100557c4 d pxOverflowDelayedTaskList -100557c8 d xTasksWaitingTermination -100557dc d pxDelayedTaskList -100557e0 d xSchedulerRunning -100557e4 d ulTaskSwitchedInTime -100557e8 D pxCurrentTCB -100557ec d uxPendedTicks -100557f0 d xSuspendedTaskList -10055804 d uxCurrentNumberOfTasks -10055808 d ulDeltaTotalRunTime -1005580c d xDelayedTaskList2 -10055820 d xDelayedTaskList1 -10055834 d uxTaskNumber -10055838 d xYieldPending -1005583c d uxSchedulerSuspended -10055840 d xNumOfOverflows -10055844 d pxCurrentTimerList -10055848 d xActiveTimerList1 -1005585c d xActiveTimerList2 -10055870 d xLastTime.5284 -10055874 d xTimerQueue -10055878 d pxOverflowTimerList -1005587c d xTimerTaskHandle -10055880 d device_mutex -1005588c d mutex_init -10055890 d uxSavedInterruptStatus -10055894 D min_free_heap_size -10055898 d g_heap_inited -1005589c d tcm_lock -100558a0 D g_tcm_heap -100558a4 D flashobj -100558b0 D fspic_isinit -100558b4 D WDGAdapter -100558f0 d last_acquire_wakelock_time -10055970 D post_sleep_callback -100559f0 D pre_sleep_callback -10055a70 D reserve_pll -10055a74 d sys_sleep_time -10055a78 d hold_wakelock_time -10055af8 D missing_tick -10055afc D Timer2To7HandlerData -10055b14 D auto_reconnect_running -10055b18 D p_wlan_autoreconnect_hdl -10055b1c D mac_monitor_callback -10055b20 D mf_list_head -10055b24 d pscan_retry_cnt.21430 -10055b28 D promisc_callback_all -10055b2c D promisc_sema -10055b30 D promisc_callback -10055b34 D psk_essid -10055b7c D psk_passphrase -10055bfe D psk_passphrase64 -10055c3f D wpa_global_PSK -10055c8f d RFC1042_OUI -10055c94 d rx_ring_pool -10057d74 d stop_report_count.20629 -10057d75 D bCheckStateTIMER -10057d78 d WifiMcuCmdBitMap.20974 -10057d7c D p_wlan_init_done_callback -10057d80 D rtw_power_percentage_idx -10057d84 D p_wlan_uart_adapter_callback -10057d88 D rtw_adaptivity_en -10057d8c D p_wlan_mgmt_filter -10057d90 D rtw_initmac -10057d94 D rtw_adaptivity_th_l2h_ini -10057d98 d drvpriv -10057dac D skbbuf_used_num -10057db0 V skb_pool -10057f68 D skbdata_used_num -10057f6c d wrapper_skbbuf_list -10057f74 D max_skbdata_used_num -10057f78 D max_skbbuf_used_num -10057f7c d skb_fail_count -10057f80 D timer_table -10057f88 D rltk_wlan_info -10057fb8 d timer_used_num -10057fbc D max_timer_used_num -10057fc0 D Noisy_State -10057fc4 D pExportWlanIrqSemaphore -10057fc8 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A -10057fe8 D __malloc_sbrk_start -10057fec D __malloc_free_list -10057ff0 d heap_end.4167 -10057ff4 D .ram.bss$$Limit -10057ff4 D __bss_end__ -10057ff8 B __ram_heap2_start__ +1000dd8c T wifi_autoreconnect_hdl +1000ddc8 T patch_rltk_wlan_deinit +1000de8c T wifi_rx_beacon_hdl +1000de90 T wifi_disconnect +1000dec4 T wifi_set_channel +1000ded0 T wifi_set_mib +1000ded8 T wifi_on +1000df80 T wifi_off +1000dfd8 T wifi_set_pscan_chan +1000dff0 T wifi_get_setting +1000e0a0 T restore_wifi_info_to_flash +1000e1d0 T wifi_connect +1000e458 t wifi_autoreconnect_thread +1000e4c0 T wifi_connect_bssid +1000e6b8 T wifi_config_autoreconnect +1000e6dc T wifi_set_autoreconnect +1000e6f4 T wifi_indication +1000e730 T wifi_reg_event_handler +1000e784 T wifi_unreg_event_handler +1000e7c8 T init_event_callback_list +1000e7d8 T promisc_deinit +1000e7dc T promisc_recv_func +1000e7e0 T promisc_set +1000e7e4 T is_promisc_enabled +1000e7ee T iw_ioctl +1000e80a T wext_get_ssid +1000e854 T wext_set_ssid +1000e888 T wext_set_bssid +1000e8d2 T is_broadcast_ether_addr +1000e8f4 T wext_set_auth_param +1000e922 T wext_set_key_ext +1000ea22 T wext_get_enc_ext +1000ea84 T wext_set_passphrase +1000eab8 T wext_get_passphrase +1000eae8 T wext_get_mode +1000eb14 T wext_set_pscan_channel +1000eb94 T wext_set_channel +1000ebc2 T wext_get_channel +1000ebf0 T wext_wlan_indicate +1000ed38 T wext_set_autoreconnect +1000ed88 T wext_set_adaptivity +1000edb0 T LwIP_Init +1000ee7c T LwIP_DHCP +1000ef74 T LwIP_GetIP +1000ef78 T LwIP_AUTOIP +1000eff4 T init_thread +1000f010 T wlan_network +1000f054 t netconn_recv_data +1000f124 T netconn_new_with_proto_and_callback +1000f184 T netconn_delete +1000f1a8 T netconn_getaddr +1000f1ec T netconn_connect +1000f22c T netconn_recv_tcp_pbuf +1000f23e T netconn_recv +1000f2c0 T netconn_recved +1000f2ec T netconn_send +1000f328 T netconn_write_partly +1000f3b8 T netconn_gethostbyname +1000f410 t recv_udp +1000f47c t recv_raw +1000f4f8 t setup_tcp +1000f53c t err_tcp +1000f5d4 t do_connected +1000f640 t do_writemore +1000f740 t do_close_internal +1000f82c t poll_tcp +1000f87c t do_dns_found +1000f8a8 t sent_tcp +1000f8f6 t recv_tcp +1000f970 T do_newconn +1000fa00 T netconn_alloc +1000fa68 T netconn_free +1000fa96 t netconn_drain +1000fb26 T do_delconn +1000fbb4 T do_connect +1000fc48 T do_send +1000fcb8 T do_recv +1000fcf8 T do_write +1000fd32 T do_getaddr +1000fda8 T do_gethostbyname +1000fdd4 T netbuf_delete +1000fdf6 T netbuf_free +1000fe0c T netbuf_ref +1000fe48 T lwip_gethostbyname +1000fe94 t get_socket +1000feb4 t alloc_socket +1000ff24 t event_callback +10010054 T lwip_socket_init +10010056 T lwip_close +100100a8 T lwip_connect +10010104 T lwip_recvfrom +100102bc T lwip_read +100102d0 T lwip_sendto +1001037c T lwip_send +100103f4 T lwip_socket +10010468 T lwip_write +10010470 t tcpip_thread +100104f8 T tcpip_input +1001053c T tcpip_callback_with_block +1001058c T tcpip_timeout +100105cc T tcpip_apimsg +10010624 T tcpip_init +10010668 t autoip_start_probing +100106b4 t autoip_arp_announce +100106e0 T autoip_start +10010774 T autoip_tmr +10010884 T autoip_arp_reply +1001092c t icmp_send_response.isra.0 +1001099c T icmp_input +10010ac0 T icmp_dest_unreach +10010aca T icmp_time_exceeded +10010ad4 t igmp_send +10010b78 t igmp_delaying_member +10010bb0 t igmp_lookup_group.part.1 +10010be4 T igmp_init +10010c00 T igmp_report_groups +10010c24 T igmp_lookfor_group +10010c44 T igmp_start +10010c80 T igmp_input +10010d44 T igmp_tmr +10010d70 t lwip_standard_chksum +10010dc8 T inet_chksum_pseudo +10010e4e T inet_chksum +10010e5a T inet_chksum_pbuf +10010ea0 T ip_route +10010edc T ip_input +100110b4 T ip_output_if_opt +10011208 T ip_output_if +1001122a T ip_output +10011262 T ip4_addr_isbroadcast +1001129a T ipaddr_aton +100113b0 T ipaddr_addr +100113c8 T ipaddr_ntoa_r +10011460 T ipaddr_ntoa +1001146c t ipfrag_free_pbuf_custom +10011484 t ip_reass_free_complete_datagram +10011508 t ip_reass_remove_oldest_datagram +1001157c T ip_reass_tmr +100115a4 T ip_reass +1001184c T ip_frag +100119b4 T lwip_htons +100119ba T lwip_ntohs +100119c0 T lwip_htonl +100119c4 T lwip_ntohl +100119c8 t dhcp_set_state +100119d8 t dhcp_option +100119f8 t dhcp_option_byte +10011a0a t dhcp_option_short +10011a2c t dhcp_option_long +10011a70 t dhcp_create_msg +10011bc0 t dhcp_delete_msg +10011bd6 t dhcp_check +10011bfc t dhcp_bind +10011cd0 t dhcp_option_trailer +10011cfc t dhcp_discover +10011db0 t dhcp_rebind +10011e3c t dhcp_select +10011f20 t dhcp_reboot +10011fc4 t dhcp_recv +100123d4 T dhcp_arp_reply +10012454 T dhcp_renew +100124dc T dhcp_release +10012584 T dhcp_coarse_tmr +10012610 T dhcp_fine_tmr +100126ac T dhcp_release_unicast +10012770 T dhcp_stop +100127a0 T dhcp_start +10012840 t dns_parse_name +1001285c t dns_recv +100129f0 t dns_send +10012ac0 t dns_check_entry +10012b70 T dns_setserver +10012b90 T dns_init +10012be8 T dns_tmr +10012c14 T dns_gethostbyname +10012d54 T lwip_init +10012d84 T sys_timeout +10012ddc T tcp_timer_needed +10012e10 t tcpip_tcp_timer +10012e48 T sys_timeouts_init +10012ebc t dns_timer +10012ed8 t igmp_timer +10012ef0 t autoip_timer +10012f08 t dhcp_timer_fine +10012f24 t dhcp_timer_coarse +10012f40 t arp_timer +10012f5c t ip_reass_timer +10012f78 T sys_untimeout +10012fc0 T sys_timeouts_mbox_fetch +10013024 T mem_init +10013068 T mem_free +10013110 T mem_trim +100131e8 T mem_malloc +100132b8 T memp_init +10013308 T memp_malloc +10013334 T memp_free +1001335c T netif_init +10013360 T netif_set_ipaddr +100133b8 T netif_set_addr +100133d4 T netif_add +10013438 T netif_set_gw +10013440 T netif_set_netmask +10013448 T netif_set_default +10013454 T netif_set_up +1001348a T netif_set_down +100134a4 t pbuf_free_ooseq_callback +100134d8 t pbuf_pool_is_empty +10013514 T pbuf_alloced_custom +10013568 T pbuf_header +100135c0 T pbuf_free +1001361c T pbuf_alloc +1001372e T pbuf_realloc +1001377a T pbuf_clen +1001378a T pbuf_ref +100137a4 T pbuf_cat +100137c0 T pbuf_chain +100137d0 T pbuf_copy +1001386c T pbuf_copy_partial +100138d4 T pbuf_coalesce +10013900 T raw_input +10013978 T raw_connect +10013982 T raw_recv +10013988 T raw_sendto +10013a18 T raw_send +10013a20 T raw_remove +10013a4c T raw_new +10013a78 t tcp_new_port +10013ac8 T tcp_init +10013aca T tcp_update_rcv_ann_wnd +10013b00 T tcp_recved +10013b3a T tcp_seg_free +10013b56 T tcp_segs_free +10013b66 T tcp_seg_copy +10013b86 T tcp_arg +10013b8a T tcp_recv +10013b90 T tcp_sent +10013b96 T tcp_err +10013b9c T tcp_accept +10013ba0 T tcp_poll +10013baa T tcp_pcb_purge +10013bec T tcp_slowtmr +10013eac T tcp_pcb_remove +10013f14 t tcp_close_shutdown +10014048 T tcp_close +10014060 T tcp_recv_null +10014084 T tcp_process_refused_data +100140e4 T tcp_fasttmr +1001415c T tcp_tmr +10014180 T tcp_shutdown +100141d0 T tcp_abandon +1001426c T tcp_abort +10014274 T tcp_next_iss +1001428c T tcp_alloc +100143a4 T tcp_new +100143aa T tcp_eff_send_mss +100143c8 T tcp_connect +10014524 t tcp_oos_insert_segment +100145a4 t tcp_receive +10014d7c t tcp_parseopt.isra.0 +10014e00 T tcp_input +1001565c t tcp_pbuf_prealloc +100156ae t tcp_create_segment +1001576e t tcp_output_alloc_header.constprop.0 +100157d8 T tcp_write +10015b28 T tcp_enqueue_flags +10015bd0 T tcp_send_fin +10015c18 T tcp_send_empty_ack +10015c78 T tcp_output +10015ef0 T tcp_rst +10015f86 T tcp_rexmit_rto +10015fb4 T tcp_rexmit +10016004 T tcp_rexmit_fast +1001605a T tcp_keepalive +100160ac T tcp_zero_window_probe +10016154 T udp_init +10016158 T udp_input +100162e0 T udp_bind +10016388 T udp_sendto_if +10016486 T udp_sendto +100164bc T udp_send +100164c8 T udp_connect +10016510 T udp_disconnect +10016520 T udp_recv +10016528 T udp_remove +10016554 T udp_new +10016570 t etharp_free_entry +100165a0 t etharp_find_entry +1001667c t etharp_send_ip +100166b0 T etharp_tmr +100166f0 T etharp_cleanup_netif +10016718 T etharp_raw +100167d4 T etharp_request +10016800 t etharp_output_to_arp_index +10016848 T etharp_query +1001694c T etharp_output +10016a44 T ethernet_input +10016c34 t low_level_output +10016c90 t arp_timer +10016cac T ethernetif_recv +10016d24 T ethernetif_init +10016d4c T lwip_POST_SLEEP_PROCESSING +10016d68 T rltk_wlan_set_netif_info +10016d88 T rltk_wlan_send +10016e1c T rltk_wlan_recv +10016e7c T netif_is_valid_IP +10016eb4 T netif_get_idx +10016ed4 T netif_rx +10016ee4 T netif_post_sleep_processing +10016ee8 T sys_mbox_new +10016f02 T sys_mbox_free +10016f16 T sys_mbox_post +10016f36 T sys_mbox_trypost +10016f58 T sys_arch_mbox_fetch +10016fa2 T sys_arch_mbox_tryfetch +10016fc2 T sys_mbox_valid +10016fcc T sys_mbox_set_invalid +10016fd2 T sys_sem_new +1001700e T sys_arch_sem_wait +1001704e T sys_sem_signal +1001705a T sys_sem_free +10017060 T sys_sem_valid +1001706a T sys_sem_set_invalid +10017070 T sys_init +10017094 T sys_thread_new_tcm +100170fc T sys_arch_protect +10017106 T sys_arch_unprotect +1001710c t add_offer_options +100171c8 t mark_ip_in_table +100172c0 t dhcps_initialize_message +10017370 T dhcps_handle_state_machine_change +10017444 t dhcps_receive_udp_packet_handler +10017754 T dhcps_init +10017854 T dhcps_deinit +1001787c t prvInsertBlockIntoFreeList +100178c4 T dump_mem_block_list +10017910 T __vPortFree +1001795c T vPortSetExtFree +10017978 T vPortFree +100179a8 T xPortGetFreeHeapSize +100179b4 T vPortDefineHeapRegions +10017a6c T pvPortMalloc +10017b34 t prvPortStartFirstTask +10017b54 T pxPortInitialiseStack +10017b70 T vPortSVCHandler +10017b90 t pxCurrentTCBConst2 +10017b94 T vPortYield +10017bac T ulPortSetInterruptMask +10017bbc t prvTaskExitError +10017bc4 T vPortEnterCritical +10017be0 T vPortClearInterruptMask +10017be8 T vPortExitCritical +10017bfc T xPortPendSVHandler +10017c3c t pxCurrentTCBConst +10017c40 T xPortSysTickHandler +10017c64 W vPortSuppressTicksAndSleep +10017d7c W vPortSetupTimerInterrupt +10017dcc T xPortStartScheduler +10017dfc T vApplicationIdleHook +10017e00 T vApplicationStackOverflowHook +10017e1c T osKernelSysTick +10017e20 T vListInitialise +10017e36 T vListInitialiseItem +10017e3c T vListInsertEnd +10017e54 T vListInsert +10017e84 T uxListRemove +10017ea4 t prvCopyDataToQueue +10017f0e t prvCopyDataFromQueue +10017f36 t prvUnlockQueue +10017f9e T xQueueGenericReset +10017ff8 T xQueueGenericCreate +10018044 T xQueueCreateCountingSemaphore +10018056 T xQueueGenericSend +10018134 T xQueueCreateMutex +1001817e T xQueueGenericSendFromISR +100181e2 T xQueueGenericReceive +100182e6 T uxQueueMessagesWaiting +100182f8 T vQueueDelete +1001830e T vQueueWaitForMessageRestricted +10018348 t prvGenerateRunTimeOfPeroid +10018388 t prvGetExpectedIdleTime +100183b8 t prvListTaskWithinSingleList +100184a0 t prvResetNextTaskUnblockTime +100184c4 t prvAddCurrentTaskToDelayedList +10018514 T xTaskGenericCreate +100186c8 T vTaskDelete +10018768 T uxTaskPriorityGet +10018784 T vTaskPrioritySet +1001883c T vTaskStartScheduler +10018894 T vTaskSuspendAll +100188a4 T xTaskGetTickCount +100188bc T pcTaskGetTaskName +100188cc T vTaskStepTick +100188dc T xTaskIncrementTick +10018a5c T xTaskResumeAll +10018b24 T vTaskDelay +10018b74 t prvIdleTask +10018bfc T uxTaskGetSystemState +10018cac T vTaskSwitchContext +10018d64 T vTaskPlaceOnEventList +10018dc0 T vTaskPlaceOnEventListRestricted +10018e04 T xTaskRemoveFromEventList +10018e74 T vTaskSetTimeOutState +10018e8c T xTaskCheckForTimeOut +10018ed8 T vTaskMissedYield +10018ee4 T eTaskConfirmSleepModeStatus +10018f04 T xTaskGetSchedulerState +10018f24 T vTaskPriorityInherit +10018fb8 T xTaskPriorityDisinherit +10019028 T vTaskGetRunTimeStats +10019108 T pvTaskIncrementMutexHeldCount +10019120 T vTaskGetCurrentTCB +1001912c t prvCheckForValidListAndQueue +10019178 t prvInsertTimerInActiveList +100191b4 T xTimerCreateTimerTask +100191f0 T xTimerCreate +1001922c T xTimerGenericCommand +100192c0 t prvSwitchTimerLists +10019330 t prvTimerTask +10019494 T xTimerIsTimerActive +100194ac t device_mutex_init +100194f0 T device_mutex_lock +10019520 T device_mutex_unlock +1001953c t _freertos_systime_to_sec +10019546 t _freertos_ms_to_systime +10019548 t _freertos_sec_to_systime +10019550 t _freertos_usleep_os +10019552 t _freertos_ATOMIC_SET +10019556 t _freertos_ATOMIC_READ +1001955a t _freertos_modular64 +100195ce t _freertos_thread_enter +100195d0 t _freertos_enter_critical +100195d4 t _freertos_exit_critical +100195d8 t _freertos_ATOMIC_SUB_RETURN +100195f0 t _freertos_ATOMIC_DEC_RETURN +10019606 t _freertos_ATOMIC_ADD_RETURN +1001961e t _freertos_ATOMIC_INC_RETURN +10019634 t _freertos_ATOMIC_SUB +1001964c t _freertos_ATOMIC_DEC +10019652 t _freertos_ATOMIC_ADD +1001966a t _freertos_ATOMIC_INC +10019670 t _freertos_enter_critical_from_isr +10019680 T _freertos_malloc +10019684 T _freertos_zmalloc +1001969c t _freertos_memset +100196a0 T _freertos_mfree +100196a4 t _freertos_get_current_time +100196a8 t _freertos_spinunlock_irqsave +100196be t _freertos_spinunlock +100196ca t _freertos_mutex_put +100196ce T _freertos_wakeup_task +100196d4 t _freertos_up_sema +100196d8 t _freertos_exit_critical_mutex +100196e4 T _freertos_timerCreate +100196e8 T _freertos_timerDelete +100196fc T _freertos_timerStop +10019710 T _freertos_timerChangePeriod +1001972a T _freertos_timerIsTimerActive +1001972e T _freertos_acquire_wakelock +10019734 T _freertos_release_wakelock +1001973a T _freertos_get_scheduler_state +1001975a t _freertos_thread_exit +10019760 t _freertos_GetFreeHeapSize +10019764 t _freertos_yield_os +10019768 t _freertos_udelay_os +1001976c t _freertos_mdelay_os +10019770 t _freertos_deinit_xqueue +1001978a t _freertos_spinlock_free +1001979c t _freertos_mutex_free +100197a0 t _freertos_free_sema +100197a4 t _freertos_push_to_xqueue +100197cc t _freertos_pop_from_xqueue +100197f4 t _freertos_down_sema +10019816 t _freertos_init_xqueue +10019830 t _freertos_spinlock_irqsave +1001986c t _freertos_spinlock +100198a4 t _freertos_enter_critical_mutex +100198dc t _freertos_mutex_get +10019914 t _freertos_spinlock_init +10019922 t _freertos_mutex_init +10019928 t _freertos_exit_critical_from_isr +10019934 t _freertos_up_sema_from_isr +1001995c t _freertos_init_sema +1001996c t _freertos_create_task +100199e4 t _freertos_memcmp +100199f2 t _freertos_memcpy +100199f8 t _freertos_delete_task +10019a44 t _freertos_mutex_get_timeout +10019a80 t _freertos_systime_to_ms +10019a82 t _freertos_msleep_os +10019a86 T save_and_cli +10019a8a T restore_flags +10019a8e T cli +10019a94 T _freertos_arc4random +10019ac4 t _freertos_get_random_bytes +10019b02 T RtlInitSema +10019b10 T RtlUpSemaFromISR +10019b30 T RtlDownSema +10019b44 T RtlUdelayOS +10019b48 T _htons +10019b4e T _ntohs +10019b54 T _rtw_zvmalloc +10019b74 T _rtw_vmfree +10019b98 T _rtw_malloc +10019ba8 T _rtw_zmalloc +10019bb8 T _rtw_mfree +10019bc8 T rtw_vmfree +10019bcc T rtw_mfree +10019bd0 T rtw_memcpy +10019be0 T rtw_memcmp +10019bf0 T rtw_memset +10019c00 T rtw_init_listhead +10019c06 T rtw_is_list_empty +10019c10 T rtw_list_insert_head +10019c1c T rtw_list_insert_tail +10019c28 T rtw_list_delete +10019c38 T rtw_init_sema +10019c48 T rtw_free_sema +10019c58 T rtw_up_sema +10019c68 T rtw_up_sema_from_isr +10019c78 T rtw_down_timeout_sema +10019c88 T rtw_down_sema +10019c9c T rtw_mutex_init +10019cac T rtw_mutex_free +10019cbc T rtw_mutex_put +10019ccc T rtw_mutex_get_timeout +10019ce0 T rtw_enter_critical_from_isr +10019cf0 T rtw_enter_critical +10019cf4 T rtw_exit_critical_from_isr +10019d04 T rtw_exit_critical +10019d08 T rtw_enter_critical_mutex +10019d18 T rtw_exit_critical_mutex +10019d28 T rtw_queue_empty +10019d32 T rtw_end_of_queue_search +10019d3c T rtw_spinlock_init +10019d4c T rtw_init_queue +10019d58 T rtw_spinlock_free +10019d68 T rtw_spin_lock +10019d78 T rtw_enter_critical_bh +10019d7c T rtw_spin_unlock +10019d8c T rtw_exit_critical_bh +10019d90 T rtw_get_current_time +10019da0 T rtw_systime_to_ms +10019db4 T rtw_systime_to_sec +10019dc8 T rtw_ms_to_systime +10019ddc T rtw_sec_to_systime +10019df0 T rtw_get_passing_time_ms +10019e04 T rtw_msleep_os +10019e14 T rtw_usleep_os +10019e24 T rtw_mdelay_os +10019e34 T rtw_udelay_os +10019e44 T ATOMIC_SET +10019e54 T ATOMIC_INC +10019e64 T ATOMIC_INC_RETURN +10019e78 T ATOMIC_DEC_RETURN +10019e8c T ATOMIC_DEC_AND_TEST +10019e9c T rtw_modular64 +10019eb8 T rtw_get_random_bytes +10019ecc T rtw_getFreeHeapSize +10019edc T init_mem_monitor +10019eec T add_mem_usage +10019f20 T rtw_zvmalloc +10019f40 T rtw_malloc +10019f60 T rtw_zmalloc +10019f80 T rtw_netif_queue_stopped +10019f84 T rtw_netif_wake_queue +10019f86 T rtw_netif_start_queue +10019f88 T rtw_netif_stop_queue +10019f8a T flush_signals_thread +10019f8c T rtw_acquire_wakelock +10019f9c T rtw_release_wakelock +10019fac T rtw_create_task +10019fc8 T rtw_delete_task +10019fd8 T rtw_wakeup_task +10019fe8 T rtw_timerCreate +1001a004 T rtw_timerDelete +1001a018 T rtw_timerIsTimerActive +1001a02c T rtw_timerStop +1001a040 T rtw_timerChangePeriod +1001a054 T rtw_thread_enter +1001a064 T rtw_thread_exit +1001a074 T tcm_heap_init +1001a0c4 T tcm_heap_dump +1001a10c T tcm_heap_freemem +1001a18c T tcm_heap_free +1001a19c T tcm_heap_freeSpace +1001a1dc T tcm_heap_allocmem +1001a26c T tcm_heap_malloc +1001a27e T tcm_heap_calloc +1001a298 T flash_init +1001a334 T flash_turnon +1001a34c T flash_erase_sector +1001a378 T flash_stream_read +1001a448 T flash_stream_write +1001a5a0 T i2s_init +1001a678 T i2s_set_dma_buffer +1001a6ca T i2s_tx_irq_handler +1001a6d0 T i2s_set_param +1001a704 T i2s_deinit +1001a708 T i2s_enable +1001a70c T i2s_disable +1001a710 W pinmap_merge +1001a74c W pinmap_find_peripheral +1001a764 W pinmap_peripheral +1001a79c T sleep_ex_selective +1001a7b0 T deepsleep_ex +1001a7d4 T us_ticker_read +1001a800 T En32KCalibration +1001a894 T WDGInitial +1001a920 T WDGStart +1001a938 T WDGRefresh +1001a954 T I2SISRHandle +1001aa10 T RtkI2SDeInit +1001aaf0 T RtkI2SEnable +1001ab2c T RtkI2SDisable +1001ab68 T RtkI2SLoadDefault +1001abcc T HalI2SOpInit +1001ac48 T RtkI2SInit +1001ae0c T HalI2SInit +1001ae4a T HalI2SDisable +1001ae70 T HalI2SEnable +1001ae94 T HalI2SDeInit +1001aeec T HalTimerOpInit_Patch +1001af28 T freertos_ready_to_sleep +1001af38 T freertos_pre_sleep_processing +1001affc T freertos_post_sleep_processing +1001b020 T acquire_wakelock +1001b060 T release_wakelock +1001b0bc T HalI2SInitRtl8195a_Patch +1001b1be T HalI2SSetRateRtl8195a +1001b204 T HalI2SSetWordLenRtl8195a +1001b22c T HalI2SSetChNumRtl8195a +1001b254 T HalI2SSetPageNumRtl8195a +1001b27c T HalI2SSetPageSizeRtl8195a +1001b2a6 T HalI2SSetDMABufRtl8195a +1001b310 T HalI2SGetTxPageRtl8195a +1001b330 T HalI2SPageSendRtl8195a +1001b37c T HalI2SClearAllOwnBitRtl8195a +1001b3b0 T HalI2SDMACtrlRtl8195a +1001b3b4 T HalTimerIrq2To7Handle_Patch +1001b408 T HalTimerIrqRegisterRtl8195a_Patch +1001b484 T HalTimerIrqUnRegisterRtl8195a_Patch +1001b4fc T HalTimerDeInitRtl8195a_Patch +1001b530 T HalTimerReadCountRtl8195a_Patch +1001b548 T HalTimerReLoadRtl8195a_Patch +1001b57c T HalTimerInitRtl8195a_Patch +1001b650 T HalTimerIrqEnRtl8195a +1001b664 T HalTimerEnRtl8195a_Patch +1001b678 T HalTimerDisRtl8195a_Patch +1001b68c t rtw_ht_operation_update +1001b73e t associated_clients_update.part.11 +1001b77a T chk_sta_is_alive +1001b7b8 T add_RATid +1001b8c0 T update_sta_info_apmode +1001b978 T update_beacon +1001bc38 T rtw_check_beacon_data +1001c338 T associated_clients_update +1001c342 T bss_cap_update_on_sta_join +1001c4f2 T bss_cap_update_on_sta_leave +1001c5ee T ap_free_sta +1001c6a0 T expire_timeout_chk +1001c7dc T rtw_sta_flush +1001c860 T free_mlme_ap_info +1001c8ac T sta_info_update +1001c8e8 T ap_sta_info_defer_update +1001c918 T start_ap_mode +1001c958 T init_mlme_ap_info +1001c96e T stop_ap_mode +1001c9bc T rtw_generate_bcn_ie +1001cce0 T _rtw_init_evt_priv +1001ccf2 T _rtw_free_cmd_priv +1001ccfc T _rtw_enqueue_cmd +1001cd28 T _rtw_dequeue_cmd +1001cd5c T _rtw_observequeue_cmd +1001cd70 T rtw_init_cmd_priv +1001cd7a T rtw_init_evt_priv +1001cd7e T rtw_free_evt_priv +1001cd80 T rtw_free_cmd_priv +1001cd84 T rtw_cmd_filter +1001cda2 T rtw_free_cmd_obj +1001cdcc T rtw_enqueue_cmd +1001ce22 T rtw_set_channel_plan_cmd_callback +1001ce3a T rtw_survey_cmd_callback +1001ce56 T rtw_disassoc_cmd_callback +1001ce86 T rtw_joinbss_cmd_callback +1001cea2 T rtw_setstaKey_cmdrsp_callback +1001cebc T rtw_cmd_thread +1001d018 T rtw_joinbss_cmd +1001d2c2 T rtw_disassoc_cmd +1001d310 T rtw_setstakey_cmd +1001d400 T rtw_clearstakey_cmd +1001d4a0 T rtw_dynamic_chk_wk_cmd +1001d4f2 T rtw_set_chplan_cmd +1001d572 T dynamic_chk_wk_hdl +1001d63a T lps_ctrl_wk_hdl +1001d69e T rtw_lps_ctrl_wk_cmd +1001d708 T rtw_sitesurvey_cmd +1001d7d0 T rpt_timer_setting_wk_hdl +1001d7e4 T rtw_ps_cmd +1001d840 T rtw_chk_hi_queue_cmd +1001d894 T rtw_drvextra_cmd_hdl +1001d970 t rtw_free_mlme_ie_data +1001d988 T rtw_init_mlme_timer +1001d9e4 T rtw_del_mlme_timer +1001da04 T reconnect_timer_hdl +1001daa4 T _rtw_init_mlme_priv +1001db26 T rtw_mfree_mlme_priv_lock +1001db42 T rtw_free_mlme_priv_ie_data +1001db7a T _rtw_free_mlme_priv +1001dba2 T _rtw_alloc_network +1001dbf2 T _rtw_free_network +1001dc52 T _rtw_free_network_nolock +1001dc78 T _rtw_find_network +1001dcb4 T _rtw_free_network_queue +1001dcfc T rtw_if_up +1001dd1c T rtw_get_capability_from_ie +1001dd20 T rtw_get_capability +1001dd3a T rtw_get_beacon_interval_from_ie +1001dd3e T rtw_init_mlme_priv +1001dd56 T rtw_free_mlme_priv +1001dd5a T rtw_free_network_queue +1001dd5e T rtw_is_same_ibss +1001dd74 T is_same_network +1001ddd8 T update_network +1001de72 T rtw_update_scanned_network +1001df84 T rtw_add_network +1001dfc2 T rtw_survey_event_callback +1001e06e T rtw_dummy_event_callback +1001e070 T rtw_free_assoc_resources +1001e13a T rtw_indicate_connect +1001e14a T rtw_indicate_disconnect +1001e16c T rtw_indicate_scan_done +1001e170 T rtw_joinbss_event_callback +1001e18e T search_max_mac_id +1001e1d6 T rtw_stassoc_hw_rpt +1001e20e T rtw_stassoc_event_callback +1001e23c T rtw_stadel_event_callback +1001e2e2 T _rtw_join_timeout_handler +1001e36c T rtw_join_timeout_handler +1001e3c4 T rtw_scan_timeout_handler +1001e3f4 T _rtw_scan_timeout_handler +1001e3f8 T rtw_dynamic_check_timer_handlder +1001e450 T _dynamic_check_timer_handlder +1001e494 T rtw_select_and_join_from_scanned_queue +1001e568 T rtw_surveydone_event_callback +1001e680 T rtw_set_auth +1001e6d0 T rtw_set_key +1001e792 T rtw_restruct_wmm_ie +1001e7f8 T rtw_restruct_sec_ie +1001e864 T rtw_joinbss_reset +1001e874 T rtw_restructure_ht_ie +1001e954 T rtw_update_ht_cap +1001e9de T rtw_joinbss_event_prehandle +1001ec0a T rtw_linked_check +1001ec26 T rtw_buddy_adapter_up +1001ec5e T check_buddy_fwstate +1001ec7c t get_da +1001ec9c t get_sa +1001ecc6 T OnAction +1001ecd8 T DoReserved +1001ecdc t _mgt_dispatcher.isra.2 +1001ed28 T rtw_is_channel_set_contains_channel +1001ed4a T init_hw_mlme_ext +1001ed60 T init_channel_set +1001edf8 T free_mlme_ext_priv +1001ee20 T mgt_dispatcher +1001eea8 T alloc_mgtxmitframe +1001eee0 T update_mgnt_tx_rate +1001eee6 T update_mgntframe_attrib +1001ef42 T rtw_build_mgnt_frame +1001ef98 T dump_mgntframe +1001efb2 T rtw_send_mgnt +1001efd0 t issue_action_BSSCoexistPacket +1001f1dc T update_hidden_ssid +1001f230 T issue_beacon +1001f448 T issue_probersp +1001f6d8 T OnProbeReq +1001f7a0 T issue_probereq +1001f958 T issue_auth +1001fbc0 T OnAuth +1001fe64 T issue_asocrsp +100200d8 T issue_assocreq +10020414 T issue_nulldata +100204fe T issue_qos_nulldata +10020630 T issue_deauth +10020718 T issue_action_BA +10020994 T OnAction_back +10020a62 T collect_bss_info +10020c94 T start_clnt_auth +10020d24 T start_clnt_assoc +10020d58 T OnAuthClient +10020e38 T report_scan_result_one +10020ff8 T add_site_survey +1002117e T report_survey_event +100213bc T OnProbeRsp +100213f0 T report_surveydone_event +10021454 T report_join_res +100214c4 T OnAssocRsp +10021610 T report_del_sta_event +100216a2 T receive_disconnect +100216f8 T OnBeacon +10021880 T OnDeAuth +100219d8 T OnDisassoc +10021b48 T report_add_sta_event +10021bbc T OnAssocReq +100221ac T rtw_port_switch_chk +10022230 T update_sta_info +100222b0 T mlmeext_sta_del_event_callback +10022330 T _linked_info_dump +10022392 T _linked_rx_signal_strehgth_display +100223cc T linked_status_chk +10022640 T survey_timer_hdl +10022720 T _survey_timer_hdl +10022724 T link_timer_hdl +100227a2 T _link_timer_hdl +100227a6 T addba_timer_hdl +100227c6 T NULL_hdl +100227ca T setopmode_hdl +10022810 T disconnect_hdl +100228bc T setauth_hdl +100228cc T setkey_hdl +10022924 T set_stakey_hdl +10022a28 T set_tx_beacon_cmd +10022a9c T mlme_evt_hdl +10022ae8 T tx_beacon_hdl +10022ba2 T check_buddy_mlmeinfo_state +10022bbc T site_survey +10022d8c T sitesurvey_cmd_hdl +10022e9a T concurrent_chk_start_clnt_join +10022f30 T start_clnt_join +10023004 T join_cmd_hdl +10023128 T concurrent_chk_joinbss_done +100232f0 T mlmeext_joinbss_event_callback +1002342c T set_chplan_hdl +10023448 T init_mlme_ext_timer +100234a4 T init_mlme_ext_priv +100235e0 t get_hdr_bssid +10023608 t filter_packet +10023690 t promisc_get_encrypt +100236e2 t promisc_info_get +10023786 t promisc_set_enable +10023822 T _promisc_deinit +10023874 T _promisc_recv_func +10023dc0 T _promisc_set +10023e50 T _is_promisc_enabled +10023e68 t SetEAPOL_KEYIV +10023f06 t ToDrv_SetPTK +10023fae t Message_ReplayCounter_OC2LI.isra.2 +10023fdc t Message_SmallerEqualReplayCounter.isra.4 +1002400e t Message_setReplayCounter.isra.5 +1002402c t INCLargeInteger +1002404c t INCOctet16_INTEGER +10024094 t INCOctet32_INTEGER +100240f4 t ToDrv_DisconnectSTA +100241b8 t CheckMIC.constprop.14 +10024238 t CalcMIC.constprop.15 +10024298 T DecWPA2KeyData +1002434c T DecGTK +10024408 T ToDrv_SetGTK +10024498 T init_wpa_sta_info +10024584 T SendEAPOL +10024c3c T ClientSendEAPOL +10025124 t ResendTimeout +100251ac T EAPOLKeyRecvd +10025324 T ClientEAPOLKeyRecvd +100256e4 T psk_derive +10025798 T psk_init +10025888 T psk_strip_rsn_pairwise +10025908 T psk_strip_wpa_pairwise +10025988 T tkip_send_mic_failure_report +10025afc T pwr_state_check_handler +10025b00 T ips_enter +10025ba8 T ips_leave +10025cc0 T rtw_pwr_unassociated_idle +10025d0a T rtw_ps_processor +10025d62 T PS_RDY_CHECK +10025dca T rtw_set_ps_mode +10025e38 T LPS_RF_ON_check +10025e8e T LPS_Enter +10025efc T LPS_Leave +10025f38 T LeaveAllPowerSaveMode +10025f48 T rtw_init_pwrctrl_priv +1002601c T rtw_free_pwrctrl_priv +10026030 T _rtw_pwr_wakeup +1002610c T rtw_pm_set_lps +10026154 T rtw_pm_set_ips +10026198 T rtw_pm_set_tdma_param +100261b4 T rtw_pm_set_lps_dtim +100261c0 T rtw_pm_get_lps_dtim +100261cc t recvframe_pull +100261ee t recvframe_pull_tail +10026210 T rtw_signal_stat_timer_hdl +100262ae T _rtw_init_sta_recv_priv +100262cc T _rtw_init_recv_priv +10026374 T rtw_mfree_recv_priv_lock +100263a8 T _rtw_alloc_recvframe +100263da T rtw_alloc_recvframe +10026400 T rtw_free_recvframe +1002649c T _rtw_enqueue_recvframe +100264c8 T rtw_enqueue_recvframe +100264f2 T rtw_free_recvframe_queue +1002652a T rtw_free_uc_swdec_pending_queue +10026552 T _rtw_free_recv_priv +10026582 T rtw_free_buf_pending_queue +10026586 T recvframe_chkmic +10026684 T decryptor +10026720 T portctrl +10026796 T recv_decache +100267c4 T process_pwrbit_data +10026804 T process_wmmps_data +1002688c T count_rx_stats +10026900 T sta2sta_data_frame +10026a3c T ap2sta_data_frame +10026b68 T sta2ap_data_frame +10026bf0 T validate_recv_ctrl_frame +10026d8a T validate_recv_data_frame +10026fe4 T wlanhdr_to_ethhdr +10027120 T recvframe_defrag +100271ca T recvframe_chk_defrag +10027280 T validate_recv_mgnt_frame +100272bc T validate_recv_frame +10027384 T recv_indicatepkt_reorder +100273a6 T process_recv_indicatepkts +100273fe T recv_func_prehandle +10027426 T recv_func_posthandle +1002748a T recv_func +10027514 T rtw_recv_entry +10027544 T rtw_recv_tasklet +1002759c T rtw_wep_encrypt +100275e2 T rtw_wep_decrypt +10027628 T rtw_tkip_encrypt +10027694 T rtw_tkip_decrypt +10027700 T rtw_aes_encrypt +1002776c T rtw_aes_decrypt +100277d0 T rtw_init_sec_priv +10027842 T rtw_free_sec_priv +10027862 t wifi_mac_hash +1002788c T _addba_timer_hdl +10027890 T _rtw_init_stainfo +1002790a T _rtw_init_sta_priv +100279f2 T _rtw_free_sta_xmit_priv_lock +10027a1e T rtw_mfree_stainfo +10027a4a T rtw_mfree_sta_priv_lock +10027a80 T _rtw_free_sta_priv +10027aa0 T init_addba_retry_timer +10027ac8 T rtw_alloc_stainfo +10027b92 T rtw_free_stainfo +10027d34 T rtw_get_stainfo +10027db0 T rtw_init_bcmc_stainfo +10027de0 T rtw_get_bcmc_stainfo +10027e04 T rtw_free_all_stainfo +10027e5e T cckrates_included +10027e86 T cckratesonly_included +10027eae T networktype_to_raid_ex +10027f0c T judge_network_type +10027f5c T ratetbl_val_2wifirate +10027f70 T is_basicrate +10027f9c T ratetbl2rateset +10027fe0 T get_rate_set +1002800a T UpdateBrateTbl +1002803c T UpdateBrateTblForSoftAP +10028070 T Save_DM_Func_Flag +10028086 T Restore_DM_Func_Flag +1002809c T Switch_DM_Func +100280b8 T Set_MSR +100280dc T set_opmode +10028120 T SelectChannel +10028154 T SetBWMode +10028190 T set_channel_bwmode +100281e6 T get_my_bssid +100281ea T get_beacon_interval +10028208 T is_client_associated_to_ap +10028220 T is_client_associated_to_ibss +1002823c T is_IBSS_empty +1002825e T decide_wait_for_beacon_timeout +1002827a T invalidate_cam_all +10028282 T write_cam +100282f8 T clear_cam_entry +10028326 T flush_all_cam_entry +10028384 T WMM_param_handler +100283aa T WMMOnAssocRsp +10028478 T HT_caps_handler +10028518 T HT_info_handler +1002853c T HTOnAssocRsp +10028574 T ERP_IE_handler +10028590 T VCS_update +100285e2 T rtw_check_bcn_info +100287f2 T update_beacon_info +10028848 T is_ap_in_tkip +100288c0 T wifirate2_ratetbl_inx +1002892c T update_basic_rate +1002895a T update_supported_rate +10028984 T update_MCS_rate +10028990 T support_short_GI +100289be T get_highest_rate_idx +100289d8 T Update_RA_Entry +100289e0 T set_sta_rate +100289e8 T update_tx_basic_rate +10028a40 T check_assoc_AP +10028b34 T update_IOT_info +10028b92 T update_capinfo +10028c10 T update_wireless_mode +10028cb0 T update_bmc_sta_support_rate +10028cd8 T update_TSF +10028cea T correct_TSF +10028cf2 t _init_txservq +10028d08 t set_qos +10028d58 T _rtw_init_sta_xmit_priv +10028d9e T rtw_mfree_xmit_priv_lock +10028dea T qos_acm +10028e24 T xmitframe_addmic +10028f82 T xmitframe_swencrypt +10028fae T rtw_make_wlanhdr +1002918e T rtw_txframes_pending +100291ca T rtw_txframes_sta_ac_pending +10029200 T rtw_txframes_update_attrib_vcs_info +100292a0 T rtw_put_snap +100292e4 T rtw_update_protection +1002932a T rtw_count_tx_stats +1002937a T rtw_free_xmitbuf_ext +100293bc T rtw_alloc_xmitframe +10029414 T rtw_free_xmitframe +10029466 T rtw_free_xmitframe_queue +100294a4 T rtw_get_sta_pending +100294e4 T rtw_xmit_classifier +1002954a T rtw_xmitframe_enqueue +10029558 T rtw_alloc_hwxmits +100295b2 T rtw_free_hwxmits +100295c8 T _rtw_free_xmit_priv +10029694 T rtw_init_hwxmits +100296ac T _rtw_init_xmit_priv +10029864 T rtw_get_ff_hwaddr +10029878 T xmitframe_enqueue_for_sleeping_sta +10029a38 t dequeue_xmitframes_to_sleeping_queue +10029a8e T stop_sta_xmit +10029b76 T wakeup_sta_to_xmit +10029d8c T xmit_delivery_enabled_frames +10029ea8 T rtw_xmit_tasklet +10029f00 T rtw_xmit_mgnt +10029f04 T rtw_xmit +1002a22e T rtw_sctx_done_err +1002a23a T rtw_alloc_xmitbuf +1002a294 T rtw_free_xmitbuf +1002a306 T rtw_alloc_xmitbuf_ext +1002a38c T rtw_sctx_done +1002a392 t rtl8195a_free_rx_ring +1002a3a0 t bus_write32 +1002a3fc t bus_write16 +1002a458 t bus_write8 +1002a4b4 t bus_read32 +1002a50e t bus_read16 +1002a56a t bus_read8 +1002a5c6 t rtl8195a_free_tx_ring +1002a654 T rtl8195a_init_desc_ring +1002a794 T rtl8195a_free_desc_ring +1002a7b0 T rtl8195a_reset_desc_ring +1002a846 T InitLxDmaRtl8195a +1002a9a8 T rtl8195a_check_txdesc_closed +1002aa20 t rtl8195a_tx_isr +1002ab04 T InterruptRecognized8195a +1002ab94 T InitInterrupt8195a +1002abb4 T EnableDMA8195a +1002abdc T EnableInterrupt8195a +1002ac1c T DisableDMA8195a +1002ac28 T DisableInterrupt8195a +1002ac40 T UpdateInterruptMask8195a +1002aca2 T CheckRxTgRtl8195a +1002acdc T rtl8192ee_check_rxdesc_remain +1002ad0c T rtl8195a_recv_tasklet +1002b020 T rtl8195a_tx_int_handler +1002b04c T InterruptHandle8195a +1002b2c0 T rtl8195a_xmit_tasklet +1002b2e8 T lxbus_set_intf_ops +1002b328 t GetTxBufDesc +1002b372 t UpdateFirstTxbdtoXmitBuf.isra.3 +1002b3a4 t check_nic_enough_desc.isra.4 +1002b3f4 T rtl8195ab_init_xmit_priv +1002b402 T rtl8195ab_free_xmit_priv +1002b40a T GetDmaTxbdIdx +1002b426 T rtl8195a_enqueue_xmitbuf +1002b44a T rtl8195a_dequeue_xmitbuf +1002b46e T SetTxbdForLxDMARtl8195ab +1002b4ee T UpdateTxbdHostIndex +1002b52c T rtw_dump_xframe +1002b6fe T check_tx_desc_resource +1002b738 T rtw_dequeue_xframe +1002b7cc T rtw_xmitframe_coalesce +1002ba80 T rtl8195ab_xmitframe_resume +1002bb76 T rtl8195ab_mgnt_xmit +1002bbb2 T rtl8195ab_hal_xmit +1002bcc0 t Hal_GetEfuseDefinition +1002bcf0 t ResumeTxBeacon +1002bd34 T UpdateHalRAMask8195A +1002becc T HalLittleWifiMCUThreadRtl8195a +1002bf20 T HalCheckInReqStateThreadRtl8195a +1002bf6c T HalTDMAChangeStateThreadRtl8195a +1002bfb8 t rtl8195a_read_chip_version +1002c02c t Hal_EfuseWordEnableDataWrite +1002c270 t Hal_EfusePowerSwitch +1002c284 t rtl8195a_free_hal_data +1002c29e t StopTxBeacon +1002c2e8 T SetHalODMVar8195A +1002c3a0 T rtl8195a_start_thread +1002c408 T rtl8195a_stop_thread +1002c42c t Hal_ReadEFuse +1002c59c T GetHalODMVar8195A +1002c5b0 t rtw_flash_map_update.part.12 +1002c650 t rtw_flash_map_erase +1002c694 t Hal_EfusePgPacketWrite +1002c910 t Hal_EfuseGetCurrentSize +1002c9f0 t rtw_flash_map_write +1002cbbe T rtl8195a_InitBeaconParameters +1002cc2e T _InitBurstPktLen_8195AB +1002cc38 T rtl8195a_set_hal_ops +1002cd18 T rtl8195a_init_default_value +1002cd1a T rtl8195a_InitLLTTable +1002cd64 T Hal_GetChnlGroup8195A +1002cda0 T rtw_config_map_read +1002ce8c T rtw_config_map_write +1002cf38 T Hal_InitPGData +1002cf96 T Hal_EfuseParseIDCode +1002cfae T Hal_ReadPowerValueFromPROM_8195A +1002d04c T Hal_EfuseParseTxPowerInfo_8195A +1002d0e4 T Hal_EfuseParseEEPROMVer_8195A +1002d0fa T Hal_EfuseParsePackageType_8195A +1002d164 T Hal_EfuseParseChnlPlan_8195A +1002d194 T Hal_EfuseParseCustomerID_8195A +1002d1aa T Hal_EfuseParseXtal_8195A +1002d1c2 T Hal_EfuseParseThermalMeter_8195A +1002d1ea T Hal_ReadRFGainOffset +1002d23a T BWMapping_8195A +1002d25a T SCMapping_8195A +1002d282 T rtl8195a_update_txdesc +1002d552 T rtl8195a_fill_fake_txdesc +1002d610 T SetHwReg8195A +1002e2d0 T GetHwReg8195A +1002e364 T SetHalDefVar8195A +1002e444 T GetHalDefVar8195A +1002e468 T PHY_QueryBBReg_8195A_Safe +1002e494 T PHY_SetBBReg_8195A_Safe +1002e4c0 t phy_RFSerialRead_8195A +1002e574 T PHY_QueryRFReg_8195A +1002e58c T PHY_SetRFReg_8195A +1002e5e4 T PHY_MACConfig8195A +1002e5fe T PHY_BBConfig8195A +1002e70e T PHY_RFConfig8195A +1002e712 T PHY_SetTxPowerIndex_8195A +1002e81c T phy_TxPwrAdjInPercentage +1002e85c T PHY_GetTxPowerIndex_8195A +1002e94c T PHY_SetTxPowerLevel8195A +1002e952 T phy_SpurCalibration_8195A +1002ec0a T phy_SetRegBW_8195A +1002ec48 T phy_PostSetBwMode8195A +1002eda4 T phy_SwChnl8195A +1002ee4c T phy_SwChnlAndSetBwMode8195A +1002ee9c T PHY_HandleSwChnlAndSetBW8195A +1002ef4c T PHY_SetBWMode8195A +1002ef6e T PHY_SwChnl8195A +1002ef88 T PHY_SetSwChnlBWMode8195A +1002efa6 t HalTimerEnable +1002efb8 T InitTDMATimer +1002efe0 T ChangeStateByTDMA +1002eff0 T GetMinRateInRRSR +1002f024 T CheckInReqState +1002f034 T InitCheckStateTimer +1002f064 T InitGTimer1ms +1002f0b0 T DeInitGTimer1ms +1002f0f8 T ChangeTransmiteRate +1002f134 T PowerBitSetting +1002f1b0 T ChkandChangePS +1002f214 T IssueRsvdPagePacketSetting +1002f288 T IssuePSPoll +1002f2b4 T WaitTxStateMachineOk +1002f308 T IssueNullData +1002f398 T PsCloseRF +1002f3cc T PsOpenRF +1002f3fc T ChkTxQueueIsEmpty +1002f414 T InitPS +1002f484 T ConfigListenBeaconPeriod +1002f4a8 T PS_S2_Condition_Match +1002f4dc T PS_S4_Condition_Match +1002f558 T PS_32K_Condition_Match +1002f594 T PS_S2ToS3ToS0State +1002f5fc T PS_S2ToS0State +1002f618 T PS_S3ToS2orS0State +1002f648 T PS_S0ToS1ToS2State +1002f6a4 T PS_S1ToS0orS2State +1002f6d4 T PS_S2ToS4State +1002f720 T PS_S0ToS6State +1002f740 T PS_S6ToS0State +1002f758 T CheckTSFIsStable +1002f7a8 T WaitHWStateReady +1002f7b8 T SysClkDown +1002f828 T SysClkUp +1002f874 T ResetPSParm +1002f8e8 T PS_S4ToS2State +1002f90c T SleepTo32K +1002f96c T Change_PS_State +1002fb18 T Legacy_PS_Setting +1002fb8c T PSModeSetting +1002fc30 T ChangePSStateByRPWM +1002fc74 T ChangeTDMAState +1002fd94 T TDMAChangeStateTask +1002fdbe T EnterPS +1002fde0 T SetSmartPSTimer +1002fe1c T GTimer7Handle +1002fe78 T SmartPS2InitTimerAndToGetRxPkt +1002feb4 T PS_OnBeacon +1002ff64 T PSBcnEarlyProcess +10030020 T PSMtiBcnEarlyProcess +100300cc T PSRxBcnProcess +1003021c T TxPktInPSOn +1003025a T PsBcnToProcess +10030314 T GTimer6Handle +10030360 T RPWMProcess +1003039c T PSSetMode +10030414 T SpeRPT +10030534 T ISR_BcnEarly +100305a0 T ISR_MtiBcnEarly +100305d4 T ISR_RxBcn +100305f0 T ISR_RxBCMD1 +10030620 T ISR_RxBCMD0 +10030674 T ISR_RxUCMD1 +100306b2 T ISR_RxUCMD0 +100306ee T ISR_TxPktIn +10030700 T ISR_TXCCX +10030704 T H2CHDL_SetPwrMode +1003082c T CheckInReqStateTask +10030872 T HalGetNullTxRpt +10030890 T ISR_TBTT +10030908 T H2CHDL_BcnIgnoreEDCCA +10030918 T PMUInitial +10030968 T PMUTask +10030a74 T PHY_RF6052SetBandwidth8195A +10030ab8 T PHY_RF6052_Config8195A +10030b70 t process_rssi +10030ba6 T rtl8195a_query_rx_desc_status +10030c56 T rtl8195a_query_rx_phy_status +10030dae T hal_com_get_channel_plan +10030de2 T HAL_IsLegalChannel +10030e00 T MRateToHwRate +10030e14 T HwRateToMRate +10030e28 T HalSetBrateCfg +10030ed4 T Hal_MappingOutPipe +10030ef0 T hal_init_macaddr +10030f1c T hw_var_port_switch +100311a4 T SetHwReg +100311ae T GetHwReg +100311b0 T switch_power_saving_mode +100311f4 T rtw_bb_rf_gain_offset +1003123c T PHY_GetRateValuesOfTxPowerByRate +100313d4 T PHY_StoreTxPowerByRateNew +10031470 T PHY_InitTxPowerByRate +10031488 T PHY_StoreTxPowerByRate +100314a0 T PHY_GetTxPowerIndexBase +10031540 T PHY_GetTxPowerTrackingOffset +1003156c T PHY_GetRateIndexOfTxPowerByRate +10031580 T PHY_GetTxPowerByRate +100315e0 T phy_StoreTxPowerByRateBase +1003162c T PHY_SetTxPowerByRate +10031668 T phy_ConvertTxPowerByRateInDbmToRelativeValues +10031768 T PHY_TxPowerByRateConfiguration +1003177a T PHY_SetTxPowerIndexByRateArray +100317b8 T PHY_SetTxPowerIndexByRateSection +1003181c T PHY_SetTxPowerLevelByPath +10031852 T phy_GetWorldWideLimit +1003187e T PHY_GetTxPowerLimit +100319a8 T PHY_ConvertTxPowerLimitToPowerIndex +10031af8 T PHY_InitTxPowerLimit +10031b40 T PHY_SetTxPowerLimit +10031bbc T PHY_GetTxPowerIndex +10031bcc T rtw_hal_chip_configure +10031be2 T rtw_hal_read_chip_info +10031bf8 T rtw_hal_read_chip_version +10031c0e T rtw_hal_def_value_init +10031c24 T rtw_hal_free_data +10031c3a T rtw_hal_dm_init +10031c50 T rtw_hal_dm_deinit +10031c66 T rtw_hal_init +10031c90 T rtw_hal_deinit +10031caa T rtw_hal_set_hwreg +10031cb8 T rtw_hal_get_hwreg +10031cc6 T rtw_hal_set_def_var +10031cd8 T rtw_hal_get_def_var +10031cea T rtw_hal_set_odm_var +10031cf8 T rtw_hal_get_odm_var +10031d06 T rtw_hal_enable_interrupt +10031d28 T rtw_hal_disable_interrupt +10031d4a T rtw_hal_inirp_init +10031d5c T rtw_hal_inirp_deinit +10031d6e T rtw_hal_irp_reset +10031d7c T rtw_hal_xmit +10031d8e T rtw_hal_mgnt_xmit +10031da0 T rtw_hal_init_xmit_priv +10031db2 T rtw_hal_free_xmit_priv +10031dc0 T rtw_hal_update_ra_mask +10031dee T rtw_hal_add_ra_tid +10031dfc T rtw_hal_clone_data +10031e0a T rtw_hal_start_thread +10031e18 T rtw_hal_stop_thread +10031e26 T rtw_hal_read_bbreg +10031e5a T rtw_hal_write_bbreg +10031e86 T rtw_hal_read_rfreg +10031e98 T rtw_hal_write_rfreg +10031eac T rtw_hal_interrupt_handler +10031ebe T rtw_hal_set_bwmode +10031ecc T rtw_hal_set_chan +10031eda T rtw_hal_set_chnl_bw +10031ef0 T rtw_hal_dm_watchdog +10031f06 T rtw_hal_macid_sleep +10031f26 T rtw_hal_macid_wakeup +10031f46 T decide_chip_type_by_device_id +10031f4c t rtw_net_get_stats +10031f9c t netdev_if2_close +10031fbc t netdev_close +10032018 t rtw_if1_deinit +100320b2 T rtw_os_indicate_connect +100320b6 T rtw_os_indicate_scan_done +100320ba T rtw_reset_securitypriv +100321ae T rtw_os_indicate_disconnect +100321f8 T rtw_init_netdev +10032348 T rtw_drv_if2_init +10032550 T rtw_drv_if2_stop +100325a6 T rtw_drv_if2_free +100325f4 T _netdev_open +10032710 T _netdev_if2_open +100327cc T netdev_if2_open +100327f4 T netdev_open +1003281c T rtw_drv_probe +1003299c T rtw_dev_remove +100329e0 T rtw_drv_entry +10032a0c T rtw_drv_halt +10032a3c t rtw_wx_set_autoreconnect +10032a6a t rtw_wx_get_autoreconnect +10032a78 t rtw_forwarding_set +10032a9a t rtw_set_ch_deauth +10032abc t get_priv_size +10032ad0 t rtw_wx_del_custome_ie +10032b1c t rtw_wx_set_pscan_freq +10032b9e t rtw_wx_update_custome_ie +10032c10 t rtw_set_tos_value +10032c30 t rtw_get_tx_power +10032d74 t rtw_wx_set_custome_ie +10032e20 t rtw_pm_get +10032e64 t rtw_pm_set +10032f18 t rtw_wx_read32 +10032fc4 t rtw_wx_write32 +10033028 t rtw_wx_set_freq.isra.10 +100330d0 T rtw_ex_set +10033190 T wireless_send_event +1003319a T indicate_wx_custom_event +100331f6 T indicate_wx_scan_result_present +1003321e T indicate_wx_scan_complete_event +10033248 T rtw_indicate_sta_assoc +10033298 T rtw_indicate_sta_disassoc +100332f0 T rtw_indicate_wx_assoc_event +10033322 T rtw_indicate_wx_disassoc_event +10033352 T rtw_set_wpa_ie +10033468 T strtopsk +100334d4 T rtw_wx_get_passphrase +10033520 T rtw_wx_set_ap_essid +10033610 T mac_reg_dump +100336bc T bb_reg_dump +10033718 T rf_reg_dump +10033790 t rtw_dbg_port +10033df8 T rtw_ex_get_drv_ability +10033eb8 T rtw_ex_get +10034150 T rtw_ioctl +100350dc T rtw_os_recv_resource_init +100350e0 T rtw_os_recv_resource_alloc +100350ea T rtw_os_recv_resource_free +100350ec T rtw_tkip_countermeasure +1003518c T rtw_handle_tkip_mic_err +10035234 T rtw_recv_indicatepkt +10035484 T skb_fail_inc +100354a0 T skb_fail_get_and_rst +100354bc T init_skb_pool +10035514 T init_skb_data_pool +1003556c T alloc_skb +1003566c T kfree_skb +100356d4 T kfree_skb_chk_key +100356d8 T skb_put +1003570c T skb_reserve +1003571a T dev_alloc_skb +10035736 T skb_end_pointer +1003573a T skb_set_tail_pointer +10035742 T skb_pull +1003575a T skb_copy +10035782 T rtw_remainder_len +1003578e T _rtw_open_pktfile +100357a0 T _rtw_pktfile_read +100357ce T rtw_set_tx_chksum_offload +100357d0 T rtw_os_xmit_resource_alloc +100357da T rtw_os_xmit_resource_free +100357dc T rtw_os_pkt_complete +100357e4 T rtw_os_xmit_complete +100357f6 T rtw_os_xmit_schedule +10035832 T rtw_xmit_entry +1003587e T rtw_alloc_etherdev_with_old_priv +10035894 T rtw_alloc_etherdev +100358c0 T rtw_free_netdev +100358e0 T timer_wrapper +10035934 T alloc_etherdev +10035990 T free_netdev +100359aa T dev_alloc_name +100359b4 T init_timer_wrapper +100359d4 T deinit_timer_wrapper +10035a20 T init_timer +10035ad8 T mod_timer +10035bb8 T cancel_timer_ex +10035c00 T del_timer_sync +10035c64 T rtw_init_timer +10035c6c T rtw_set_timer +10035c70 T rtw_cancel_timer +10035c7a T rtw_del_timer +10035c80 T rltk_get_idx_bydev +10035c90 T rltk_wlan_init +10035d18 T rltk_wlan_start +10035d4c T rltk_wlan_check_isup +10035d5c T rltk_wlan_tx_inc +10035d70 T rltk_wlan_tx_dec +10035d84 T rltk_wlan_get_recv_skb +10035d94 T rltk_wlan_alloc_skb +10035dd4 T rltk_wlan_send_skb +10035e08 T rltk_netif_rx +10035eb4 T rltk_wlan_control +10035f48 T rltk_wlan_running +10035f60 T rltk_wlan_handshake_done +10035f94 T rltk_wlan_is_connected_to_ap +10035fd8 T Efuse_PowerSwitch +10035fe4 T Efuse_GetCurrentSize +10035ff0 T Efuse_CalculateWordCnts +10036014 T EFUSE_GetEfuseDefinition +10036028 T efuse_OneByteRead +1003605c T efuse_OneByteWrite +10036090 T Efuse_PgPacketWrite +100360a4 T efuse_WordEnableDataRead +100360d6 T Efuse_WordEnableDataWrite +100360ea T efuse_GetCurrentSize +10036112 T rtw_efuse_map_read +10036174 T rtw_efuse_map_write +100362f4 T rtw_macaddr_cfg +100363b8 T rtw_get_cipher_info +10036432 T rtw_get_bcn_info +10036502 T rtw_init_default_value +10036570 T rtw_cancel_all_timer +100365da T rtw_free_drv_sw +10036650 T rtw_reset_drv_sw +100366ac T rtw_init_drv_sw +10036734 T rtw_start_drv_threads +100367f0 T rtw_stop_drv_threads +10036824 T rtw_read8 +10036832 T rtw_read16 +10036840 T rtw_read32 +1003684e T rtw_write8 +1003685c T rtw_write16 +1003686a T rtw_write32 +10036878 T rtw_do_join +1003691c T rtw_set_802_11_bssid +10036aa0 T rtw_set_802_11_ssid +10036ba8 T rtw_set_802_11_infrastructure_mode +10036c4a T rtw_set_802_11_bssid_list_scan +10036c9a T rtw_set_802_11_authentication_mode +10036cbc T rtw_set_802_11_add_wep +10036d1c T ODM_InitRAInfo +10036dbc T InitialRateUpdate +10036ebc T RateUp_search_RateMask +10036eee T RateDown_search_RateMask +10036f40 T StartRateByRSSI +10036f6a T RateUpRAM8195A +10036ffe T RateDownTrying +1003703c T TryDone +100370d4 T RateDownStepRAM8195A +10037174 T RateDecisionRAM8195A +10037258 T ArfrRefresh +10037460 T H2CHDL_Set_MACID_Config +10037524 T PHY_DM_RA_SetRSSI_8195A +10037552 t CheckPositive.isra.0 +10037634 T ODM_ReadAndConfig_MP_8195A_AGC_TAB +100376ac T ODM_ReadAndConfig_MP_8195A_PHY_REG +10037724 T ODM_GetVersion_MP_8195A_PHY_REG +10037728 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG +1003775c T odm_ConfigRFReg_8195A +10037794 T odm_ConfigRF_RadioA_8195A +100377a4 T odm_ConfigMAC_8195A +100377a8 T odm_ConfigBB_AGC_8195A +100377b8 T odm_ConfigBB_PHY_REG_PG_8195A +100377e6 T odm_ConfigBB_PHY_8195A +1003782e T odm_ConfigBB_TXPWR_LMT_8195A +10037854 T ODM_CmnInfoInit +10037948 T ODM_CmnInfoHook +100379ec T ODM_CmnInfoPtrArrayHook +100379fc T ODM_CmnInfoUpdate +10037acc T odm_CommonInfoSelfInit +10037b40 T ODM_DMInit +10037b8e T odm_CommonInfoSelfUpdate +10037be0 T ODM_DMWatchdog +10037c4c T PhyDM_Get_Structure +10037c70 T Phydm_CheckAdaptivity +10037c9e T Phydm_NHMCounterStatisticsInit +10037d14 T Phydm_SetEDCCAThreshold +10037d4c T Phydm_MACEDCCAState +10037d8a T Phydm_AdaptivityInit +10037e68 T Phydm_Adaptivity +10037f88 T ODM_CfoTrackingInit +10037fb2 T ODM_CfoTracking +10037fd2 T ODM_ParsingCFO +10038004 T ODM_InitDebugSetting +10038018 T ODM_Write_DIG +100380b8 T odm_ForbiddenIGICheck +1003814a T ODM_Write_CCK_CCA_Thres +10038184 T odm_DIGInit +1003821e T odm_DigAbort +10038240 T odm_DIGbyRSSI_LPS +100382ec T odm_FAThresholdCheck +10038318 T odm_DIG +10038578 T odm_FalseAlarmCounterStatistics +100385a4 T odm_CCKPacketDetectionThresh +100385fc T odm_RxPhyStatus8195A_Parsing +10038700 T odm_Process_RSSIForDM_8195A +10038842 T ODM_PhyStatusQuery_8195A +1003886e T ODM_PhyStatusQuery +10038872 T ODM_ConfigRFWithHeaderFile +10038890 T ODM_ConfigRFWithTxPwrTrackHeaderFile +100388c2 T ODM_ConfigBBWithHeaderFile +100388ea T ODM_ConfigMACWithHeaderFile +100388fc T ODM_Read1Byte +10038902 T ODM_Read4Byte +10038908 T ODM_Write1Byte +1003890e T ODM_Write2Byte +10038914 T ODM_Write4Byte +1003891a T ODM_SetMACReg +10038920 T ODM_SetBBReg +10038926 T ODM_GetBBReg +1003892c T ODM_SetRFReg +10038932 T ODM_GetRFReg +10038938 T ODM_MoveMemory +10038942 T ODM_delay_ms +10038946 T ODM_delay_us +1003894c T getSwingIndex +100389a4 T odm_TXPowerTrackingThermalMeterInit +10038a56 T odm_TXPowerTrackingInit +10038a5a T odm_TXPowerTrackingCheckIOT +10038a8e T ODM_TXPowerTrackingCheck +10038a9c T odm_RSSIMonitorInit +10038aa4 T ODM_RAPostActionOnAssoc +10038aac T odm_RSSIMonitorCheckIOT +10038b80 T odm_RSSIMonitorCheck +10038b94 T odm_RateAdaptiveMaskInit +10038bbc T ODM_RAStateCheck +10038bfe T odm_RefreshRateAdaptiveMaskIOT +10038c4e T odm_RefreshRateAdaptiveMask +10038c64 T ODM_Get_Rate_Bitmap +10038d54 t _ReadEfuseInfo8195a +10038e1c t rtl8195a_interface_configure +10038e50 t rtl8195a_hal_deinit +10038e8c T _InitPowerOn +10038f0c t ReadAdapterInfo8195a +10038f3c T _InitDriverInfoSize +10038f46 T _InitNetworkType +10038f68 T _InitWMACSetting +10038fd8 T _InitAdaptiveCtrl +1003901c T _InitEDCA +10039098 T _InitRateFallback +100390dc T _InitRetryFunction +10039108 T _InitOperationMode +10039150 T _InitInterrupt +10039190 t rtl8195a_hal_init +10039468 T rtl8195ab_set_hal_ops +10039540 T FillH2CCmd8195A +10039560 T CheckFwRsvdPageContent +10039562 T rtl8195a_set_FwRsvdPage_cmd +1003956c T rtl8195a_set_FwMediaStatusRpt_cmd +10039598 T rtl8195a_set_FwMacIdConfig_cmd +10039658 T rtl8195a_set_FwPwrMode_cmd +100396e8 T rtl8195a_download_rsvd_page +100399f0 T rtl8195a_set_FwJoinBssRpt_cmd +100399fa T rtl8195a_Add_RateATid +10039a4c T rtw_rpt_h_addr +10039a98 T rtw_txrpt_read8 +10039ab6 T rtw_txrpt_write8 +10039ada T rtw_ratemask_read8 +10039af8 T rtw_ratemask_write8 +10039b1c T ReadRateMask8 +10039b26 T WriteRateMask8 +10039b2a T ReadTxrpt8 +10039b34 T WriteTxrpt8 +10039b38 T ResetTxrpt +10039b70 T PsuseTxrpt +10039b90 T CheckMaxMacidNum +10039bc8 T GetMediaStatusCommon +10039be2 T GetTxrptStatistic +10039c98 T rtl8195a_InitHalDm +10039dbc T rtl8195a_HalDmWatchDog +10039ea0 T rtl8195a_init_dm_priv +10039f78 T rtl8195a_deinit_dm_priv +10039f7a T MediaConnection +10039f98 T MediaDisconnection +10039fb8 T RATaskEnable +10039fe2 T SetMediaStatus +1003a020 T H2CHDL_JoinInfo +1003a058 T H2CHDL_SetRsvdPage +1003a0f0 T H2CCmdCommon +1003a134 T HalPwrSeqCmdParsing +1003a1f4 T hci_dvobj_init +1003a204 T hci_dvobj_deinit +1003a214 T hci_dvobj_request_irq +1003a224 T hci_dvobj_free_irq +1003a234 T hci_lxbus_dvobj_init +1003a270 T hci_lxbus_dvobj_deinit +1003a2b0 T hci_lxbus_dvobj_request_irq +1003a304 T hci_lxbus_free_irq +1003a35c T hci_lxbus_intf_stop +1003a394 T rtw_interrupt_thread +1003a408 T lextra_bus_dma_Interrupt +1003a450 T init_rom_wlan_ram_map +1003a468 T ODM_ReadAndConfig_MP_8195A_MAC_REG +1003a5c4 t CheckPositive.isra.0 +1003a6a8 T ODM_ReadAndConfig_MP_8195A_RadioA +1003a720 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 +1003a770 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 +1003a7c0 T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 +1003a810 T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT +1003a848 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack +1003a874 T GetDeltaSwingTable_8195A +1003a8a4 T GetDeltaSwingXtalTable_8195A +1003a8b4 T ODM_TxXtalTrackSetXtal_8195A +1003a8d4 T Hal_MPT_CCKTxPowerAdjust +1003a9a4 T ODM_TxPwrTrackSetPwr_8195A +1003aab4 T ConfigureTxpowerTrack_8195A +1003ab00 T phy_PathA_IQK_8195A +1003acb4 T phy_PathA_RxIQK8195A +1003b048 T _PHY_PathAFillIQKMatrix8195A +1003b1de T _PHY_PathBFillIQKMatrix8195A +1003b35a T _PHY_SaveADDARegisters8195A +1003b38e T _PHY_SaveMACRegisters8195A +1003b3bc T _PHY_ReloadADDARegisters8195A +1003b3f0 T _PHY_ReloadMACRegisters8195A +1003b420 T _PHY_PathADDAOn8195A +1003b45c T _PHY_MACSettingCalibration8195A +1003b4a4 T _PHY_PIModeSwitch8195A +1003b4e0 T phy_SimularityCompare_8195A +1003b614 T phy_IQCalibrate_8195A +1003b98c T phy_LCCalibrate_8195A +1003b9fc T PHY_LCCalibrate_8195A +1003ba5c T PHY_IQCalibrate_8195A +1003bd10 T DoIQK_8195A +1003bd2e T ConfigureTxpowerTrack +1003bd40 T ODM_TXPowerTrackingCallback_ThermalMeter +1003c14c T ODM_ResetIQKResult +1003c194 T ODM_GetRightChnlPlaceforIQK +1003c1e8 T malloc +1003c1f8 T memcpy +1003c20e T memset +1003c220 T _free_r +1003c2b8 T _malloc_r +1003c374 T rand +1003c3e8 T _sbrk_r +1003c408 T siscanf +1003c408 T sscanf +1003c45c T __seofread +1003c460 T strlen +1003c470 T __malloc_lock +1003c472 T __malloc_unlock +1003c474 T _sungetc_r +1003c4f0 T __ssrefill_r +1003c52c T __ssvfiscanf_r +1003c52c T __ssvfscanf_r +1003c7d4 T _scanf_chars +1003c8a0 T _scanf_i +1003ca84 T __sccl +1003cae4 T _strtol_r +1003cbf0 T _strtoul_r +1003ccec T __submore +1003cd5e T memchr +1003cd7a T _realloc_r +1003cdc6 T _malloc_usable_size_r +1003cddc T _sbrk +1003cdf8 T __aeabi_llsr +1003cdf8 T __lshrdi3 +1003ce10 T __aeabi_drsub +1003ce18 T __aeabi_dsub +1003ce18 T __subdf3 +1003ce1c T __adddf3 +1003ce1c T __aeabi_dadd +1003d094 T __aeabi_ui2d +1003d094 T __floatunsidf +1003d0b4 T __aeabi_i2d +1003d0b4 T __floatsidf +1003d0d8 T __aeabi_f2d +1003d0d8 T __extendsfdf2 +1003d114 T __aeabi_ul2d +1003d114 T __floatundidf +1003d124 T __aeabi_l2d +1003d124 T __floatdidf +1003d180 T __aeabi_dmul +1003d180 T __muldf3 +1003d3d4 T __aeabi_ddiv +1003d3d4 T __divdf3 +1003d5a4 T __aeabi_d2uiz +1003d5a4 T __fixunsdfsi +1003d5e8 t __HalCpuClkConfig_veneer +1003d5f8 t __HalDelayUs_veneer +1003d608 t __rtw_set_ie_veneer +1003d618 t __ROM_odm_GetDefaultCrytaltalCap_veneer +1003d628 t __rtw_secmicappend_veneer +1003d638 t __ROM_odm_FalseAlarmCounterStatistics_veneer +1003d648 t __CmdDumpWord_veneer +1003d658 t __rom_psk_CalcGTK_veneer +1003d668 t __rtw_secgetmic_veneer +1003d678 t __tkip_80211_decrypt_veneer +1003d688 t __HalI2SRead32_veneer +1003d698 t __rtw_set_fixed_ie_veneer +1003d6a8 t __HalI2SWrite32_veneer +1003d6b8 t __rtw_set_supported_rate_veneer +1003d6c8 t __rtw_parse_wpa2_ie_veneer +1003d6d8 t __rom_psk_PasswordHash_veneer +1003d6e8 t __HalI2SIntrCtrlRtl8195a_veneer +1003d6f8 t __rt_arc4_crypt_veneer +1003d708 t __HalI2SClrAllIntrRtl8195a_veneer +1003d718 t __ROM_odm_SetCrystalCap_veneer +1003d728 t __rtw_seccalctkipmic_veneer +1003d738 t __rtw_get_rateset_len_veneer +1003d748 t __CmdWriteWord_veneer +1003d758 t __Strtoul_veneer +1003d768 t __rtw_get_bit_value_from_ieee_value_veneer +1003d778 t __rtw_parse_wpa_ie_veneer +1003d788 t __ROM_ODM_CfoTrackingReset_veneer +1003d798 t __ROM_odm_EVMdbToPercentage_veneer +1003d7a8 t __tkip_80211_encrypt_veneer +1003d7b8 t __phy_CalculateBitShift_veneer +1003d7c8 t __AES_WRAP_veneer +1003d7d8 t __rom_psk_CalcPTK_veneer +1003d7e8 t __SpicWaitBusyDoneRtl8195A_veneer +1003d7f8 t __ROM_odm_CfoTrackingFlow_veneer +1003d808 t __StrUpr_veneer +1003d818 t __rtw_ieee802_11_parse_elems_veneer +1003d828 t __wep_80211_encrypt_veneer +1003d838 t __wep_80211_decrypt_veneer +1003d848 t __rtw_get_wpa2_ie_veneer +1003d858 t __rtw_check_network_type_veneer +1003d868 t __PHY_SetBBReg_8195A_veneer +1003d878 t __rtw_get_wps_attr_content_veneer +1003d888 t __rt_hmac_sha1_veneer +1003d898 t __key_2char2num_veneer +1003d8a8 t __rt_md5_hmac_veneer +1003d8b8 t __rtw_secmicsetkey_veneer +1003d8c8 t __PHY_QueryBBReg_8195A_veneer +1003d8d8 t __aes_80211_decrypt_veneer +1003d8e8 t __rtw_get_wps_ie_veneer +1003d8f8 t __rt_arc4_init_veneer +1003d908 t __rtw_get_ie_veneer +1003d918 t __aes_80211_encrypt_veneer +1003d928 t __prvStrCmp_veneer +1003d938 t __rtw_get_wpa_ie_veneer +1003d948 t __AES_UnWRAP_veneer +1003d958 t __rtw_get_sec_ie_veneer +1003d968 t __ROM_odm_QueryRxPwrPercentage_veneer +1003de87 d __func__.12213 +1003e438 d __FUNCTION__.14122 +1003e960 d bitrate_table +1003ea8c d samplerate_table +1003ea98 d decoder_table +1003eaa4 d imdct_s +1003eb34 d scale.6899 +1003eb7c d sfb_8000_short +1003eba3 d sfb_32000_short +1003ebcc d is_table +1003ebe8 d rq_table +10046c24 d root_table +10046c40 d sfb_44100_mixed +10046c68 d is_lsf_table +10046ce0 d sflen_table +10046d00 d sfb_16000_mixed +10046d24 d ca +10046d44 d sfb_44100_short +10046d6b d sfb_44100_long +10046d81 d sfb_48000_mixed +10046da7 d sfb_24000_long +10046dbd d sfb_32000_mixed +10046de3 d sfb_16000_short +10046e0a d sfb_8000_long +10046e20 d sfb_22050_mixed +10046e44 d window_l +10046ed4 d sfb_48000_long +10046eec d cs +10046f0c d sfb_24000_mixed +10046f30 d pretab +10046f46 d sfb_48000_short +10046f6d d sfb_22050_short +10046f94 d sfb_8000_mixed +10046fbc d sfbwidth_table +10047028 d sfb_24000_short +1004704f d sfb_32000_long +10047065 d sfb_22050_long +1004707c d window_s +100470ac d nsfb_table +100470f4 d hufftab24 +100476fc d hufftab10 +10047894 d hufftab11 +10047a34 d hufftab12 +10047bb4 d hufftab13 +100481ec d hufftab3 +1004822c d hufftab15 +1004881c d hufftab16 +10048e64 d hufftab6 +10048ed4 d hufftab7 +10048fd4 D mad_huff_pair_table +10049154 d hufftab9 +1004922c d hufftab1 +1004924c d hufftabA +100492bc d hufftab2 +100492fc d hufftabB +1004933c D mad_huff_quad_table +10049344 d hufftab0 +10049348 d hufftab5 +100493b0 d hufftab8 +100494b8 d crc_table +100496b8 d D +10049f38 D mad_timer_zero +1004a271 d __func__.20890 +1004a720 d __func__.20852 +1004a733 d __func__.20833 +1004a993 d __FUNCTION__.8225 +1004a9a0 d err_to_errno_table +1004a9e8 D ip_addr_broadcast +1004a9ec D ip_addr_any +1004aa00 d memp_num +1004aa20 d memp_sizes +1004aa40 D tcp_pcb_lists +1004aa50 D tcp_state_str +1004aa7c D tcp_backoff +1004aaf1 D tcp_persist_backoff +1004aaf8 D ethbroadcast +1004aafe D ethzero +1004abe0 d __FUNCTION__.8700 +1004abef d __FUNCTION__.8712 +1004abfe d dhcp_magic_cookie +1004ac02 d dhcp_option_lease_time_one_day +1004ac2b d dhcp_option_interface_mtu_576 +1004ac6c d __FUNCTION__.4594 +1004ad1a d ucExpectedStackBytes.6559 +1004ad50 D osdep_service +1004ae74 d __FUNCTION__.11772 +1004ae8a d __FUNCTION__.11768 +1004aea0 d __FUNCTION__.11606 +1004af39 d __FUNCTION__.11572 +1004af4d d __FUNCTION__.11623 +1004af60 d __FUNCTION__.11580 +1004af7c d __FUNCTION__.11634 +1004affd d __FUNCTION__.6815 +1004b0f4 d PinMap_I2S_RX +1004b1d4 d PinMap_I2S_TX +1004b234 d I2SDefaultSetting +1004b248 d PinMap_I2S_CLK +1004b2a8 d __FUNCTION__.8781 +1004b2b4 d PinMap_I2S_WS +1004b363 d __FUNCTION__.8597 +1004b370 d __FUNCTION__.8610 +1004b615 d __FUNCTION__.8459 +1004b630 d __FUNCTION__.8466 +1004b72b d __FUNCTION__.8452 +1004b74d d __func__.8808 +1004b76c d __func__.8818 +1004b78a d __func__.8830 +1004b7a4 d __func__.8840 +1004b7c6 d __func__.8835 +1004bb8f d __func__.8603 +1004bba9 d __func__.8686 +1004bbbc d __func__.8825 +1004bbd5 d __func__.8631 +1004bc18 D wlancmds +1004be10 D rtw_cmd_callback +1004c09c d RTW_ChannelPlan2G +1004c114 D WPS_OUI +1004c118 D RSN_TKIP_CIPHER +1004c11c D MCS_rate_1R +1004c12c D P2P_OUI +1004c158 D WMM_INFO_OUI +1004c15e D RTW_WPA_OUI +1004c162 D WMM_PARA_OUI +1004c168 d RTW_ChannelPlanMap +1004c180 D null_addr +1004c186 D WMM_OUI +1004c18c d wlanevents +1004c24c D zero_bssid +1004c289 d __FUNCTION__.17681 +1004c29f D SNAP_ETH_TYPE_APPLETALK_AARP +1004c2a1 d __FUNCTION__.17495 +1004c2b4 D SNAP_ETH_TYPE_IPX +1004c2b6 D rtw_bridge_tunnel_header +1004c2dd D rtw_rfc1042_header +1004c2fb d CSWTCH.36 +1004c307 D ARTHEROS_OUI1 +1004c30a D ARTHEROS_OUI2 +1004c30d D REALTEK_OUI +1004c310 D RALINK_OUI +1004c313 D MARVELL_OUI +1004c316 D CISCO_OUI +1004c319 d rtw_basic_rate_cck +1004c31d D BROADCOM_OUI1 +1004c320 D BROADCOM_OUI2 +1004c323 D REALTEK_96B_IE +1004c329 d rtw_basic_rate_mix +1004c330 d rtw_basic_rate_ofdm +1004c333 D AIRGOCAP_OUI +1004c347 d CSWTCH.66 +1004c360 d CSWTCH.48 +1004c3a2 d CSWTCH.28 +1004c3b4 D efuse_map_mask +1004c3c4 D flash_map_mask +1004c460 d __func__.21107 +1004c7a6 d CSWTCH.15 +1004c82a d CSWTCH.17 +1004c899 d CSWTCH.14 +1004c92e d __FUNCTION__.21257 +1004c940 d rtw_private_args +1004cd4e d __FUNCTION__.21057 +1004cd61 d __FUNCTION__.21294 +1004cd72 d __FUNCTION__.21241 +1004cd81 d __FUNCTION__.21126 +1004cd91 d iw_priv_type_size +1004ce6f d __FUNCTION__.17334 +1004ce79 d __FUNCTION__.17736 +1004ce89 d __FUNCTION__.17760 +1004ce9c d __FUNCTION__.17712 +1004ceab d __FUNCTION__.17649 +1004ceb9 d __FUNCTION__.17661 +1004d290 d __FUNCTION__.17827 +1004d2a9 d __FUNCTION__.17654 +1004d2b4 d __FUNCTION__.17615 +1004d2c3 d __FUNCTION__.17811 +1004d2d5 d __FUNCTION__.17765 +1004d2e3 d __FUNCTION__.17637 +1004e684 D CCKFCCTable_Ch14_8195A +1004e694 D CCKFCCTable_8195A +1004e6a4 D OFDMSwingTable_New +1004e750 D CCKCETable_8195A +1004e766 d CSWTCH.39 +1004e77b d __func__.20571 +1004e79c D hci_ops +1004e7c1 V Array_MP_8195A_TXPWR_LMT +1004ed33 D _ctype_ +1004ee34 D __sf_fake_stdin +1004ee54 D __sf_fake_stdout +1004ee74 D __sf_fake_stderr +1004eec0 D xHeapRegions +1004eee0 D UartLogRamCmdTable +1004eee0 D console_commands1 +1004ef90 D console_commands +1004efa0 d UartLogRamCmdTable_end +1004efa4 D __data_start__ +1004efa4 D oversampling +1004efa8 D wifi_mode +1004efac d wifi +1004efe4 D SystemCoreClock +1004efe8 D error_flag +1004efec d iss.7391 +1004eff0 d tcp_port +1004eff2 d udp_port +1004eff4 d dhcp_recorded_xid +1004eff8 d dhcp_server_state_machine +1004effc d uxCriticalNesting +1004f000 d xNextTaskUnblockTime +1004f004 d seed.11739 +1004f008 d wakeup_event +1004f00c d wakelock +1004f010 d last_wakelock_state +1004f030 D mlme_sta_tbl +1004f0a0 d PMKID_KDE_TYPE.17744 +1004f0a8 V nr_xmitbuff +1004f0ac V nr_xmitframe +1004f0b0 d P802_1H_OUI +1004f0b3 D rtw_adaptivity_mode +1004f0b4 D g_user_ap_sta_num +1004f0b8 d rtw_private_handler +1004f0fc V max_local_skb_num +1004f100 V max_skb_buf_num +1004f104 D rom_e_rtw_msgp_str_ +1004f2e0 D ARFB_table +1004f31f D TRYING_NECESSARY_idx +1004f333 D DROPING_NECESSARY +1004f347 D PER_RATE_UP +1004f35b D PER_RATE_DOWN +1004f370 V Array_MP_8195A_PHY_REG_PG +1004f400 D Array_MP_8195A_AGC_TAB +1004f610 D Array_MP_8195A_PHY_REG +1004fc88 D rtl8195A_card_disable_flow +1004fd28 D rtl8195A_card_enable_flow +1004fdc8 D Array_MP_8195A_MAC_REG +100500d0 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A +100500f0 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A +10050110 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A +1005012e D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A +1005014c D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A +1005016a D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A +10050188 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A +100501a8 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A +100501c6 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A +100501e4 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A +10050204 D Array_MP_8195A_RadioA +100507cc D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A +100507ea D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A +1005080a D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A +10050828 D __ctype_ptr__ +1005082c d impure_data +1005088c D _impure_ptr +10050890 D .ram.bss$$Base +10050890 D SpicInitParaAllClk +10050890 D __bss_start__ +10050890 D __data_end__ +10050890 D __ram_image2_text_end__ +10050920 d skbdata_list +10050928 V skb_data_pool +10053d28 d ucIdleTaskHeap +10053e40 D HalI2SOpSAL +10053e7c D errno +10053e80 D SYSAdapte +10053e84 D PwrAdapter +10054110 D p_write_reconnect_ptr +10054114 d sampCntAdd +10054118 d sampCnt +1005411c D tskreader_enable +10054120 D readBuf +10054124 D tskmad_enable +10054128 d bufUnderrunCt +1005412c d oldRate +10054130 d sampDelCnt +10054134 d ap +10054168 D mp3_serv +100541ea d password +1005422c D pbuf_fifo +10054230 D pi2s +10054238 D libc_has_init +1005423c d rheap_end +10054240 D eap_method +10054241 D eap_phase +10054244 d event_init.21049 +10054248 D rtw_join_status +1005424c d param.21324 +10054264 d join_user_data +10054268 d event_callback_list +100543e8 D paff_array +10054460 D lwip_init_done +10054464 D xnetif +100544dc d s_hostent_addr.6979 +100544e0 d s_phostent_addr.6980 +100544e8 D h_errno +100544ec d s_aliases.6978 +100544f0 d s_hostent.6977 +10054504 d select_cb_list +10054508 d sockets +100545c8 d select_cb_ctr +100545cc d mbox +100545d0 d tcpip_init_done_arg +100545d4 d tcpip_init_done +100545d8 d allsystems +100545dc d allrouters +100545e0 d igmp_group_list +100545e4 D current_header +100545e8 d ip_id +100545ec D current_iphdr_src +100545f0 D current_iphdr_dest +100545f4 D current_netif +100545f8 d str.6324 +10054608 d reassdatagrams +1005460c d ip_reass_pbufcount +1005460e D dhcp_rx_options_given +10054618 d xid.7384 +1005461c D dhcp_rx_options_val +10054644 d dns_seqno +10054648 d dns_table +10054aa8 d dns_servers +10054ab0 d dns_payload_buffer +10054cb4 d dns_pcb +10054cb8 d dns_payload +10054cbc d tcpip_tcp_timer_active +10054cc0 d next_timeout +10054cc4 D netif_list +10054cc8 D netif_default +10054ccc d netif_num +10054ccd D pbuf_free_ooseq_pending +10054cd0 d raw_pcbs +10054cd4 D tcp_active_pcbs_changed +10054cd8 D tcp_ticks +10054cdc d tcp_timer +10054ce0 D tcp_listen_pcbs +10054ce4 D tcp_active_pcbs +10054ce8 d tcp_timer_ctr +10054cec D tcp_tw_pcbs +10054cf0 D tcp_tmp_pcb +10054cf4 D tcp_bound_pcbs +10054cf8 d seqno +10054cfc d tcplen +10054d00 d ackno +10054d04 d flags +10054d05 d recv_flags +10054d08 d tcphdr +10054d0c d recv_data +10054d10 d inseg +10054d24 D tcp_input_pcb +10054d28 D udp_pcbs +10054d2c d etharp_cached_entry +10054d30 d arp_table +10054df8 D lwip_tickless_used +10054dfc d s_timeoutlist +10054e2c d s_nextthread +10054e30 d dhcps_network_id +10054e34 d dhcps_ip_table_semaphore +10054e38 d bound_client_ethernet_address +10054e48 d client_request_ip +10054e4c d dhcps_local_gateway +10054e50 d dhcps_send_broadcast_address +10054e54 d dhcp_message_repository +10054e58 d dhcp_message_total_options_lenth +10054e5c d dhcps_local_mask +10054e60 d dhcps_local_address +10054e64 d dhcp_client_ethernet_address +10054e74 d dhcps_netif +10054e78 d dhcps_addr_pool_set +10054e7c d dhcps_pcb +10054e80 d dhcps_subnet_broadcast +10054e84 d dhcps_addr_pool_start +10054e88 d dhcps_allocated_client_address +10054e8c d ip_table +10054eac d dhcps_addr_pool_end +10054eb0 D ext_upper +10054eb4 d xFreeBytesRemaining +10054eb8 d ext_free +10054ebc D ext_lower +10054ec0 d pxEnd +10054ec4 d xStart +10054ecc d xMinimumEverFreeBytesRemaining +10054ed0 d xBlockAllocatedBit +10054ed4 d ulTimerCountsForOneTick +10054ed8 d ulStoppedTimerCompensation +10054edc d xMaximumPossibleSuppressedTicks +10054ee0 d xPendingReadyList +10054ef4 d uxTopReadyPriority +10054ef8 d uxTasksDeleted +10054efc d xTickCount +10054f00 d pxReadyTasksLists +10054fdc d pxOverflowDelayedTaskList +10054fe0 d xTasksWaitingTermination +10054ff4 d pxDelayedTaskList +10054ff8 d xSchedulerRunning +10054ffc d ulTaskSwitchedInTime +10055000 D pxCurrentTCB +10055004 d uxPendedTicks +10055008 d xSuspendedTaskList +1005501c d uxCurrentNumberOfTasks +10055020 d ulDeltaTotalRunTime +10055024 d xDelayedTaskList2 +10055038 d xDelayedTaskList1 +1005504c d uxTaskNumber +10055050 d xYieldPending +10055054 d uxSchedulerSuspended +10055058 d xNumOfOverflows +1005505c d pxCurrentTimerList +10055060 d xActiveTimerList1 +10055074 d xActiveTimerList2 +10055088 d xLastTime.5284 +1005508c d xTimerQueue +10055090 d pxOverflowTimerList +10055094 d xTimerTaskHandle +10055098 d device_mutex +100550a4 d mutex_init +100550a8 d uxSavedInterruptStatus +100550ac D min_free_heap_size +100550b0 d g_heap_inited +100550b4 d tcm_lock +100550b8 D g_tcm_heap +100550bc D flashobj +100550c8 D fspic_isinit +100550cc D WDGAdapter +10055108 d last_acquire_wakelock_time +10055188 D post_sleep_callback +10055208 D pre_sleep_callback +10055288 D reserve_pll +1005528c d sys_sleep_time +10055290 d hold_wakelock_time +10055310 D missing_tick +10055314 D Timer2To7HandlerData +1005532c D auto_reconnect_running +10055330 D p_wlan_autoreconnect_hdl +10055334 D mac_monitor_callback +10055338 D mf_list_head +1005533c d pscan_retry_cnt.21430 +10055340 D promisc_callback_all +10055344 D promisc_sema +10055348 D promisc_callback +1005534c D psk_essid +10055394 D psk_passphrase +10055416 D psk_passphrase64 +10055457 D wpa_global_PSK +100554a7 d RFC1042_OUI +100554ac d rx_ring_pool +1005758c d stop_report_count.20629 +1005758d D bCheckStateTIMER +10057590 d WifiMcuCmdBitMap.20974 +10057594 D p_wlan_init_done_callback +10057598 D rtw_power_percentage_idx +1005759c D p_wlan_uart_adapter_callback +100575a0 D rtw_adaptivity_en +100575a4 D p_wlan_mgmt_filter +100575a8 D rtw_initmac +100575ac D rtw_adaptivity_th_l2h_ini +100575b0 d drvpriv +100575c4 D skbbuf_used_num +100575c8 V skb_pool +10057780 D skbdata_used_num +10057784 d wrapper_skbbuf_list +1005778c D max_skbdata_used_num +10057790 D max_skbbuf_used_num +10057794 d skb_fail_count +10057798 D timer_table +100577a0 D rltk_wlan_info +100577d0 d timer_used_num +100577d4 D max_timer_used_num +100577d8 D Noisy_State +100577dc D pExportWlanIrqSemaphore +100577e0 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A +10057800 D __malloc_sbrk_start +10057804 D __malloc_free_list +10057808 d heap_end.4167 +1005780c D .ram.bss$$Limit +1005780c D __bss_end__ +10057810 B __ram_heap2_start__ 10070000 A __ram_heap2_end__ 1fff0000 D __ram_tcm_start__ 1fff0000 D ram_heap