This commit is contained in:
pvvx 2017-03-02 11:46:28 +03:00
parent ed4c83a935
commit 4cf5fcf936
18 changed files with 3919 additions and 4238 deletions

View file

@ -1316,7 +1316,7 @@ void fATST(void *arg) {
#if 0 #if 0
#include "wlan_lib.h" #include "wlan_lib.h"
#include "hal_com_reg.h" #include "hal_com_reg.h"
// struct net_device *rltk_wlan_info; // extern Rltk_wlan_t rltk_wlan_info[2];
void fATXT(void *arg) void fATXT(void *arg)
{ {
#if DEBUG_AT_USER_LEVEL > 3 #if DEBUG_AT_USER_LEVEL > 3

View file

@ -233,7 +233,7 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) {
iptab[1] = (uint8_t) (IPaddress >> 16); iptab[1] = (uint8_t) (IPaddress >> 16);
iptab[2] = (uint8_t) (IPaddress >> 8); iptab[2] = (uint8_t) (IPaddress >> 8);
iptab[3] = (uint8_t) (IPaddress); 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]); iptab[2], iptab[1], iptab[0]);
#if CONFIG_WLAN #if CONFIG_WLAN
error_flag = RTW_NO_ERROR; 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[1] = IP_ADDR2;
iptab[2] = IP_ADDR1; iptab[2] = IP_ADDR1;
iptab[3] = IP_ADDR0; iptab[3] = IP_ADDR0;
printf("Interface %d DHCP timeout\n", idx); info_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("Static IP address: %d.%d.%d.%d\n", iptab[3], iptab[2], iptab[1], iptab[0]);
#if CONFIG_WLAN #if CONFIG_WLAN
error_flag = RTW_DHCP_FAIL; error_flag = RTW_DHCP_FAIL;
#endif #endif
@ -280,14 +280,14 @@ uint8_t LwIP_DHCP(uint8_t idx, uint8_t dhcp_state) {
#if CONFIG_WLAN #if CONFIG_WLAN
wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl); wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl);
#endif #endif
printf("LwIP_DHCP: Release ip\n"); info_printf("LwIP_DHCP(%d): Release ip\n", idx);
dhcp_release_unicast(pnetif); dhcp_release_unicast(pnetif);
return DHCP_RELEASE_IP; return DHCP_RELEASE_IP;
case DHCP_STOP: case DHCP_STOP:
#if CONFIG_WLAN #if CONFIG_WLAN
wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl); wifi_unreg_event_handler(WIFI_EVENT_BEACON_AFTER_DHCP, wifi_rx_beacon_hdl);
#endif #endif
printf("LwIP_DHCP: dhcp stop.\n"); info_printf("LwIP_DHCP(%d): dhcp stop.\n", idx);
dhcp_stop(pnetif); dhcp_stop(pnetif);
return DHCP_STOP; return DHCP_STOP;
default: default:

File diff suppressed because it is too large Load diff

View file

@ -9,11 +9,11 @@
******************************************************/ ******************************************************/
#if CONFIG_DEBUG_LOG > 3 #if CONFIG_DEBUG_LOG > 3
#define WIFI_INDICATE_MSG 1 #define WIFI_INDICATE_MSG 1
#else #else
#define WIFI_INDICATE_MSG 0 #define WIFI_INDICATE_MSG 0
#endif #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_PRIORITY (0) //Actual priority is 4 since calling rtw_create_task
#define WIFI_MANAGER_Q_SZ 8 #define WIFI_MANAGER_Q_SZ 8
@ -22,44 +22,47 @@
* Globals * 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 #if CONFIG_WIFI_IND_USE_THREAD
static rtw_worker_thread_t wifi_worker_thread; static rtw_worker_thread_t wifi_worker_thread;
#endif #endif
//----------------------------------------------------------------------------// //----------------------------------------------------------------------------//
#if CONFIG_WIFI_IND_USE_THREAD #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; rtw_event_message_t message;
int i; int i;
rtw_result_t ret = RTW_SUCCESS; rtw_result_t ret = RTW_SUCCESS;
char *local_buf = NULL; char *local_buf = NULL;
if(event_cmd >= WIFI_EVENT_MAX) if (event_cmd >= WIFI_EVENT_MAX)
return RTW_BADARG; return RTW_BADARG;
for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){ for (i = 0; i < WIFI_EVENT_MAX_ROW; i++) {
if(event_callback_list[event_cmd][i].handler == NULL) if (event_callback_list[event_cmd][i].handler == NULL)
continue; 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; message.buf_len = buf_len;
if(buf_len){ if (buf_len) {
local_buf = (char*)pvPortMalloc(buf_len); local_buf = (char*) pvPortMalloc(buf_len);
if(local_buf == NULL) if (local_buf == NULL)
return RTW_NOMEM; return RTW_NOMEM;
memcpy(local_buf, buf, buf_len); 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.buf = local_buf;
message.flags = flags; message.flags = flags;
message.user_data = event_callback_list[event_cmd][i].handler_user_data; message.user_data = event_callback_list[event_cmd][i].handler_user_data;
ret = rtw_push_to_xqueue(&wifi_worker_thread.event_queue, &message, 0); ret = rtw_push_to_xqueue(&wifi_worker_thread.event_queue, &message, 0);
if(ret != RTW_SUCCESS){ if (ret != RTW_SUCCESS) {
if(local_buf){ if (local_buf) {
printf("rtw_send_event_to_worker: enqueue cmd %d failed and free %p(%d)\n", event_cmd, local_buf, buf_len); 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); vPortFree(local_buf);
} }
break; 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; rtw_event_handler_t handle = NULL;
int i; int i;
if(event_cmd >= WIFI_EVENT_MAX) if(event_cmd >= WIFI_EVENT_MAX)
return RTW_BADARG; return RTW_BADARG;
for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){ for(i = 0; i < WIFI_EVENT_MAX_ROW; i++) {
handle = event_callback_list[event_cmd][i].handler; handle = event_callback_list[event_cmd][i].handler;
if(handle == NULL) if(handle == NULL)
continue; continue;
handle(buf, buf_len, flags, event_callback_list[event_cmd][i].handler_user_data); 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; extern gpio_t gpio_led;
#endif #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, // If upper layer application triggers additional operations on receiving of wext_wlan_indicate,
// please strictly check current stack size usage (by using uxTaskGetStackHighWaterMark() ) // 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 // , and tries not to share the same stack with wlan driver if remaining stack space is
// not available for the following operations. // not available for the following operations.
// ex: using semaphore to notice another thread. // ex: using semaphore to notice another thread.
switch(event) switch (event) {
{ case WIFI_EVENT_DISCONNECT:
case WIFI_EVENT_DISCONNECT:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf(" %s():Disconnection indication received\n", __FUNCTION__); info_printf("%s: Disconnection indication received\n", __func__);
#endif #endif
break; break;
case WIFI_EVENT_CONNECT: case WIFI_EVENT_CONNECT:
// For WPA/WPA2 mode, indication of connection does not mean data can be // For WPA/WPA2 mode, indication of connection does not mean data can be
// correctly transmitted or received. Data can be correctly transmitted or // correctly transmitted or received. Data can be correctly transmitted or
// received only when 4-way handshake is done. // received only when 4-way handshake is done.
// Please check WIFI_EVENT_FOURWAY_HANDSHAKE_DONE event // Please check WIFI_EVENT_FOURWAY_HANDSHAKE_DONE event
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
// Sample: return mac address // Sample: return mac address
if(buf != NULL && buf_len == 6) if (buf != NULL && buf_len == 6) {
{ info_printf(
printf("%s():Connect indication received: %02x:%02x:%02x:%02x:%02x:%02x\n", __FUNCTION__, "%s: Connect indication received: %02x:%02x:%02x:%02x:%02x:%02x\n",
buf[0],buf[1],buf[2],buf[3],buf[4],buf[5]); __func__, buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
} }
#endif #endif
break; break;
case WIFI_EVENT_FOURWAY_HANDSHAKE_DONE: case WIFI_EVENT_FOURWAY_HANDSHAKE_DONE:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
if(buf != NULL) if (buf != NULL)
{ info_printf("%s: %s\n", __func__, buf);
if(buf_len == strlen(IW_EXT_STR_FOURWAY_DONE))
printf("%s():%s\n", __FUNCTION__, buf);
}
#endif #endif
break; break;
case WIFI_EVENT_SCAN_RESULT_REPORT: case WIFI_EVENT_SCAN_RESULT_REPORT:
#if(WIFI_INDICATE_MSG>0) #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 #endif
break; break;
case WIFI_EVENT_SCAN_DONE: case WIFI_EVENT_SCAN_DONE:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_SCAN_DONE\n", __func__); info_printf("%s: WIFI_EVENT_SCAN_DONE\n", __func__);
#if CONFIG_DEBUG_LOG > 3 //#if CONFIG_DEBUG_LOG > 3
printf("Time at start %d ms.\n", xTaskGetTickCount()); // debug_printf("Time at start %d ms.\n", xTaskGetTickCount());
//#endif
#endif #endif
#endif break;
break; case WIFI_EVENT_RECONNECTION_FAIL:
case WIFI_EVENT_RECONNECTION_FAIL:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
if(buf != NULL){ info_printf("%s: %s\n", __func__, buf);
if(buf_len == strlen(IW_EXT_STR_RECONNECTION_FAIL))
printf("%s\n", buf);
}
#endif #endif
break; break;
case WIFI_EVENT_NO_NETWORK: case WIFI_EVENT_NO_NETWORK:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_NO_NETWORK\n", __func__); info_printf("%s: %s\n", __func__, buf);
#endif #endif
break; break;
#if CONFIG_ENABLE_P2P #if CONFIG_ENABLE_P2P
case WIFI_EVENT_SEND_ACTION_DONE: case WIFI_EVENT_SEND_ACTION_DONE:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_SEND_ACTION_DONE\n", __func__); info_printf("%s: %s\n", __func__);
#endif #endif
break; break;
case WIFI_EVENT_RX_MGNT: case WIFI_EVENT_RX_MGNT:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_RX_MGNT\n", __func__); info_printf("%s: WIFI_EVENT_RX_MGNT\n", __func__);
#endif #endif
break; break;
#endif //CONFIG_ENABLE_P2P #endif //CONFIG_ENABLE_P2P
case WIFI_EVENT_STA_ASSOC: case WIFI_EVENT_STA_ASSOC:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_STA_ASSOC\n", __func__); info_printf("%s: %s\n", __func__);
#endif #endif
break; break;
case WIFI_EVENT_STA_DISASSOC: case WIFI_EVENT_STA_DISASSOC:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_STA_DISASSOC\n", __func__); info_printf("%s: %s\n", __func__);
#endif #endif
break; break;
#ifdef CONFIG_WPS #ifdef CONFIG_WPS
case WIFI_EVENT_STA_WPS_START: case WIFI_EVENT_STA_WPS_START:
#if(WIFI_INDICATE_MSG>0) #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 #endif
break; break;
case WIFI_EVENT_WPS_FINISH: case WIFI_EVENT_WPS_FINISH:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_WPS_FINISH\n", __func__); info_printf("%s: WIFI_EVENT_WPS_FINISH\n", __func__);
#endif #endif
break; break;
case WIFI_EVENT_EAPOL_RECVD: case WIFI_EVENT_EAPOL_RECVD:
#if(WIFI_INDICATE_MSG>0) #if(WIFI_INDICATE_MSG>0)
printf("%s(): WIFI_EVENT_EAPOL_RECVD\n", __func__); info_printf("%s: WIFI_EVENT_EAPOL_RECVD\n", __func__);
#endif #endif
break; break;
#endif #endif
case WIFI_EVENT_BEACON_AFTER_DHCP: case WIFI_EVENT_BEACON_AFTER_DHCP:
#if(WIFI_INDICATE_MSG>1) #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 #endif
#if 0 // test beacon #if 0 // test beacon
gpio_write(&gpio_led, 1); gpio_write(&gpio_led, 1);
gpio_write(&gpio_led, 0); gpio_write(&gpio_led, 0);
#endif #endif
break; break;
} }
#if CONFIG_INIC_EN #if CONFIG_INIC_EN
@ -216,31 +212,33 @@ void wifi_indication( WIFI_EVENT_INDICATE event, char *buf, int buf_len, int fla
#endif #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; int i = 0, j = 0;
if(event_cmds < WIFI_EVENT_MAX){ if (event_cmds < WIFI_EVENT_MAX) {
for(i=0; i < WIFI_EVENT_MAX_ROW; i++){ for (i = 0; i < WIFI_EVENT_MAX_ROW; i++) {
if(event_callback_list[event_cmds][i].handler == NULL){ if (event_callback_list[event_cmds][i].handler == NULL) {
for(j=0; j<WIFI_EVENT_MAX_ROW; j++){ for (j = 0; j < WIFI_EVENT_MAX_ROW; j++) {
if(event_callback_list[event_cmds][j].handler == handler_func){ if (event_callback_list[event_cmds][j].handler
return; == handler_func) {
} return;
} }
}
event_callback_list[event_cmds][i].handler = handler_func; event_callback_list[event_cmds][i].handler = handler_func;
event_callback_list[event_cmds][i].handler_user_data = handler_user_data; event_callback_list[event_cmds][i].handler_user_data =
handler_user_data;
return; return;
} }
} }
} }
} }
void wifi_unreg_event_handler(unsigned int event_cmds, rtw_event_handler_t handler_func) void wifi_unreg_event_handler(unsigned int event_cmds,
{ rtw_event_handler_t handler_func) {
int i; int i;
if(event_cmds < WIFI_EVENT_MAX){ if (event_cmds < WIFI_EVENT_MAX) {
for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){ for (i = 0; i < WIFI_EVENT_MAX_ROW; i++) {
if(event_callback_list[event_cmds][i].handler == handler_func){ if (event_callback_list[event_cmds][i].handler == handler_func) {
event_callback_list[event_cmds][i].handler = NULL; event_callback_list[event_cmds][i].handler = NULL;
event_callback_list[event_cmds][i].handler_user_data = NULL; event_callback_list[event_cmds][i].handler_user_data = NULL;
return; return;
@ -249,23 +247,21 @@ void wifi_unreg_event_handler(unsigned int event_cmds, rtw_event_handler_t handl
} }
} }
void init_event_callback_list(){ void init_event_callback_list() {
memset(event_callback_list, 0, sizeof(event_callback_list)); memset(event_callback_list, 0, sizeof(event_callback_list));
} }
int wifi_manager_init() int wifi_manager_init() {
{
#if CONFIG_WIFI_IND_USE_THREAD #if CONFIG_WIFI_IND_USE_THREAD
rtw_create_worker_thread(&wifi_worker_thread, rtw_create_worker_thread(&wifi_worker_thread,
WIFI_MANAGER_PRIORITY, WIFI_MANAGER_PRIORITY,
WIFI_MANAGER_STACKSIZE, WIFI_MANAGER_STACKSIZE,
WIFI_MANAGER_Q_SZ); WIFI_MANAGER_Q_SZ);
#endif #endif
return 0; return 0;
} }
void rtw_wifi_manager_deinit() void rtw_wifi_manager_deinit() {
{
#if CONFIG_WIFI_IND_USE_THREAD #if CONFIG_WIFI_IND_USE_THREAD
rtw_delete_worker_thread(&wifi_worker_thread); rtw_delete_worker_thread(&wifi_worker_thread);
#endif #endif

File diff suppressed because it is too large Load diff

View file

@ -7,15 +7,16 @@
#include "osdep_service.h" #include "osdep_service.h"
#include "freertos/wrapper.h" #include "freertos/wrapper.h"
#include "rtl_bios_data.h"
#define _atr_aligned2_ __attribute__((aligned(2))) #define _atr_aligned2_ __attribute__((aligned(2)))
#define _atr_aligned4_ __attribute__((aligned(4))) #define _atr_aligned4_ __attribute__((aligned(4)))
#define _atr_aligned8_ __attribute__((aligned(4))) #define _atr_aligned8_ __attribute__((aligned(4)))
#define sint8_t char #define sint8_t char
#define sint16_t short #define sint16_t short
#define sint32_t int #define sint32_t int
#define sint64_t long long //#define sint64_t long long // warning align(8)!
/* /*
struct _ADAPTER; struct _ADAPTER;
struct dvobj_priv; struct dvobj_priv;
@ -45,7 +46,7 @@
//typedef uint32_t dma_addr_t; // basic_types.h //typedef uint32_t dma_addr_t; // basic_types.h
//typedef uint8_t uint8_t; //typedef uint8_t uint8_t;
//typedef uint16_t uint16_t; //typedef uint16_t uint16_t;
//typedef unsigned sint64_t uint64_t; //typedef unsigned sint64_t u8Byte;
typedef int sint; typedef int sint;
typedef uint8_t BOOL; typedef uint8_t BOOL;
typedef uint8_t bool; typedef uint8_t bool;
@ -55,6 +56,7 @@ typedef uint8_t u1Byte;
typedef uint16_t u2Byte; typedef uint16_t u2Byte;
typedef uint32_t u4Byte; typedef uint32_t u4Byte;
typedef uint64_t u8Byte; typedef uint64_t u8Byte;
typedef uint64_t __attribute__((aligned(4))) _u8Byte;
typedef sint8_t s1Byte; typedef sint8_t s1Byte;
typedef sint16_t s2Byte; typedef sint16_t s2Byte;
typedef sint32_t s4Byte; typedef sint32_t s4Byte;
@ -365,7 +367,6 @@ struct _NDIS_802_11_SSID {
uint32_t SsidLength; uint32_t SsidLength;
uint8_t Ssid[36]; uint8_t Ssid[36];
}; };
typedef struct _NDIS_802_11_SSID NDIS_802_11_SSID; typedef struct _NDIS_802_11_SSID NDIS_802_11_SSID;
typedef uint8_t NDIS_802_11_MAC_ADDRESS[6]; typedef uint8_t NDIS_802_11_MAC_ADDRESS[6];
typedef int NDIS_802_11_RSSI; typedef int NDIS_802_11_RSSI;
@ -545,7 +546,7 @@ struct mlme_priv {
uint8_t key_mask; uint8_t key_mask;
uint8_t acm_mask; uint8_t acm_mask;
uint8_t ChannelPlan; 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; uint8_t *wps_probe_req_ie;
uint32_t wps_probe_req_ie_len; uint32_t wps_probe_req_ie_len;
uint8_t *wps_assoc_req_ie; uint8_t *wps_assoc_req_ie;
@ -566,12 +567,12 @@ struct mlme_priv {
_lock bcn_update_lock; _lock bcn_update_lock;
uint8_t update_bcn; uint8_t update_bcn;
uint8_t scanning_via_buddy_intf; 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 { struct _atr_aligned4_ _RT_CHANNEL_INFO {
uint8_t ChannelNum; uint8_t ChannelNum;
RT_SCAN_TYPE ScanType; RT_SCAN_TYPE ScanType; // uint8_t ScanType; // byte/dword?
uint8_t pscan_config; uint8_t pscan_config;
}; };
typedef struct _RT_CHANNEL_INFO RT_CHANNEL_INFO; typedef struct _RT_CHANNEL_INFO RT_CHANNEL_INFO;
@ -603,22 +604,18 @@ struct WMM_para_element {
struct AC_param ac_param[4]; 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 { 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 { struct HT_info_element {
@ -685,8 +682,8 @@ typedef struct _cus_ie{
#endif /* _CUS_IE_ */ #endif /* _CUS_IE_ */
// typedef struct _cus_ie *p_cus_ie; // typedef struct _cus_ie *p_cus_ie;
struct _atr_aligned2_ mlme_ext_priv { //__attribute__((packed))? struct mlme_ext_priv { //__attribute__((packed))?
_adapter *padapter; _adapter *padapter; //+0 padapter+1256 [912]
uint8_t mlmeext_init; uint8_t mlmeext_init;
struct atomic_t event_seq; struct atomic_t event_seq;
uint16_t mgnt_seq; uint16_t mgnt_seq;
@ -698,15 +695,15 @@ struct _atr_aligned2_ mlme_ext_priv { //__attribute__((packed))?
RT_CHANNEL_INFO channel_set[14]; RT_CHANNEL_INFO channel_set[14];
uint8_t basicrate[13]; uint8_t basicrate[13];
uint8_t datarate[13]; uint8_t datarate[13];
struct ss_res sitesurvey_res; struct ss_res sitesurvey_res; //padapter+1472
struct mlme_ext_info mlmext_info; struct mlme_ext_info mlmext_info; //padapter+1528
_timer survey_timer; _timer survey_timer;
_timer link_timer; _timer link_timer;
uint16_t chan_scan_time; uint16_t chan_scan_time; //padapter+1984
uint8_t scan_abort; uint8_t scan_abort; //padapter+1986
uint8_t tx_rate; uint8_t tx_rate; //padapter+1987
uint8_t retry; uint8_t retry; //padapter+1988
uint64_t TSFValue; _u8Byte TSFValue; //+740? padapter+1992
uint8_t bstart_bss; uint8_t bstart_bss;
uint16_t action_public_rxseq; uint16_t action_public_rxseq;
_timer reconnect_timer; _timer reconnect_timer;
@ -784,11 +781,11 @@ struct _atr_aligned8_ xmit_priv {
uint8_t vcs_setting; uint8_t vcs_setting;
uint8_t vcs; uint8_t vcs;
uint8_t vcs_type; uint8_t vcs_type;
uint64_t tx_bytes; u8Byte tx_bytes;
uint64_t tx_pkts; u8Byte tx_pkts;
uint64_t tx_drop; u8Byte tx_drop;
uint64_t last_tx_bytes; u8Byte last_tx_bytes;
uint64_t last_tx_pkts; u8Byte last_tx_pkts;
struct hw_xmit *hwxmits; struct hw_xmit *hwxmits;
uint8_t hwxmit_entry; uint8_t hwxmit_entry;
struct rtw_tx_ring tx_ring[8]; struct rtw_tx_ring tx_ring[8];
@ -830,11 +827,11 @@ struct _atr_aligned8_ recv_priv {
uint32_t free_recvframe_cnt; uint32_t free_recvframe_cnt;
_adapter *adapter; _adapter *adapter;
uint32_t bIsAnyNonBEPkts; uint32_t bIsAnyNonBEPkts;
uint64_t rx_bytes; u8Byte rx_bytes;
uint64_t rx_pkts; u8Byte rx_pkts;
uint64_t rx_drop; u8Byte rx_drop;
uint64_t rx_overflow; u8Byte rx_overflow;
uint64_t last_rx_bytes; u8Byte last_rx_bytes;
uint32_t rx_icv_err; uint32_t rx_icv_err;
uint32_t rx_largepacket_crcerr; uint32_t rx_largepacket_crcerr;
uint32_t rx_smallpacket_crcerr; uint32_t rx_smallpacket_crcerr;
@ -898,20 +895,20 @@ union Keytype {
uint32_t lkey[4]; 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 { union pn48 {
uint64_t val; u8Byte val;
struct $7EAAF07643C317F97751F130E632CB13 _byte_; 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 { struct _NDIS_802_11_WEP {
@ -1091,7 +1088,7 @@ struct _atr_aligned4_ pwrctrl_priv {
uint8_t smart_ps; uint8_t smart_ps;
uint8_t bcn_ant_mode; uint8_t bcn_ant_mode;
uint32_t alives; uint32_t alives;
uint64_t wowlan_fw_iv; u8Byte wowlan_fw_iv;
uint8_t bpower_saving; uint8_t bpower_saving;
uint8_t b_hw_radio_off; uint8_t b_hw_radio_off;
uint8_t reg_rfoff; uint8_t reg_rfoff;
@ -1310,10 +1307,12 @@ struct recv_frame_hdr {
struct sta_info *psta; struct sta_info *psta;
}; };
union recv_frame { struct recv_frame {
union {
_list list; _list list;
struct recv_frame_hdr hdr; struct recv_frame_hdr hdr;
uint32_t mem[32]; uint32_t mem[32];
};
}; };
/* /*
union $AB04817EA6EB89125E28056B7464A4D7 { union $AB04817EA6EB89125E28056B7464A4D7 {
@ -1380,22 +1379,22 @@ struct sta_recv_priv {
}; };
struct stainfo_stats { struct stainfo_stats {
uint64_t rx_mgnt_pkts; u8Byte rx_mgnt_pkts;
uint64_t rx_ctrl_pkts; u8Byte rx_ctrl_pkts;
uint64_t rx_data_pkts; u8Byte rx_data_pkts;
uint64_t last_rx_mgnt_pkts; u8Byte last_rx_mgnt_pkts;
uint64_t last_rx_ctrl_pkts; u8Byte last_rx_ctrl_pkts;
uint64_t last_rx_data_pkts; u8Byte last_rx_data_pkts;
uint64_t rx_bytes; u8Byte rx_bytes;
uint64_t tx_pkts; u8Byte tx_pkts;
uint64_t tx_bytes; u8Byte tx_bytes;
}; };
struct _RSSI_STA { struct _RSSI_STA {
int32_t UndecoratedSmoothedPWDB; int32_t UndecoratedSmoothedPWDB;
int32_t UndecoratedSmoothedCCK; int32_t UndecoratedSmoothedCCK;
int32_t UndecoratedSmoothedOFDM; int32_t UndecoratedSmoothedOFDM;
uint64_t PacketMap; u8Byte PacketMap;
uint8_t ValidBit; uint8_t ValidBit;
uint32_t OFDM_pkt; uint32_t OFDM_pkt;
}; };
@ -1980,61 +1979,62 @@ struct hal_ops {
struct _atr_aligned4_ _ADAPTER { struct _atr_aligned4_ _ADAPTER {
uint16_t HardwareType; uint16_t HardwareType;
uint16_t interface_type; uint16_t interface_type; //+2
uint32_t work_mode; uint32_t work_mode;
struct dvobj_priv *dvobj; struct dvobj_priv *dvobj; //+8
struct mlme_priv mlmepriv; struct mlme_priv mlmepriv; //+12 [1244]
struct mlme_ext_priv mlmeextpriv; struct mlme_ext_priv mlmeextpriv; //+1256 [912]
struct cmd_priv cmdpriv; struct cmd_priv cmdpriv; //+2168
struct evt_priv evtpriv; struct evt_priv evtpriv; //+
struct io_priv iopriv; struct io_priv iopriv;
struct xmit_priv xmitpriv; struct xmit_priv xmitpriv; //+2248
struct recv_priv recvpriv; struct recv_priv recvpriv; //+2752
struct sta_priv stapriv; struct sta_priv stapriv; //+3024 [164]
struct security_priv securitypriv; struct security_priv securitypriv;
struct registry_priv registrypriv; struct registry_priv registrypriv;
struct pwrctrl_priv pwrctrlpriv; struct pwrctrl_priv pwrctrlpriv; // pwrctrlpriv.bInternalAutoSuspend //+5061
struct eeprom_priv eeprompriv; struct eeprom_priv eeprompriv;
PVOID HalData; PVOID HalData;
uint32_t hal_data_sz; uint32_t hal_data_sz;
struct hal_ops HalFunc; struct hal_ops HalFunc;
int32_t bDriverStopped; int32_t bDriverStopped; //+5880
int32_t bSurpriseRemoved; int32_t bSurpriseRemoved; //+5884
int32_t bCardDisableWOHSM; int32_t bCardDisableWOHSM; //+5888
uint8_t RxStop; uint8_t RxStop; //+5892
uint32_t IsrContent; uint32_t IsrContent;
uint32_t ImrContent; uint32_t ImrContent;
uint8_t EepromAddressSize; uint8_t EepromAddressSize;
uint8_t hw_init_completed; uint8_t hw_init_completed; //+5905
uint8_t bDriverIsGoingToUnload; uint8_t bDriverIsGoingToUnload;
uint8_t init_adpt_in_progress; uint8_t init_adpt_in_progress;
uint8_t bMpDriver; uint8_t bMpDriver;
uint8_t bForwardingDisabled; uint8_t bForwardingDisabled;
struct task_struct isrThread; struct task_struct isrThread; //+5888
struct task_struct cmdThread; struct task_struct cmdThread; //+5920
struct task_struct recvtasklet_thread; struct task_struct recvtasklet_thread; //+5952
struct task_struct xmittasklet_thread; struct task_struct xmittasklet_thread; //+5984
void (*intf_start)(_adapter *); void (*intf_start)(_adapter *); //+6008
void (*intf_stop)(_adapter *); void (*intf_stop)(_adapter *); //+6012
_nic_hdl pnetdev; _nic_hdl pnetdev; //+6016
int bup; int bup; //+6020
struct net_device_stats stats; struct net_device_stats stats;
uint8_t net_closed; uint8_t net_closed; //+6052
uint8_t bFWReady; uint8_t bFWReady;
uint8_t bLinkInfoDump; uint8_t bLinkInfoDump;
uint8_t bRxRSSIDisplay; uint8_t bRxRSSIDisplay;
_adapter *pbuddy_adapter; _adapter *pbuddy_adapter; //+6056
_mutex *hw_init_mutex; _mutex *hw_init_mutex; //+6060
uint8_t isprimary; uint8_t isprimary; //+6064
uint8_t adapter_type; uint8_t adapter_type; //+6065
uint8_t iface_type; uint8_t iface_type; //+6056
_mutex *ph2c_fwcmd_mutex; _mutex *ph2c_fwcmd_mutex; //+6068
_mutex *psetch_mutex; _mutex *psetch_mutex; //+6072
_mutex *psetbw_mutex; _mutex *psetbw_mutex; //+6076
struct co_data_priv *pcodatapriv; struct co_data_priv *pcodatapriv; //+6080
uint8_t fix_rate; uint8_t fix_rate; //+6084
}; }; // [6088] (!)
typedef struct _ADAPTER *PADAPTER; typedef struct _ADAPTER *PADAPTER;
// if sizeof(struct _ADAPTER) != 6088 #error "Check aligned struct!" !
enum tag_HAL_IC_Type_Definition // : sint32_t enum tag_HAL_IC_Type_Definition // : sint32_t
{ {
@ -2315,7 +2315,7 @@ struct _ODM_NOISE_MONITOR_ {
s2Byte noise_all; s2Byte noise_all;
}; };
typedef struct _ODM_NOISE_MONITOR_ ODM_NOISE_MONITOR; typedef struct _ODM_NOISE_MONITOR_ ODM_NOISE_MONITOR;
/* in rtl_bios_data.h
struct _FALSE_ALARM_STATISTICS { struct _FALSE_ALARM_STATISTICS {
u4Byte Cnt_Parity_Fail; u4Byte Cnt_Parity_Fail;
u4Byte Cnt_Rate_Illegal; u4Byte Cnt_Rate_Illegal;
@ -2334,6 +2334,7 @@ struct _FALSE_ALARM_STATISTICS {
u4Byte Cnt_BW_LSC; u4Byte Cnt_BW_LSC;
}; };
typedef struct _FALSE_ALARM_STATISTICS FALSE_ALARM_STATISTICS; typedef struct _FALSE_ALARM_STATISTICS FALSE_ALARM_STATISTICS;
*/
enum _BASEBAND_CONFIG_PHY_REG_PG_VALUE_TYPE //: sint32_t 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; typedef enum _BASEBAND_CONFIG_PHY_REG_PG_VALUE_TYPE PHY_REG_PG_TYPE;
/* in rtl_bios_data.h
struct _atr_aligned4_ _CFO_TRACKING_ { struct _atr_aligned4_ _CFO_TRACKING_ {
BOOLEAN bATCStatus; BOOLEAN bATCStatus;
BOOLEAN largeCFOHit; BOOLEAN largeCFOHit;
@ -2358,7 +2360,8 @@ struct _atr_aligned4_ _CFO_TRACKING_ {
u1Byte CFO_TH_ATC; u1Byte CFO_TH_ATC;
}; };
typedef struct _CFO_TRACKING_ CFO_TRACKING; typedef struct _CFO_TRACKING_ CFO_TRACKING;
*/
/* in rtl_bios_data.h
struct _atr_aligned8_ _ROM_INFO { struct _atr_aligned8_ _ROM_INFO {
u1Byte EEPROMVersion; u1Byte EEPROMVersion;
u1Byte CrystalCap; u1Byte CrystalCap;
@ -2366,6 +2369,8 @@ struct _atr_aligned8_ _ROM_INFO {
u4Byte DebugLevel; u4Byte DebugLevel;
}; };
typedef struct _ROM_INFO ROM_INFO; typedef struct _ROM_INFO ROM_INFO;
*/
typedef struct _ROM_INFO *PROM_INFO; typedef struct _ROM_INFO *PROM_INFO;
typedef struct sta_info *PSTA_INFO_T; typedef struct sta_info *PSTA_INFO_T;
@ -3269,7 +3274,7 @@ typedef int (*mac_monitor_ptr)(uint8_t *, char);
struct mlme_handler { struct mlme_handler {
uint32_t num; uint32_t num;
uint32_t (*func)(_adapter *, union recv_frame *); uint32_t (*func)(_adapter *, struct recv_frame *);
}; };
struct fwevent { struct fwevent {

View file

@ -271,7 +271,7 @@ extern int rtw_ps_enable(int enable);
extern int rltk_wifi_fw_test(int argc, char **argv); extern int rltk_wifi_fw_test(int argc, char **argv);
// Data declarations // Data declarations
extern _list timer_table; 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 timer_used_num;
extern int max_timer_used_num; extern int max_timer_used_num;
//-------------------------------- //--------------------------------
@ -527,12 +527,12 @@ extern _sema *pExportWlanIrqSemaphore;
// freertos_recv.o // freertos_recv.o
// Function declarations // Function declarations
extern int rtw_os_recv_resource_init(struct recv_priv *precvpriv, _adapter *padapter); 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_alloc(_adapter *padapter, struct recv_buf *precvbuf);
extern int rtw_os_recvbuf_resource_free(_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 int rtw_tkip_countermeasure(_adapter *padapter);
extern void rtw_handle_tkip_mic_err(_adapter *padapter, int bgroup); 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); 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 // rtl8195a_rxdesc.o
// Function declarations // 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 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_desc_status(struct 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_phy_status(struct recv_frame *precvframe, uint8_t *pphy_status, int a3);
// Data declarations // Data declarations
//-------------------------------- //--------------------------------
// rtl8195a_xmit.o // rtl8195a_xmit.o
@ -1057,16 +1057,16 @@ extern void (*p_wlan_autoreconnect_hdl)(rtw_security_t, char *, int, char *, int
// Function declarations // Function declarations
extern u8 *get_da(u8 *pframe); extern u8 *get_da(u8 *pframe);
extern u8 *get_sa(u8 *pframe); extern u8 *get_sa(u8 *pframe);
extern signed int OnAction(_adapter *padapter, union recv_frame *precv_frame); extern signed int OnAction(_adapter *padapter, struct recv_frame *precv_frame);
extern signed int DoReserved(_adapter *padapter, union 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, union 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 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 int init_hw_mlme_ext(_adapter *padapter);
extern unsigned int init_channel_set(_adapter *padapter, int ChannelPlan, RT_CHANNEL_INFO *channel_set); 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); extern void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext);
//void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame, int a3); //void mgt_dispatcher(_adapter *padapter, struct recv_frame *precv_frame, int a3);
extern unsigned int OnAction_public(_adapter *padapter, union recv_frame *precv_frame); extern unsigned int OnAction_public(_adapter *padapter, struct recv_frame *precv_frame);
extern signed int OnAction_p2p(_adapter *padapter, union 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_mgtxmitframe(struct xmit_priv *pxmitpriv);
extern struct xmit_frame *alloc_FwRsvdframe(struct xmit_priv *pxmitpriv, uint32_t size); extern struct xmit_frame *alloc_FwRsvdframe(struct xmit_priv *pxmitpriv, uint32_t size);
extern void update_mgnt_tx_rate(_adapter *padapter, uint8_t rate); 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 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_beacon(_adapter *padapter);
extern void issue_probersp(_adapter *padapter, u8 *da, uint8_t is_valid_p2p_probereq); 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_probereq(_adapter *padapter, NDIS_802_11_SSID *pssid, int blnbc);
extern void issue_auth(_adapter *padapter, struct sta_info *psta, int status); 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_asocrsp(_adapter *padapter, uint16_t status, struct sta_info *pstat, int pkt_type);
extern void issue_assocreq(_adapter *padapter); extern void issue_assocreq(_adapter *padapter);
extern void issue_nulldata(_adapter *padapter, unsigned int power_mode); 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_qos_nulldata(_adapter *padapter, u8 *da, uint16_t tid);
extern void issue_deauth(_adapter *padapter, u8 *da, uint32_t reason); 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 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 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_auth(_adapter *padapter);
extern void start_clnt_assoc(_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 report_scan_result_one(_adapter *padapter, WLAN_BSSID_EX *bssid);
extern int add_site_survey(_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 void report_survey_event(_adapter *padapter, struct recv_frame *precv_frame);
extern signed int OnProbeRsp(_adapter *padapter, union 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_surveydone_event(_adapter *padapter);
extern void report_join_res(_adapter *padapter, int res); 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 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 receive_disconnect(_adapter *padapter, u8 *MacAddr, uint16_t reason);
extern signed int OnBeacon(_adapter *padapter, union recv_frame *precv_frame); extern signed int OnBeacon(_adapter *padapter, struct recv_frame *precv_frame);
extern signed int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame); extern signed int OnDeAuth(_adapter *padapter, struct recv_frame *precv_frame);
extern signed int OnDisassoc(_adapter *padapter, union 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 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 signed int rtw_port_switch_chk(_adapter *adapter);
extern void update_sta_info(_adapter *padapter, struct sta_info *psta); extern void update_sta_info(_adapter *padapter, struct sta_info *psta);
extern void mlmeext_sta_del_event_callback(_adapter *padapter); 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 u8 *get_hdr_bssid(u8 *pframe);
extern int filter_packet(u8 *buf, int length); extern int filter_packet(u8 *buf, int length);
extern signed int promisc_get_encrypt(_adapter *padapter, uint8_t *bssid); 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_set_enable(_adapter *padapter, int enabled, int len_used);
extern void promisc_deinit(_adapter *padapter); 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(rtw_rcr_level_t enabled, void (*callback)(u8 *, unsigned int, void *), int len_used);
extern int promisc_set_mgntframe(int result); extern int promisc_set_mgntframe(int result);
extern int is_promisc_enabled(); 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 void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv);
extern struct list_head *rtw_alloc_recvframe(_queue *pfree_recv_queue); 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); //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 int rtw_free_recvframe(struct recv_frame *precvframe, _queue *pfree_recv_queue);
extern sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue); extern sint rtw_enqueue_recvframe(struct recv_frame *precvframe, _queue *queue);
extern sint rtw_enqueue_recvframe(union 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 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 int rtw_free_uc_swdec_pending_queue(_adapter *adapter, _irqL a2, int a3);
extern void rtw_free_recv_priv(struct recv_priv *precvpriv); 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 uint32_t rtw_free_buf_pending_queue(_adapter *adapter);
extern sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue); 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 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 sint recvframe_chkmic(_adapter *adapter, struct recv_frame *precvframe, int a3, int a4);
extern union recv_frame *decryptor(_adapter *padapter, union recv_frame *precv_frame); extern struct recv_frame *decryptor(_adapter *padapter, struct recv_frame *precv_frame);
extern union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame); extern struct recv_frame *portctrl(_adapter *adapter, struct recv_frame *precv_frame);
extern sint recv_decache(union recv_frame *precv_frame, uint8_t bretry, struct stainfo_rxcache *prxcache); extern sint recv_decache(struct 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_pwrbit_data(_adapter *padapter, struct recv_frame *precv_frame, int a3, int a4);
extern void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame); extern void process_wmmps_data(_adapter *padapter, struct recv_frame *precv_frame);
extern void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info *sta); extern void count_rx_stats(_adapter *padapter, struct 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 sta2sta_data_frame(_adapter *adapter, struct 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 ap2sta_data_frame(_adapter *adapter, struct 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 sta2ap_data_frame(_adapter *adapter, struct 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_ctrl_frame(_adapter *padapter, struct recv_frame *precv_frame);
extern sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame); extern sint validate_recv_data_frame(_adapter *adapter, struct recv_frame *precv_frame);
extern sint wlanhdr_to_ethhdr(union recv_frame *precvframe, int a2, int a3); extern sint wlanhdr_to_ethhdr(struct recv_frame *precvframe, int a2, int a3);
extern union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q); extern struct recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q);
extern _queue *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *precv_frame); extern _queue *recvframe_chk_defrag(PADAPTER padapter, struct recv_frame *precv_frame);
extern sint validate_recv_mgnt_frame(PADAPTER padapter, union recv_frame **pprecv_frame); extern sint validate_recv_mgnt_frame(PADAPTER padapter, struct recv_frame **pprecv_frame);
extern sint validate_recv_frame(_adapter *adapter, union recv_frame **pprecv_frame); extern sint validate_recv_frame(_adapter *adapter, struct recv_frame **pprecv_frame);
extern int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe); 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 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_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 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 process_recv_indicatepkts(_adapter *padapter, struct recv_frame *prframe, int a3);
extern int recv_func_prehandle(_adapter *padapter, union recv_frame *rframe, int a3); extern int recv_func_prehandle(_adapter *padapter, struct recv_frame *rframe, int a3);
extern int recv_func_posthandle(_adapter *padapter, union recv_frame *prframe); extern int recv_func_posthandle(_adapter *padapter, struct recv_frame *prframe);
extern int recv_func(_adapter *padapter, union recv_frame *rframe, int a3); extern int recv_func(_adapter *padapter, struct recv_frame *rframe, int a3);
extern int32_t rtw_recv_entry(union recv_frame *precvframe, int a2, int a3); extern int32_t rtw_recv_entry(struct recv_frame *precvframe, int a2, int a3);
extern void rtw_recv_tasklet(thread_context context); extern void rtw_recv_tasklet(thread_context context);
// Data declarations // Data declarations
extern const uint8_t SNAP_ETH_TYPE_APPLETALK_AARP[2]; // = { 128u, 243u }; extern const uint8_t SNAP_ETH_TYPE_APPLETALK_AARP[2]; // = { 128u, 243u };

View file

@ -392,24 +392,24 @@ struct net_device_stats {
}; };
struct net_device { struct net_device {
char name[16]; char name[16]; //+0
void *priv; /* pointer to private data */ void *priv; //+16 _adapter /* pointer to private data */
unsigned char dev_addr[6]; /* set during bootup */ unsigned char dev_addr[6]; //+20 /* set during bootup */
int (*init)(void); int (*init)(void); //+28
int (*open)(struct net_device *dev); int (*open)(struct net_device *dev); //+32
int (*stop)(struct net_device *dev); int (*stop)(struct net_device *dev); //+36
int (*hard_start_xmit)(struct sk_buff *skb, struct net_device *dev); 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); int (*do_ioctl)(struct net_device *dev, struct iwreq *ifr, int cmd); //+44
struct net_device_stats* (*get_stats)(struct net_device *dev); struct net_device_stats* (*get_stats)(struct net_device *dev); //+48
}; };
typedef struct { typedef struct {
struct net_device *dev; /* Binding wlan driver netdev */ struct net_device *dev; //+0 /* Binding wlan driver netdev */
void *skb; /* pending Rx packet */ void *skb; //+4 /* pending Rx packet */
unsigned int tx_busy; unsigned int tx_busy; //+8
unsigned int rx_busy; unsigned int rx_busy; //+12
unsigned char enable; unsigned char enable; //+16
unsigned char mac[6]; unsigned char mac[6]; //+17..23
} Rltk_wlan_t; } Rltk_wlan_t;
#define netdev_priv(dev) dev->priv #define netdev_priv(dev) dev->priv

View file

@ -38,7 +38,7 @@ struct sk_buff {
/************************************************************/ /************************************************************/
// #include "wrapper.h" // #include "wrapper.h"
extern struct net_device *rltk_wlan_info; //extern Rltk_wlan_t rltk_wlan_info[2];
//----- ------------------------------------------------------------------ //----- ------------------------------------------------------------------
// Wlan Interface opened for upper layer // Wlan Interface opened for upper layer

View file

@ -113,7 +113,7 @@
struct timer_list { struct timer_list {
_timerHandle timer_hdl; _timerHandle timer_hdl;
unsigned long data; unsigned long data; // unsigned int data; ?
void (*function)(void *); void (*function)(void *);
}; };

View file

@ -624,7 +624,9 @@ SECTIONS
rom_wps_rcons = 0x35d88; rom_wps_rcons = 0x35d88;
rom_wps_Td4s = 0x35d94; rom_wps_Td4s = 0x35d94;
rom_wps_Td0 = 0x35e94; 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_b_cut_end__ = 0x4467c;
__rom_c_cut_text_start__ = 0x4467c; __rom_c_cut_text_start__ = 0x4467c;
HalInitPlatformLogUartV02 = 0x4467d; HalInitPlatformLogUartV02 = 0x4467d;

View file

@ -29,7 +29,7 @@
#define UART_LOG_CMD_BUFLEN 127 #define UART_LOG_CMD_BUFLEN 127
#define MAX_ARGV 10 #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. typedef u32 (*ECHOFUNC)(IN u8*,...); //UART LOG echo-function type.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff