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
#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

View file

@ -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:

File diff suppressed because it is too large Load diff

View file

@ -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<WIFI_EVENT_MAX_ROW; j++){
if(event_callback_list[event_cmds][j].handler == handler_func){
return;
}
}
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 < WIFI_EVENT_MAX_ROW; j++) {
if (event_callback_list[event_cmds][j].handler
== handler_func) {
return;
}
}
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;
}
}
}
}
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;
if(event_cmds < WIFI_EVENT_MAX){
for(i = 0; i < WIFI_EVENT_MAX_ROW; i++){
if(event_callback_list[event_cmds][i].handler == handler_func){
if (event_cmds < WIFI_EVENT_MAX) {
for (i = 0; i < WIFI_EVENT_MAX_ROW; i++) {
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_user_data = NULL;
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));
}
int wifi_manager_init()
{
int wifi_manager_init() {
#if CONFIG_WIFI_IND_USE_THREAD
rtw_create_worker_thread(&wifi_worker_thread,
WIFI_MANAGER_PRIORITY,
WIFI_MANAGER_STACKSIZE,
WIFI_MANAGER_Q_SZ);
rtw_create_worker_thread(&wifi_worker_thread,
WIFI_MANAGER_PRIORITY,
WIFI_MANAGER_STACKSIZE,
WIFI_MANAGER_Q_SZ);
#endif
return 0;
}
void rtw_wifi_manager_deinit()
{
void rtw_wifi_manager_deinit() {
#if CONFIG_WIFI_IND_USE_THREAD
rtw_delete_worker_thread(&wifi_worker_thread);
#endif

File diff suppressed because it is too large Load diff

View file

@ -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 {

View file

@ -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 };

View file

@ -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

View file

@ -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

View file

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

View file

@ -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;

View file

@ -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.