Commit 8567829a authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman

staging: rtl8192e: Cleanup checkpatch -f warnings and errors - Part XII

This patch removes all the errors and most of the warnings generated by
checkpatch -f.
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent a44325f9
...@@ -64,14 +64,14 @@ ...@@ -64,14 +64,14 @@
/** /**
* container_of - cast a member of a structure out to the containing structure * container_of - cast a member of a structure out to the containing structure
* *
* @ptr: the pointer to the member. * @ptr: the pointer to the member.
* @type: the type of the container struct this is embedded in. * @type: the type of the container struct this is embedded in.
* @member: the name of the member within the struct. * @member: the name of the member within the struct.
* *
*/ */
#define container_of(ptr, type, member) ({ \ #define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \ const typeof(((type *)0)->member)*__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );}) (type *)((char *)__mptr - offsetof(type, member)); })
#endif #endif
#define skb_tail_pointer_rsl(skb) skb_tail_pointer(skb) #define skb_tail_pointer_rsl(skb) skb_tail_pointer(skb)
...@@ -79,21 +79,24 @@ ...@@ -79,21 +79,24 @@
#define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL(x) #define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL(x)
#define queue_delayed_work_rsl(x,y,z) queue_delayed_work(x,y,z) #define queue_delayed_work_rsl(x, y, z) queue_delayed_work(x, y, z)
#define INIT_DELAYED_WORK_RSL(x,y,z) INIT_DELAYED_WORK(x,y) #define INIT_DELAYED_WORK_RSL(x, y, z) INIT_DELAYED_WORK(x, y)
#define queue_work_rsl(x,y) queue_work(x,y) #define queue_work_rsl(x, y) queue_work(x, y)
#define INIT_WORK_RSL(x,y,z) INIT_WORK(x,y) #define INIT_WORK_RSL(x, y, z) INIT_WORK(x, y)
#define container_of_work_rsl(x,y,z) container_of(x,y,z) #define container_of_work_rsl(x, y, z) container_of(x, y, z)
#define container_of_dwork_rsl(x,y,z) container_of(container_of(x, struct delayed_work, work), y, z) #define container_of_dwork_rsl(x, y, z) \
container_of(container_of(x, struct delayed_work, work), y, z)
#define iwe_stream_add_event_rsl(info,start,stop,iwe,len) iwe_stream_add_event(info,start,stop,iwe,len) #define iwe_stream_add_event_rsl(info, start, stop, iwe, len) \
iwe_stream_add_event(info, start, stop, iwe, len)
#define iwe_stream_add_point_rsl(info,start,stop,iwe,p) iwe_stream_add_point(info,start,stop,iwe,p) #define iwe_stream_add_point_rsl(info, start, stop, iwe, p) \
iwe_stream_add_point(info, start, stop, iwe, p)
#define usb_alloc_urb_rsl(x,y) usb_alloc_urb(x,y) #define usb_alloc_urb_rsl(x, y) usb_alloc_urb(x, y)
#define usb_submit_urb_rsl(x,y) usb_submit_urb(x,y) #define usb_submit_urb_rsl(x, y) usb_submit_urb(x, y)
static inline void *netdev_priv_rsl(struct net_device *dev) static inline void *netdev_priv_rsl(struct net_device *dev)
{ {
...@@ -108,18 +111,18 @@ static inline void *netdev_priv_rsl(struct net_device *dev) ...@@ -108,18 +111,18 @@ static inline void *netdev_priv_rsl(struct net_device *dev)
/* added for rtl819x tx procedure */ /* added for rtl819x tx procedure */
#define MAX_QUEUE_SIZE 0x10 #define MAX_QUEUE_SIZE 0x10
#define BK_QUEUE 0 #define BK_QUEUE 0
#define BE_QUEUE 1 #define BE_QUEUE 1
#define VI_QUEUE 2 #define VI_QUEUE 2
#define VO_QUEUE 3 #define VO_QUEUE 3
#define HCCA_QUEUE 4 #define HCCA_QUEUE 4
#define TXCMD_QUEUE 5 #define TXCMD_QUEUE 5
#define MGNT_QUEUE 6 #define MGNT_QUEUE 6
#define HIGH_QUEUE 7 #define HIGH_QUEUE 7
#define BEACON_QUEUE 8 #define BEACON_QUEUE 8
#define LOW_QUEUE BE_QUEUE #define LOW_QUEUE BE_QUEUE
#define NORMAL_QUEUE MGNT_QUEUE #define NORMAL_QUEUE MGNT_QUEUE
#ifndef IW_MODE_MESH #ifndef IW_MODE_MESH
#define IW_MODE_MESH 7 #define IW_MODE_MESH 7
...@@ -139,8 +142,10 @@ static inline void *netdev_priv_rsl(struct net_device *dev) ...@@ -139,8 +142,10 @@ static inline void *netdev_priv_rsl(struct net_device *dev)
#define RT_RF_PS_LEVEL_ALWAYS_ASPM BIT6 #define RT_RF_PS_LEVEL_ALWAYS_ASPM BIT6
#define RT_RF_LPS_DISALBE_2R BIT30 #define RT_RF_LPS_DISALBE_2R BIT30
#define RT_RF_LPS_LEVEL_ASPM BIT31 #define RT_RF_LPS_LEVEL_ASPM BIT31
#define RT_IN_PS_LEVEL(pPSC, _PS_FLAG) ((pPSC->CurPsLevel & _PS_FLAG) ? true : false) #define RT_IN_PS_LEVEL(pPSC, _PS_FLAG) \
#define RT_CLEAR_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel &= (~(_PS_FLAG))) ((pPSC->CurPsLevel & _PS_FLAG) ? true : false)
#define RT_CLEAR_PS_LEVEL(pPSC, _PS_FLAG) \
(pPSC->CurPsLevel &= (~(_PS_FLAG)))
#define RT_SET_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel |= _PS_FLAG) #define RT_SET_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel |= _PS_FLAG)
/* defined for skb cb field */ /* defined for skb cb field */
...@@ -203,36 +208,36 @@ struct cb_desc { ...@@ -203,36 +208,36 @@ struct cb_desc {
}; };
/*--------------------------Define -------------------------------------------*/ /*--------------------------Define -------------------------------------------*/
#define MGN_1M 0x02 #define MGN_1M 0x02
#define MGN_2M 0x04 #define MGN_2M 0x04
#define MGN_5_5M 0x0b #define MGN_5_5M 0x0b
#define MGN_11M 0x16 #define MGN_11M 0x16
#define MGN_6M 0x0c #define MGN_6M 0x0c
#define MGN_9M 0x12 #define MGN_9M 0x12
#define MGN_12M 0x18 #define MGN_12M 0x18
#define MGN_18M 0x24 #define MGN_18M 0x24
#define MGN_24M 0x30 #define MGN_24M 0x30
#define MGN_36M 0x48 #define MGN_36M 0x48
#define MGN_48M 0x60 #define MGN_48M 0x60
#define MGN_54M 0x6c #define MGN_54M 0x6c
#define MGN_MCS0 0x80 #define MGN_MCS0 0x80
#define MGN_MCS1 0x81 #define MGN_MCS1 0x81
#define MGN_MCS2 0x82 #define MGN_MCS2 0x82
#define MGN_MCS3 0x83 #define MGN_MCS3 0x83
#define MGN_MCS4 0x84 #define MGN_MCS4 0x84
#define MGN_MCS5 0x85 #define MGN_MCS5 0x85
#define MGN_MCS6 0x86 #define MGN_MCS6 0x86
#define MGN_MCS7 0x87 #define MGN_MCS7 0x87
#define MGN_MCS8 0x88 #define MGN_MCS8 0x88
#define MGN_MCS9 0x89 #define MGN_MCS9 0x89
#define MGN_MCS10 0x8a #define MGN_MCS10 0x8a
#define MGN_MCS11 0x8b #define MGN_MCS11 0x8b
#define MGN_MCS12 0x8c #define MGN_MCS12 0x8c
#define MGN_MCS13 0x8d #define MGN_MCS13 0x8d
#define MGN_MCS14 0x8e #define MGN_MCS14 0x8e
#define MGN_MCS15 0x8f #define MGN_MCS15 0x8f
#define MGN_MCS0_SG 0x90 #define MGN_MCS0_SG 0x90
#define MGN_MCS1_SG 0x91 #define MGN_MCS1_SG 0x91
#define MGN_MCS2_SG 0x92 #define MGN_MCS2_SG 0x92
...@@ -251,7 +256,7 @@ struct cb_desc { ...@@ -251,7 +256,7 @@ struct cb_desc {
#define MGN_MCS15_SG 0x9f #define MGN_MCS15_SG 0x9f
enum _ReasonCode{ enum _ReasonCode {
unspec_reason = 0x1, unspec_reason = 0x1,
auth_not_valid = 0x2, auth_not_valid = 0x2,
deauth_lv_ss = 0x3, deauth_lv_ss = 0x3,
...@@ -273,7 +278,7 @@ enum _ReasonCode{ ...@@ -273,7 +278,7 @@ enum _ReasonCode{
invalid_AKMP = 0x14, invalid_AKMP = 0x14,
unsup_RSNIEver = 0x15, unsup_RSNIEver = 0x15,
invalid_RSNIE = 0x16, invalid_RSNIE = 0x16,
auth_802_1x_fail= 0x17, auth_802_1x_fail = 0x17,
ciper_reject = 0x18, ciper_reject = 0x18,
QoS_unspec = 0x20, QoS_unspec = 0x20,
...@@ -282,7 +287,7 @@ enum _ReasonCode{ ...@@ -282,7 +287,7 @@ enum _ReasonCode{
no_facility = 0x23, no_facility = 0x23,
req_declined = 0x25, req_declined = 0x25,
invalid_param = 0x26, invalid_param = 0x26,
req_not_honored= 0x27, req_not_honored = 0x27,
TS_not_created = 0x2F, TS_not_created = 0x2F,
DL_not_allowed = 0x30, DL_not_allowed = 0x30,
dest_not_exist = 0x31, dest_not_exist = 0x31,
...@@ -308,10 +313,9 @@ enum hal_def_variable { ...@@ -308,10 +313,9 @@ enum hal_def_variable {
HW_DEF_GPIO, HW_DEF_GPIO,
HAL_DEF_PCI_SUPPORT_ASPM, HAL_DEF_PCI_SUPPORT_ASPM,
HAL_DEF_THERMAL_VALUE, HAL_DEF_THERMAL_VALUE,
HAL_DEF_USB_IN_TOKEN_REV, HAL_DEF_USB_IN_TOKEN_REV,
}; };
enum hw_variables { enum hw_variables {
HW_VAR_ETHER_ADDR, HW_VAR_ETHER_ADDR,
HW_VAR_MULTICAST_REG, HW_VAR_MULTICAST_REG,
...@@ -355,14 +359,14 @@ enum hw_variables { ...@@ -355,14 +359,14 @@ enum hw_variables {
HW_VAR_RF_STATE, HW_VAR_RF_STATE,
HW_VAR_RF_OFF_BY_HW, HW_VAR_RF_OFF_BY_HW,
HW_VAR_BUS_SPEED, HW_VAR_BUS_SPEED,
HW_VAR_SET_DEV_POWER, HW_VAR_SET_DEV_POWER,
HW_VAR_RCR, HW_VAR_RCR,
HW_VAR_RATR_0, HW_VAR_RATR_0,
HW_VAR_RRSR, HW_VAR_RRSR,
HW_VAR_CPU_RST, HW_VAR_CPU_RST,
HW_VAR_CECHK_BSSID, HW_VAR_CECHK_BSSID,
HW_VAR_LBK_MODE, HW_VAR_LBK_MODE,
HW_VAR_AES_11N_FIX, HW_VAR_AES_11N_FIX,
HW_VAR_USB_RX_AGGR, HW_VAR_USB_RX_AGGR,
HW_VAR_USER_CONTROL_TURBO_MODE, HW_VAR_USER_CONTROL_TURBO_MODE,
...@@ -400,7 +404,7 @@ enum hw_variables { ...@@ -400,7 +404,7 @@ enum hw_variables {
HW_VAR_SWITCH_EPHY_WoWLAN, HW_VAR_SWITCH_EPHY_WoWLAN,
HW_VAR_INT_MIGRATION, HW_VAR_INT_MIGRATION,
HW_VAR_INT_AC, HW_VAR_INT_AC,
HW_VAR_RF_TIMING, HW_VAR_RF_TIMING,
}; };
enum rt_op_mode { enum rt_op_mode {
...@@ -411,7 +415,10 @@ enum rt_op_mode { ...@@ -411,7 +415,10 @@ enum rt_op_mode {
}; };
#define aSifsTime (((priv->rtllib->current_network.mode == IEEE_A)||(priv->rtllib->current_network.mode == IEEE_N_24G)||(priv->rtllib->current_network.mode == IEEE_N_5G))? 16 : 10) #define aSifsTime \
(((priv->rtllib->current_network.mode == IEEE_A) \
|| (priv->rtllib->current_network.mode == IEEE_N_24G) \
|| (priv->rtllib->current_network.mode == IEEE_N_5G)) ? 16 : 10)
#define MGMT_QUEUE_NUM 5 #define MGMT_QUEUE_NUM 5
...@@ -452,13 +459,14 @@ enum rt_op_mode { ...@@ -452,13 +459,14 @@ enum rt_op_mode {
#define IEEE_CRYPT_ALG_NAME_LEN 16 #define IEEE_CRYPT_ALG_NAME_LEN 16
#define MAX_IE_LEN 0xff #define MAX_IE_LEN 0xff
#define RT_ASSERT_RET(_Exp) do {} while(0) #define RT_ASSERT_RET(_Exp) do {} while (0)
#define RT_ASSERT_RET_VALUE(_Exp,Ret) do {} while(0) #define RT_ASSERT_RET_VALUE(_Exp, Ret) \
do {} while (0)
struct ieee_param { struct ieee_param {
u32 cmd; u32 cmd;
u8 sta_addr[ETH_ALEN]; u8 sta_addr[ETH_ALEN];
union { union {
struct { struct {
u8 name; u8 name;
u32 value; u32 value;
...@@ -468,7 +476,7 @@ struct ieee_param { ...@@ -468,7 +476,7 @@ struct ieee_param {
u8 reserved[32]; u8 reserved[32];
u8 data[0]; u8 data[0];
} wpa_ie; } wpa_ie;
struct{ struct {
int command; int command;
int reason_code; int reason_code;
} mlme; } mlme;
...@@ -510,8 +518,8 @@ struct ieee_param { ...@@ -510,8 +518,8 @@ struct ieee_param {
#define RTLLIB_3ADDR_LEN 24 #define RTLLIB_3ADDR_LEN 24
#define RTLLIB_4ADDR_LEN 30 #define RTLLIB_4ADDR_LEN 30
#define RTLLIB_FCS_LEN 4 #define RTLLIB_FCS_LEN 4
#define RTLLIB_HLEN (RTLLIB_4ADDR_LEN) #define RTLLIB_HLEN (RTLLIB_4ADDR_LEN)
#define RTLLIB_FRAME_LEN (RTLLIB_DATA_LEN + RTLLIB_HLEN) #define RTLLIB_FRAME_LEN (RTLLIB_DATA_LEN + RTLLIB_HLEN)
#define RTLLIB_MGMT_HDR_LEN 24 #define RTLLIB_MGMT_HDR_LEN 24
#define RTLLIB_DATA_HDR3_LEN 24 #define RTLLIB_DATA_HDR3_LEN 24
#define RTLLIB_DATA_HDR4_LEN 30 #define RTLLIB_DATA_HDR4_LEN 30
...@@ -583,57 +591,59 @@ struct ieee_param { ...@@ -583,57 +591,59 @@ struct ieee_param {
#define RTLLIB_SCTL_SEQ 0xFFF0 #define RTLLIB_SCTL_SEQ 0xFFF0
/* QOS control */ /* QOS control */
#define RTLLIB_QCTL_TID 0x000F #define RTLLIB_QCTL_TID 0x000F
#define FC_QOS_BIT BIT7 #define FC_QOS_BIT BIT7
#define IsDataFrame(pdu) ( ((pdu[0] & 0x0C)==0x08) ? true : false ) #define IsDataFrame(pdu) (((pdu[0] & 0x0C) == 0x08) ? true : false)
#define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0]&FC_QOS_BIT)) ) #define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0]&FC_QOS_BIT)))
#define IsQoSDataFrame(pframe) ((*(u16*)pframe&(RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) == (RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) #define IsQoSDataFrame(pframe) \
#define Frame_Order(pframe) (*(u16*)pframe&RTLLIB_FCTL_ORDER) ((*(u16 *)pframe&(RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) == \
#define SN_LESS(a, b) (((a-b)&0x800)!=0) (RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA))
#define Frame_Order(pframe) (*(u16 *)pframe&RTLLIB_FCTL_ORDER)
#define SN_LESS(a, b) (((a-b)&0x800) != 0)
#define SN_EQUAL(a, b) (a == b) #define SN_EQUAL(a, b) (a == b)
#define MAX_DEV_ADDR_SIZE 8 #define MAX_DEV_ADDR_SIZE 8
enum act_category { enum act_category {
ACT_CAT_QOS = 1, ACT_CAT_QOS = 1,
ACT_CAT_DLS = 2, ACT_CAT_DLS = 2,
ACT_CAT_BA = 3, ACT_CAT_BA = 3,
ACT_CAT_HT = 7, ACT_CAT_HT = 7,
ACT_CAT_WMM = 17, ACT_CAT_WMM = 17,
}; };
enum ts_action { enum ts_action {
ACT_ADDTSREQ = 0, ACT_ADDTSREQ = 0,
ACT_ADDTSRSP = 1, ACT_ADDTSRSP = 1,
ACT_DELTS = 2, ACT_DELTS = 2,
ACT_SCHEDULE = 3, ACT_SCHEDULE = 3,
}; };
enum ba_action { enum ba_action {
ACT_ADDBAREQ = 0, ACT_ADDBAREQ = 0,
ACT_ADDBARSP = 1, ACT_ADDBARSP = 1,
ACT_DELBA = 2, ACT_DELBA = 2,
}; };
enum init_gain_op_type { enum init_gain_op_type {
IG_Backup=0, IG_Backup = 0,
IG_Restore, IG_Restore,
IG_Max IG_Max
}; };
enum led_ctl_mode { enum led_ctl_mode {
LED_CTL_POWER_ON = 1, LED_CTL_POWER_ON = 1,
LED_CTL_LINK = 2, LED_CTL_LINK = 2,
LED_CTL_NO_LINK = 3, LED_CTL_NO_LINK = 3,
LED_CTL_TX = 4, LED_CTL_TX = 4,
LED_CTL_RX = 5, LED_CTL_RX = 5,
LED_CTL_SITE_SURVEY = 6, LED_CTL_SITE_SURVEY = 6,
LED_CTL_POWER_OFF = 7, LED_CTL_POWER_OFF = 7,
LED_CTL_START_TO_LINK = 8, LED_CTL_START_TO_LINK = 8,
LED_CTL_START_WPS = 9, LED_CTL_START_WPS = 9,
LED_CTL_STOP_WPS = 10, LED_CTL_STOP_WPS = 10,
LED_CTL_START_WPS_BOTTON = 11, LED_CTL_START_WPS_BOTTON = 11,
LED_CTL_STOP_WPS_FAIL = 12, LED_CTL_STOP_WPS_FAIL = 12,
LED_CTL_STOP_WPS_FAIL_OVERLAP = 13, LED_CTL_STOP_WPS_FAIL_OVERLAP = 13,
}; };
...@@ -670,25 +680,29 @@ enum wireless_network_type { ...@@ -670,25 +680,29 @@ enum wireless_network_type {
/* debug macros */ /* debug macros */
extern u32 rtllib_debug_level; extern u32 rtllib_debug_level;
#define RTLLIB_DEBUG(level, fmt, args...) \ #define RTLLIB_DEBUG(level, fmt, args...) \
do { if (rtllib_debug_level & (level)) \ do { \
printk(KERN_DEBUG "rtllib: " fmt, ## args); } while (0) if (rtllib_debug_level & (level)) \
printk(KERN_DEBUG "rtllib: " fmt, ## args); \
} while (0)
#define RTLLIB_DEBUG_DATA(level, data, datalen) \ #define RTLLIB_DEBUG_DATA(level, data, datalen) \
do{ if ((rtllib_debug_level & (level)) == (level)) \ do { \
{ \ if ((rtllib_debug_level & (level)) == (level)) { \
int i; \ int i; \
u8* pdata = (u8*) data; \ u8 *pdata = (u8 *)data; \
printk(KERN_DEBUG "rtllib: %s()\n", __func__); \ printk(KERN_DEBUG "rtllib: %s()\n", __func__); \
for (i=0; i<(int)(datalen); i++) \ for (i = 0; i < (int)(datalen); i++) { \
{ \
printk("%2.2x ", pdata[i]); \ printk("%2.2x ", pdata[i]); \
if ((i+1)%16 == 0) printk("\n"); \ if ((i+1)%16 == 0) \
printk("\n"); \
} \ } \
printk("\n"); \ printk("\n"); \
} \ } \
} while (0) } while (0)
#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x" #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5] #define MAC_ARG(x) ((u8 *)(x))[0], ((u8 *)(x))[1], ((u8 *)(x))[2], \
((u8 *)(x))[3], ((u8 *)(x))[4], ((u8 *)(x))[5]
/* /*
* To use the debug system; * To use the debug system;
...@@ -714,22 +728,22 @@ do { if (rtllib_debug_level & (level)) \ ...@@ -714,22 +728,22 @@ do { if (rtllib_debug_level & (level)) \
* *
*/ */
#define RTLLIB_DL_INFO (1<<0) #define RTLLIB_DL_INFO (1<<0)
#define RTLLIB_DL_WX (1<<1) #define RTLLIB_DL_WX (1<<1)
#define RTLLIB_DL_SCAN (1<<2) #define RTLLIB_DL_SCAN (1<<2)
#define RTLLIB_DL_STATE (1<<3) #define RTLLIB_DL_STATE (1<<3)
#define RTLLIB_DL_MGMT (1<<4) #define RTLLIB_DL_MGMT (1<<4)
#define RTLLIB_DL_FRAG (1<<5) #define RTLLIB_DL_FRAG (1<<5)
#define RTLLIB_DL_EAP (1<<6) #define RTLLIB_DL_EAP (1<<6)
#define RTLLIB_DL_DROP (1<<7) #define RTLLIB_DL_DROP (1<<7)
#define RTLLIB_DL_TX (1<<8) #define RTLLIB_DL_TX (1<<8)
#define RTLLIB_DL_RX (1<<9) #define RTLLIB_DL_RX (1<<9)
#define RTLLIB_DL_HT (1<<10) #define RTLLIB_DL_HT (1<<10)
#define RTLLIB_DL_BA (1<<11) #define RTLLIB_DL_BA (1<<11)
#define RTLLIB_DL_TS (1<<12) #define RTLLIB_DL_TS (1<<12)
#define RTLLIB_DL_QOS (1<<13) #define RTLLIB_DL_QOS (1<<13)
#define RTLLIB_DL_REORDER (1<<14) #define RTLLIB_DL_REORDER (1<<14)
#define RTLLIB_DL_IOT (1<<15) #define RTLLIB_DL_IOT (1<<15)
#define RTLLIB_DL_IPS (1<<16) #define RTLLIB_DL_IPS (1<<16)
...@@ -753,25 +767,24 @@ do { if (rtllib_debug_level & (level)) \ ...@@ -753,25 +767,24 @@ do { if (rtllib_debug_level & (level)) \
/* Added by Annie, 2005-11-22. */ /* Added by Annie, 2005-11-22. */
#define MAX_STR_LEN 64 #define MAX_STR_LEN 64
/* I want to see ASCII 33 to 126 only. Otherwise, I print '?'. Annie, 2005-11-22.*/ /* I want to see ASCII 33 to 126 only. Otherwise, I print '?'. */
#define PRINTABLE(_ch) (_ch>'!' && _ch<'~') #define PRINTABLE(_ch) (_ch > '!' && _ch < '~')
#define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) \ #define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) \
if ((_Comp) & level) \ if ((_Comp) & level) { \
{ \ int __i; \
int __i; \ u8 struct buffer[MAX_STR_LEN]; \
u8 struct buffer[MAX_STR_LEN]; \ int length = (_Len < MAX_STR_LEN) ? _Len : (MAX_STR_LEN-1) ;\
int length = (_Len<MAX_STR_LEN)? _Len : (MAX_STR_LEN-1) ; \ memset(struct buffer, 0, MAX_STR_LEN); \
memset(struct buffer, 0, MAX_STR_LEN); \ memcpy(struct buffer, (u8 *)_Ptr, length); \
memcpy(struct buffer, (u8 *)_Ptr, length ); \ for (__i = 0; __i < MAX_STR_LEN; __i++) { \
for ( __i=0; __i<MAX_STR_LEN; __i++ ) \ if (!PRINTABLE(struct buffer[__i])) \
{ \ struct buffer[__i] = '?'; \
if ( !PRINTABLE(struct buffer[__i]) ) struct buffer[__i] = '?'; \ } \
} \ struct buffer[length] = '\0'; \
struct buffer[length] = '\0'; \ printk(KERN_INFO "Rtl819x: "); \
printk("Rtl819x: "); \ printk(_TitleString); \
printk(_TitleString); \ printk(": %d, <%s>\n", _Len, struct buffer); \
printk(": %d, <%s>\n", _Len, struct buffer); \ }
}
#ifndef ETH_P_PAE #ifndef ETH_P_PAE
#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ #define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
#define ETH_P_IP 0x0800 /* Internet Protocol packet */ #define ETH_P_IP 0x0800 /* Internet Protocol packet */
...@@ -790,17 +803,17 @@ do { if (rtllib_debug_level & (level)) \ ...@@ -790,17 +803,17 @@ do { if (rtllib_debug_level & (level)) \
struct rtllib_snap_hdr { struct rtllib_snap_hdr {
u8 dsap; /* always 0xAA */ u8 dsap; /* always 0xAA */
u8 ssap; /* always 0xAA */ u8 ssap; /* always 0xAA */
u8 ctrl; /* always 0x03 */ u8 ctrl; /* always 0x03 */
u8 oui[P80211_OUI_LEN]; /* organizational universal id */ u8 oui[P80211_OUI_LEN]; /* organizational universal id */
} __attribute__ ((packed)); } __packed;
enum _REG_PREAMBLE_MODE{ enum _REG_PREAMBLE_MODE {
PREAMBLE_LONG = 1, PREAMBLE_LONG = 1,
PREAMBLE_AUTO = 2, PREAMBLE_AUTO = 2,
PREAMBLE_SHORT= 3, PREAMBLE_SHORT = 3,
}; };
#define SNAP_SIZE sizeof(struct rtllib_snap_hdr) #define SNAP_SIZE sizeof(struct rtllib_snap_hdr)
...@@ -841,65 +854,65 @@ enum _REG_PREAMBLE_MODE{ ...@@ -841,65 +854,65 @@ enum _REG_PREAMBLE_MODE{
/* Status codes */ /* Status codes */
enum rtllib_statuscode { enum rtllib_statuscode {
WLAN_STATUS_SUCCESS = 0, WLAN_STATUS_SUCCESS = 0,
WLAN_STATUS_UNSPECIFIED_FAILURE = 1, WLAN_STATUS_UNSPECIFIED_FAILURE = 1,
WLAN_STATUS_CAPS_UNSUPPORTED = 10, WLAN_STATUS_CAPS_UNSUPPORTED = 10,
WLAN_STATUS_REASSOC_NO_ASSOC = 11, WLAN_STATUS_REASSOC_NO_ASSOC = 11,
WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12, WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12,
WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13, WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13,
WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14, WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14,
WLAN_STATUS_CHALLENGE_FAIL = 15, WLAN_STATUS_CHALLENGE_FAIL = 15,
WLAN_STATUS_AUTH_TIMEOUT = 16, WLAN_STATUS_AUTH_TIMEOUT = 16,
WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17, WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17,
WLAN_STATUS_ASSOC_DENIED_RATES = 18, WLAN_STATUS_ASSOC_DENIED_RATES = 18,
/* 802.11b */ /* 802.11b */
WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19, WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19,
WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20, WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20,
WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21, WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21,
/* 802.11h */ /* 802.11h */
WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22, WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22,
WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23, WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23,
WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24, WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24,
/* 802.11g */ /* 802.11g */
WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25,
WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26,
/* 802.11i */ /* 802.11i */
WLAN_STATUS_INVALID_IE = 40, WLAN_STATUS_INVALID_IE = 40,
WLAN_STATUS_INVALID_GROUP_CIPHER = 41, WLAN_STATUS_INVALID_GROUP_CIPHER = 41,
WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42, WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42,
WLAN_STATUS_INVALID_AKMP = 43, WLAN_STATUS_INVALID_AKMP = 43,
WLAN_STATUS_UNSUPP_RSN_VERSION = 44, WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
WLAN_STATUS_INVALID_RSN_IE_CAP = 45, WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
}; };
/* Reason codes */ /* Reason codes */
enum rtllib_reasoncode { enum rtllib_reasoncode {
WLAN_REASON_UNSPECIFIED = 1, WLAN_REASON_UNSPECIFIED = 1,
WLAN_REASON_PREV_AUTH_NOT_VALID = 2, WLAN_REASON_PREV_AUTH_NOT_VALID = 2,
WLAN_REASON_DEAUTH_LEAVING = 3, WLAN_REASON_DEAUTH_LEAVING = 3,
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4, WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4,
WLAN_REASON_DISASSOC_AP_BUSY = 5, WLAN_REASON_DISASSOC_AP_BUSY = 5,
WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6, WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6,
WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7,
WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8, WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8,
WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9, WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9,
/* 802.11h */ /* 802.11h */
WLAN_REASON_DISASSOC_BAD_POWER = 10, WLAN_REASON_DISASSOC_BAD_POWER = 10,
WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11, WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11,
/* 802.11i */ /* 802.11i */
WLAN_REASON_INVALID_IE = 13, WLAN_REASON_INVALID_IE = 13,
WLAN_REASON_MIC_FAILURE = 14, WLAN_REASON_MIC_FAILURE = 14,
WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15, WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15,
WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16, WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16,
WLAN_REASON_IE_DIFFERENT = 17, WLAN_REASON_IE_DIFFERENT = 17,
WLAN_REASON_INVALID_GROUP_CIPHER = 18, WLAN_REASON_INVALID_GROUP_CIPHER = 18,
WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19, WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19,
WLAN_REASON_INVALID_AKMP = 20, WLAN_REASON_INVALID_AKMP = 20,
WLAN_REASON_UNSUPP_RSN_VERSION = 21, WLAN_REASON_UNSUPP_RSN_VERSION = 21,
WLAN_REASON_INVALID_RSN_IE_CAP = 22, WLAN_REASON_INVALID_RSN_IE_CAP = 22,
WLAN_REASON_IEEE8021X_FAILED = 23, WLAN_REASON_IEEE8021X_FAILED = 23,
WLAN_REASON_CIPHER_SUITE_REJECTED = 24, WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
}; };
#define RTLLIB_STATMASK_SIGNAL (1<<0) #define RTLLIB_STATMASK_SIGNAL (1<<0)
...@@ -915,13 +928,13 @@ enum rtllib_reasoncode { ...@@ -915,13 +928,13 @@ enum rtllib_reasoncode {
#define RTLLIB_52GHZ_BAND (1<<1) #define RTLLIB_52GHZ_BAND (1<<1)
#define RTLLIB_CCK_RATE_LEN 4 #define RTLLIB_CCK_RATE_LEN 4
#define RTLLIB_CCK_RATE_1MB 0x02 #define RTLLIB_CCK_RATE_1MB 0x02
#define RTLLIB_CCK_RATE_2MB 0x04 #define RTLLIB_CCK_RATE_2MB 0x04
#define RTLLIB_CCK_RATE_5MB 0x0B #define RTLLIB_CCK_RATE_5MB 0x0B
#define RTLLIB_CCK_RATE_11MB 0x16 #define RTLLIB_CCK_RATE_11MB 0x16
#define RTLLIB_OFDM_RATE_LEN 8 #define RTLLIB_OFDM_RATE_LEN 8
#define RTLLIB_OFDM_RATE_6MB 0x0C #define RTLLIB_OFDM_RATE_6MB 0x0C
#define RTLLIB_OFDM_RATE_9MB 0x12 #define RTLLIB_OFDM_RATE_9MB 0x12
#define RTLLIB_OFDM_RATE_12MB 0x18 #define RTLLIB_OFDM_RATE_12MB 0x18
#define RTLLIB_OFDM_RATE_18MB 0x24 #define RTLLIB_OFDM_RATE_18MB 0x24
#define RTLLIB_OFDM_RATE_24MB 0x30 #define RTLLIB_OFDM_RATE_24MB 0x30
...@@ -943,12 +956,12 @@ enum rtllib_reasoncode { ...@@ -943,12 +956,12 @@ enum rtllib_reasoncode {
#define RTLLIB_OFDM_RATE_48MB_MASK (1<<10) #define RTLLIB_OFDM_RATE_48MB_MASK (1<<10)
#define RTLLIB_OFDM_RATE_54MB_MASK (1<<11) #define RTLLIB_OFDM_RATE_54MB_MASK (1<<11)
#define RTLLIB_CCK_RATES_MASK 0x0000000F #define RTLLIB_CCK_RATES_MASK 0x0000000F
#define RTLLIB_CCK_BASIC_RATES_MASK (RTLLIB_CCK_RATE_1MB_MASK | \ #define RTLLIB_CCK_BASIC_RATES_MASK (RTLLIB_CCK_RATE_1MB_MASK | \
RTLLIB_CCK_RATE_2MB_MASK) RTLLIB_CCK_RATE_2MB_MASK)
#define RTLLIB_CCK_DEFAULT_RATES_MASK (RTLLIB_CCK_BASIC_RATES_MASK | \ #define RTLLIB_CCK_DEFAULT_RATES_MASK (RTLLIB_CCK_BASIC_RATES_MASK | \
RTLLIB_CCK_RATE_5MB_MASK | \ RTLLIB_CCK_RATE_5MB_MASK | \
RTLLIB_CCK_RATE_11MB_MASK) RTLLIB_CCK_RATE_11MB_MASK)
#define RTLLIB_OFDM_RATES_MASK 0x00000FF0 #define RTLLIB_OFDM_RATES_MASK 0x00000FF0
#define RTLLIB_OFDM_BASIC_RATES_MASK (RTLLIB_OFDM_RATE_6MB_MASK | \ #define RTLLIB_OFDM_BASIC_RATES_MASK (RTLLIB_OFDM_RATE_6MB_MASK | \
...@@ -961,11 +974,11 @@ enum rtllib_reasoncode { ...@@ -961,11 +974,11 @@ enum rtllib_reasoncode {
RTLLIB_OFDM_RATE_48MB_MASK | \ RTLLIB_OFDM_RATE_48MB_MASK | \
RTLLIB_OFDM_RATE_54MB_MASK) RTLLIB_OFDM_RATE_54MB_MASK)
#define RTLLIB_DEFAULT_RATES_MASK (RTLLIB_OFDM_DEFAULT_RATES_MASK | \ #define RTLLIB_DEFAULT_RATES_MASK (RTLLIB_OFDM_DEFAULT_RATES_MASK | \
RTLLIB_CCK_DEFAULT_RATES_MASK) RTLLIB_CCK_DEFAULT_RATES_MASK)
#define RTLLIB_NUM_OFDM_RATES 8 #define RTLLIB_NUM_OFDM_RATES 8
#define RTLLIB_NUM_CCK_RATES 4 #define RTLLIB_NUM_CCK_RATES 4
#define RTLLIB_OFDM_SHIFT_MASK_A 4 #define RTLLIB_OFDM_SHIFT_MASK_A 4
/* this is stolen and modified from the madwifi driver*/ /* this is stolen and modified from the madwifi driver*/
...@@ -992,7 +1005,6 @@ struct ieee_ibss_seq { ...@@ -992,7 +1005,6 @@ struct ieee_ibss_seq {
* information for frames received. Not setting these will not cause * information for frames received. Not setting these will not cause
* any adverse affects. */ * any adverse affects. */
struct rtllib_rx_stats { struct rtllib_rx_stats {
#if 1
u64 mac_time; u64 mac_time;
s8 rssi; s8 rssi;
u8 signal; u8 signal;
...@@ -1038,7 +1050,7 @@ struct rtllib_rx_stats { ...@@ -1038,7 +1050,7 @@ struct rtllib_rx_stats {
bool bPacketMatchBSSID; bool bPacketMatchBSSID;
bool bIsCCK; bool bIsCCK;
bool bPacketToSelf; bool bPacketToSelf;
u8* virtual_address; u8 *virtual_address;
u16 packetlength; u16 packetlength;
u16 fraglength; u16 fraglength;
u16 fragoffset; u16 fragoffset;
...@@ -1049,8 +1061,6 @@ struct rtllib_rx_stats { ...@@ -1049,8 +1061,6 @@ struct rtllib_rx_stats {
char cck_adc_pwdb[4]; char cck_adc_pwdb[4];
u16 Seq_Num; u16 Seq_Num;
u8 nTotalAggPkt; u8 nTotalAggPkt;
#endif
}; };
/* IEEE 802.11 requires that STA supports concurrent reception of at least /* IEEE 802.11 requires that STA supports concurrent reception of at least
...@@ -1096,14 +1106,14 @@ struct rtllib_device; ...@@ -1096,14 +1106,14 @@ struct rtllib_device;
#include "rtllib_crypt.h" #include "rtllib_crypt.h"
#define SEC_KEY_1 (1<<0) #define SEC_KEY_1 (1<<0)
#define SEC_KEY_2 (1<<1) #define SEC_KEY_2 (1<<1)
#define SEC_KEY_3 (1<<2) #define SEC_KEY_3 (1<<2)
#define SEC_KEY_4 (1<<3) #define SEC_KEY_4 (1<<3)
#define SEC_ACTIVE_KEY (1<<4) #define SEC_ACTIVE_KEY (1<<4)
#define SEC_AUTH_MODE (1<<5) #define SEC_AUTH_MODE (1<<5)
#define SEC_UNICAST_GROUP (1<<6) #define SEC_UNICAST_GROUP (1<<6)
#define SEC_LEVEL (1<<7) #define SEC_LEVEL (1<<7)
#define SEC_ENABLED (1<<8) #define SEC_ENABLED (1<<8)
#define SEC_ENCRYPT (1<<9) #define SEC_ENCRYPT (1<<9)
...@@ -1113,28 +1123,28 @@ struct rtllib_device; ...@@ -1113,28 +1123,28 @@ struct rtllib_device;
#define SEC_LEVEL_2_CKIP 3 /* Level 1 + CKIP */ #define SEC_LEVEL_2_CKIP 3 /* Level 1 + CKIP */
#define SEC_LEVEL_3 4 /* Level 2 + CCMP */ #define SEC_LEVEL_3 4 /* Level 2 + CCMP */
#define SEC_ALG_NONE 0 #define SEC_ALG_NONE 0
#define SEC_ALG_WEP 1 #define SEC_ALG_WEP 1
#define SEC_ALG_TKIP 2 #define SEC_ALG_TKIP 2
#define SEC_ALG_CCMP 4 #define SEC_ALG_CCMP 4
#define WEP_KEYS 4 #define WEP_KEYS 4
#define WEP_KEY_LEN 13 #define WEP_KEY_LEN 13
#define SCM_KEY_LEN 32 #define SCM_KEY_LEN 32
#define SCM_TEMPORAL_KEY_LENGTH 16 #define SCM_TEMPORAL_KEY_LENGTH 16
struct rtllib_security { struct rtllib_security {
u16 active_key:2, u16 active_key:2,
enabled:1, enabled:1,
auth_mode:2, auth_mode:2,
auth_algo:4, auth_algo:4,
unicast_uses_group:1, unicast_uses_group:1,
encrypt:1; encrypt:1;
u8 key_sizes[WEP_KEYS]; u8 key_sizes[WEP_KEYS];
u8 keys[WEP_KEYS][SCM_KEY_LEN]; u8 keys[WEP_KEYS][SCM_KEY_LEN];
u8 level; u8 level;
u16 flags; u16 flags;
} __attribute__ ((packed)); } __packed;
/* /*
...@@ -1143,75 +1153,75 @@ struct rtllib_security { ...@@ -1143,75 +1153,75 @@ struct rtllib_security {
Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 |
|------|------|---------|---------|---------|------|---------|------| |------|------|---------|---------|---------|------|---------|------|
Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs | Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs |
| | tion | (BSSID) | | | ence | data | | | | tion | (BSSID) | | | ence | data | |
`-------------------------------------------------------------------' `-------------------------------------------------------------------'
Total: 28-2340 bytes Total: 28-2340 bytes
*/ */
/* Management Frame Information Element Types */ /* Management Frame Information Element Types */
enum rtllib_mfie { enum rtllib_mfie {
MFIE_TYPE_SSID = 0, MFIE_TYPE_SSID = 0,
MFIE_TYPE_RATES = 1, MFIE_TYPE_RATES = 1,
MFIE_TYPE_FH_SET = 2, MFIE_TYPE_FH_SET = 2,
MFIE_TYPE_DS_SET = 3, MFIE_TYPE_DS_SET = 3,
MFIE_TYPE_CF_SET = 4, MFIE_TYPE_CF_SET = 4,
MFIE_TYPE_TIM = 5, MFIE_TYPE_TIM = 5,
MFIE_TYPE_IBSS_SET = 6, MFIE_TYPE_IBSS_SET = 6,
MFIE_TYPE_COUNTRY = 7, MFIE_TYPE_COUNTRY = 7,
MFIE_TYPE_HOP_PARAMS = 8, MFIE_TYPE_HOP_PARAMS = 8,
MFIE_TYPE_HOP_TABLE = 9, MFIE_TYPE_HOP_TABLE = 9,
MFIE_TYPE_REQUEST = 10, MFIE_TYPE_REQUEST = 10,
MFIE_TYPE_CHALLENGE = 16, MFIE_TYPE_CHALLENGE = 16,
MFIE_TYPE_POWER_CONSTRAINT = 32, MFIE_TYPE_POWER_CONSTRAINT = 32,
MFIE_TYPE_POWER_CAPABILITY = 33, MFIE_TYPE_POWER_CAPABILITY = 33,
MFIE_TYPE_TPC_REQUEST = 34, MFIE_TYPE_TPC_REQUEST = 34,
MFIE_TYPE_TPC_REPORT = 35, MFIE_TYPE_TPC_REPORT = 35,
MFIE_TYPE_SUPP_CHANNELS = 36, MFIE_TYPE_SUPP_CHANNELS = 36,
MFIE_TYPE_CSA = 37, MFIE_TYPE_CSA = 37,
MFIE_TYPE_MEASURE_REQUEST = 38, MFIE_TYPE_MEASURE_REQUEST = 38,
MFIE_TYPE_MEASURE_REPORT = 39, MFIE_TYPE_MEASURE_REPORT = 39,
MFIE_TYPE_QUIET = 40, MFIE_TYPE_QUIET = 40,
MFIE_TYPE_IBSS_DFS = 41, MFIE_TYPE_IBSS_DFS = 41,
MFIE_TYPE_ERP = 42, MFIE_TYPE_ERP = 42,
MFIE_TYPE_HT_CAP= 45, MFIE_TYPE_HT_CAP = 45,
MFIE_TYPE_RSN = 48, MFIE_TYPE_RSN = 48,
MFIE_TYPE_RATES_EX = 50, MFIE_TYPE_RATES_EX = 50,
MFIE_TYPE_HT_INFO= 61, MFIE_TYPE_HT_INFO = 61,
MFIE_TYPE_AIRONET=133, MFIE_TYPE_AIRONET = 133,
MFIE_TYPE_GENERIC = 221, MFIE_TYPE_GENERIC = 221,
MFIE_TYPE_QOS_PARAMETER = 222, MFIE_TYPE_QOS_PARAMETER = 222,
}; };
/* Minimal header; can be used for passing 802.11 frames with sufficient /* Minimal header; can be used for passing 802.11 frames with sufficient
* information to determine what type of underlying data type is actually * information to determine what type of underlying data type is actually
* stored in the data. */ * stored in the data. */
struct rtllib_pspoll_hdr { struct rtllib_pspoll_hdr {
__le16 frame_ctl; __le16 frame_ctl;
__le16 aid; __le16 aid;
u8 bssid[ETH_ALEN]; u8 bssid[ETH_ALEN];
u8 ta[ETH_ALEN]; u8 ta[ETH_ALEN];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr { struct rtllib_hdr {
__le16 frame_ctl; __le16 frame_ctl;
__le16 duration_id; __le16 duration_id;
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_1addr { struct rtllib_hdr_1addr {
__le16 frame_ctl; __le16 frame_ctl;
__le16 duration_id; __le16 duration_id;
u8 addr1[ETH_ALEN]; u8 addr1[ETH_ALEN];
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_2addr { struct rtllib_hdr_2addr {
__le16 frame_ctl; __le16 frame_ctl;
__le16 duration_id; __le16 duration_id;
u8 addr1[ETH_ALEN]; u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN]; u8 addr2[ETH_ALEN];
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_3addr { struct rtllib_hdr_3addr {
__le16 frame_ctl; __le16 frame_ctl;
...@@ -1220,8 +1230,8 @@ struct rtllib_hdr_3addr { ...@@ -1220,8 +1230,8 @@ struct rtllib_hdr_3addr {
u8 addr2[ETH_ALEN]; u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN]; u8 addr3[ETH_ALEN];
__le16 seq_ctl; __le16 seq_ctl;
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_4addr { struct rtllib_hdr_4addr {
__le16 frame_ctl; __le16 frame_ctl;
...@@ -1231,8 +1241,8 @@ struct rtllib_hdr_4addr { ...@@ -1231,8 +1241,8 @@ struct rtllib_hdr_4addr {
u8 addr3[ETH_ALEN]; u8 addr3[ETH_ALEN];
__le16 seq_ctl; __le16 seq_ctl;
u8 addr4[ETH_ALEN]; u8 addr4[ETH_ALEN];
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_3addrqos { struct rtllib_hdr_3addrqos {
__le16 frame_ctl; __le16 frame_ctl;
...@@ -1243,7 +1253,7 @@ struct rtllib_hdr_3addrqos { ...@@ -1243,7 +1253,7 @@ struct rtllib_hdr_3addrqos {
__le16 seq_ctl; __le16 seq_ctl;
__le16 qos_ctl; __le16 qos_ctl;
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_hdr_4addrqos { struct rtllib_hdr_4addrqos {
__le16 frame_ctl; __le16 frame_ctl;
...@@ -1255,13 +1265,13 @@ struct rtllib_hdr_4addrqos { ...@@ -1255,13 +1265,13 @@ struct rtllib_hdr_4addrqos {
u8 addr4[ETH_ALEN]; u8 addr4[ETH_ALEN];
__le16 qos_ctl; __le16 qos_ctl;
u8 payload[0]; u8 payload[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_info_element { struct rtllib_info_element {
u8 id; u8 id;
u8 len; u8 len;
u8 data[0]; u8 data[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_authentication { struct rtllib_authentication {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
...@@ -1270,33 +1280,33 @@ struct rtllib_authentication { ...@@ -1270,33 +1280,33 @@ struct rtllib_authentication {
__le16 status; __le16 status;
/*challenge*/ /*challenge*/
struct rtllib_info_element info_element[0]; struct rtllib_info_element info_element[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_disauth { struct rtllib_disauth {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
__le16 reason; __le16 reason;
} __attribute__ ((packed)); } __packed;
struct rtllib_disassoc { struct rtllib_disassoc {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
__le16 reason; __le16 reason;
} __attribute__ ((packed)); } __packed;
struct rtllib_probe_request { struct rtllib_probe_request {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
/* SSID, supported rates */ /* SSID, supported rates */
struct rtllib_info_element info_element[0]; struct rtllib_info_element info_element[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_probe_response { struct rtllib_probe_response {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
u32 time_stamp[2]; u32 time_stamp[2];
__le16 beacon_interval; __le16 beacon_interval;
__le16 capability; __le16 capability;
/* SSID, supported rates, FH params, DS params, /* SSID, supported rates, FH params, DS params,
* CF params, IBSS params, TIM (if beacon), RSN */ * CF params, IBSS params, TIM (if beacon), RSN */
struct rtllib_info_element info_element[0]; struct rtllib_info_element info_element[0];
} __attribute__ ((packed)); } __packed;
/* Alias beacon for probe_response */ /* Alias beacon for probe_response */
#define rtllib_beacon rtllib_probe_response #define rtllib_beacon rtllib_probe_response
...@@ -1306,8 +1316,8 @@ struct rtllib_assoc_request_frame { ...@@ -1306,8 +1316,8 @@ struct rtllib_assoc_request_frame {
__le16 capability; __le16 capability;
__le16 listen_interval; __le16 listen_interval;
/* SSID, supported rates, RSN */ /* SSID, supported rates, RSN */
struct rtllib_info_element info_element[0]; struct rtllib_info_element info_element[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_reassoc_request_frame { struct rtllib_reassoc_request_frame {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
...@@ -1315,8 +1325,8 @@ struct rtllib_reassoc_request_frame { ...@@ -1315,8 +1325,8 @@ struct rtllib_reassoc_request_frame {
__le16 listen_interval; __le16 listen_interval;
u8 current_ap[ETH_ALEN]; u8 current_ap[ETH_ALEN];
/* SSID, supported rates, RSN */ /* SSID, supported rates, RSN */
struct rtllib_info_element info_element[0]; struct rtllib_info_element info_element[0];
} __attribute__ ((packed)); } __packed;
struct rtllib_assoc_response_frame { struct rtllib_assoc_response_frame {
struct rtllib_hdr_3addr header; struct rtllib_hdr_3addr header;
...@@ -1324,7 +1334,7 @@ struct rtllib_assoc_response_frame { ...@@ -1324,7 +1334,7 @@ struct rtllib_assoc_response_frame {
__le16 status; __le16 status;
__le16 aid; __le16 aid;
struct rtllib_info_element info_element[0]; /* supported rates */ struct rtllib_info_element info_element[0]; /* supported rates */
} __attribute__ ((packed)); } __packed;
struct rtllib_txb { struct rtllib_txb {
u8 nr_frags; u8 nr_frags;
...@@ -1341,7 +1351,7 @@ struct rtllib_txb { ...@@ -1341,7 +1351,7 @@ struct rtllib_txb {
struct rtllib_drv_agg_txb { struct rtllib_drv_agg_txb {
u8 nr_drv_agg_frames; u8 nr_drv_agg_frames;
struct sk_buff *tx_agg_frames[MAX_TX_AGG_COUNT]; struct sk_buff *tx_agg_frames[MAX_TX_AGG_COUNT];
}__attribute__((packed)); } __packed;
#define MAX_SUBFRAME_COUNT 64 #define MAX_SUBFRAME_COUNT 64
struct rtllib_rxb { struct rtllib_rxb {
...@@ -1349,7 +1359,7 @@ struct rtllib_rxb { ...@@ -1349,7 +1359,7 @@ struct rtllib_rxb {
struct sk_buff *subframes[MAX_SUBFRAME_COUNT]; struct sk_buff *subframes[MAX_SUBFRAME_COUNT];
u8 dst[ETH_ALEN]; u8 dst[ETH_ALEN];
u8 src[ETH_ALEN]; u8 src[ETH_ALEN];
}__attribute__((packed)); } __packed;
union frameqos { union frameqos {
u16 shortdata; u16 shortdata;
...@@ -1360,7 +1370,7 @@ union frameqos { ...@@ -1360,7 +1370,7 @@ union frameqos {
u16 ack_policy:2; u16 ack_policy:2;
u16 reserved:1; u16 reserved:1;
u16 txop:8; u16 txop:8;
}field; } field;
}; };
/* SWEEP TABLE ENTRIES NUMBER*/ /* SWEEP TABLE ENTRIES NUMBER*/
...@@ -1370,15 +1380,15 @@ union frameqos { ...@@ -1370,15 +1380,15 @@ union frameqos {
* only use 8, and then use extended rates for the remaining supported * only use 8, and then use extended rates for the remaining supported
* rates. Other APs, however, stick all of their supported rates on the * rates. Other APs, however, stick all of their supported rates on the
* main rates information element... */ * main rates information element... */
#define MAX_RATES_LENGTH ((u8)12) #define MAX_RATES_LENGTH ((u8)12)
#define MAX_RATES_EX_LENGTH ((u8)16) #define MAX_RATES_EX_LENGTH ((u8)16)
#define MAX_NETWORK_COUNT 96 #define MAX_NETWORK_COUNT 96
#define MAX_CHANNEL_NUMBER 161 #define MAX_CHANNEL_NUMBER 161
#define RTLLIB_SOFTMAC_SCAN_TIME 100 #define RTLLIB_SOFTMAC_SCAN_TIME 100
#define RTLLIB_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2) #define RTLLIB_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2)
#define CRC_LENGTH 4U #define CRC_LENGTH 4U
#define MAX_WPA_IE_LEN 64 #define MAX_WPA_IE_LEN 64
#define MAX_WZC_IE_LEN 256 #define MAX_WZC_IE_LEN 256
...@@ -1390,69 +1400,69 @@ union frameqos { ...@@ -1390,69 +1400,69 @@ union frameqos {
/* QoS structure */ /* QoS structure */
#define NETWORK_HAS_QOS_PARAMETERS (1<<3) #define NETWORK_HAS_QOS_PARAMETERS (1<<3)
#define NETWORK_HAS_QOS_INFORMATION (1<<4) #define NETWORK_HAS_QOS_INFORMATION (1<<4)
#define NETWORK_HAS_QOS_MASK (NETWORK_HAS_QOS_PARAMETERS | \ #define NETWORK_HAS_QOS_MASK (NETWORK_HAS_QOS_PARAMETERS | \
NETWORK_HAS_QOS_INFORMATION) NETWORK_HAS_QOS_INFORMATION)
/* 802.11h */ /* 802.11h */
#define NETWORK_HAS_POWER_CONSTRAINT (1<<5) #define NETWORK_HAS_POWER_CONSTRAINT (1<<5)
#define NETWORK_HAS_CSA (1<<6) #define NETWORK_HAS_CSA (1<<6)
#define NETWORK_HAS_QUIET (1<<7) #define NETWORK_HAS_QUIET (1<<7)
#define NETWORK_HAS_IBSS_DFS (1<<8) #define NETWORK_HAS_IBSS_DFS (1<<8)
#define NETWORK_HAS_TPC_REPORT (1<<9) #define NETWORK_HAS_TPC_REPORT (1<<9)
#define NETWORK_HAS_ERP_VALUE (1<<10) #define NETWORK_HAS_ERP_VALUE (1<<10)
#define QOS_QUEUE_NUM 4 #define QOS_QUEUE_NUM 4
#define QOS_OUI_LEN 3 #define QOS_OUI_LEN 3
#define QOS_OUI_TYPE 2 #define QOS_OUI_TYPE 2
#define QOS_ELEMENT_ID 221 #define QOS_ELEMENT_ID 221
#define QOS_OUI_INFO_SUB_TYPE 0 #define QOS_OUI_INFO_SUB_TYPE 0
#define QOS_OUI_PARAM_SUB_TYPE 1 #define QOS_OUI_PARAM_SUB_TYPE 1
#define QOS_VERSION_1 1 #define QOS_VERSION_1 1
#define QOS_AIFSN_MIN_VALUE 2 #define QOS_AIFSN_MIN_VALUE 2
#if 1
struct rtllib_qos_information_element { struct rtllib_qos_information_element {
u8 elementID; u8 elementID;
u8 length; u8 length;
u8 qui[QOS_OUI_LEN]; u8 qui[QOS_OUI_LEN];
u8 qui_type; u8 qui_type;
u8 qui_subtype; u8 qui_subtype;
u8 version; u8 version;
u8 ac_info; u8 ac_info;
} __attribute__ ((packed)); } __packed;
struct rtllib_qos_ac_parameter { struct rtllib_qos_ac_parameter {
u8 aci_aifsn; u8 aci_aifsn;
u8 ecw_min_max; u8 ecw_min_max;
__le16 tx_op_limit; __le16 tx_op_limit;
} __attribute__ ((packed)); } __packed;
struct rtllib_qos_parameter_info { struct rtllib_qos_parameter_info {
struct rtllib_qos_information_element info_element; struct rtllib_qos_information_element info_element;
u8 reserved; u8 reserved;
struct rtllib_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM]; struct rtllib_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM];
} __attribute__ ((packed)); } __packed;
struct rtllib_qos_parameters { struct rtllib_qos_parameters {
__le16 cw_min[QOS_QUEUE_NUM]; __le16 cw_min[QOS_QUEUE_NUM];
__le16 cw_max[QOS_QUEUE_NUM]; __le16 cw_max[QOS_QUEUE_NUM];
u8 aifs[QOS_QUEUE_NUM]; u8 aifs[QOS_QUEUE_NUM];
u8 flag[QOS_QUEUE_NUM]; u8 flag[QOS_QUEUE_NUM];
__le16 tx_op_limit[QOS_QUEUE_NUM]; __le16 tx_op_limit[QOS_QUEUE_NUM];
} __attribute__ ((packed)); } __packed;
struct rtllib_qos_data { struct rtllib_qos_data {
struct rtllib_qos_parameters parameters; struct rtllib_qos_parameters parameters;
unsigned int wmm_acm; unsigned int wmm_acm;
int active; int active;
int supported; int supported;
u8 param_count; u8 param_count;
u8 old_param_count; u8 old_param_count;
}; };
struct rtllib_tim_parameters { struct rtllib_tim_parameters {
u8 tim_count; u8 tim_count;
u8 tim_period; u8 tim_period;
} __attribute__ ((packed)); } __packed;
struct rtllib_wmm_ac_param { struct rtllib_wmm_ac_param {
u8 ac_aci_acm_aifsn; u8 ac_aci_acm_aifsn;
...@@ -1464,7 +1474,7 @@ struct rtllib_wmm_ts_info { ...@@ -1464,7 +1474,7 @@ struct rtllib_wmm_ts_info {
u8 ac_dir_tid; u8 ac_dir_tid;
u8 ac_up_psb; u8 ac_up_psb;
u8 reserved; u8 reserved;
} __attribute__ ((packed)); } __packed;
struct rtllib_wmm_tspec_elem { struct rtllib_wmm_tspec_elem {
struct rtllib_wmm_ts_info ts_info; struct rtllib_wmm_ts_info ts_info;
...@@ -1483,8 +1493,8 @@ struct rtllib_wmm_tspec_elem { ...@@ -1483,8 +1493,8 @@ struct rtllib_wmm_tspec_elem {
u32 min_phy_rate; u32 min_phy_rate;
u16 surp_band_allow; u16 surp_band_allow;
u16 medium_time; u16 medium_time;
}__attribute__((packed)); } __packed;
#endif
enum eap_type { enum eap_type {
EAP_PACKET = 0, EAP_PACKET = 0,
EAPOL_START, EAPOL_START,
...@@ -1503,15 +1513,17 @@ static const char *eap_types[] = { ...@@ -1503,15 +1513,17 @@ static const char *eap_types[] = {
static inline const char *eap_get_type(int type) static inline const char *eap_get_type(int type)
{ {
return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type]; return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" :
eap_types[type];
} }
static inline u8 Frame_QoSTID(u8* buf) static inline u8 Frame_QoSTID(u8 *buf)
{ {
struct rtllib_hdr_3addr *hdr; struct rtllib_hdr_3addr *hdr;
u16 fc; u16 fc;
hdr = (struct rtllib_hdr_3addr *)buf; hdr = (struct rtllib_hdr_3addr *)buf;
fc = le16_to_cpu(hdr->frame_ctl); fc = le16_to_cpu(hdr->frame_ctl);
return (u8)((union frameqos *)(buf + (((fc & RTLLIB_FCTL_TODS)&&(fc & RTLLIB_FCTL_FROMDS))? 30 : 24)))->field.tid; return (u8)((union frameqos *)(buf + (((fc & RTLLIB_FCTL_TODS) &&
(fc & RTLLIB_FCTL_FROMDS)) ? 30 : 24)))->field.tid;
} }
...@@ -1521,9 +1533,9 @@ struct eapol { ...@@ -1521,9 +1533,9 @@ struct eapol {
u8 version; u8 version;
u8 type; u8 type;
u16 length; u16 length;
} __attribute__ ((packed)); } __packed;
struct rtllib_softmac_stats{ struct rtllib_softmac_stats {
unsigned int rx_ass_ok; unsigned int rx_ass_ok;
unsigned int rx_ass_err; unsigned int rx_ass_err;
unsigned int rx_probe_rq; unsigned int rx_probe_rq;
...@@ -1551,7 +1563,7 @@ struct rtllib_softmac_stats{ ...@@ -1551,7 +1563,7 @@ struct rtllib_softmac_stats{
struct rtllib_info_element_hdr { struct rtllib_info_element_hdr {
u8 id; u8 id;
u8 len; u8 len;
} __attribute__ ((packed)); } __packed;
/* /*
* These are the data types that can make up management packets * These are the data types that can make up management packets
...@@ -1564,7 +1576,7 @@ struct rtllib_info_element_hdr { ...@@ -1564,7 +1576,7 @@ struct rtllib_info_element_hdr {
u16 listen_interval; u16 listen_interval;
struct { struct {
u16 association_id:14, reserved:2; u16 association_id:14, reserved:2;
} __attribute__ ((packed)); } __packed;
u32 time_stamp[2]; u32 time_stamp[2];
u16 reason; u16 reason;
u16 status; u16 status;
...@@ -1611,13 +1623,14 @@ enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame}; ...@@ -1611,13 +1623,14 @@ enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame};
0) 0)
#define ETHER_ADDR_LEN 6 /* length of an Ethernet address */ #define ETHER_ADDR_LEN 6 /* length of an Ethernet address */
#define ETHERNET_HEADER_SIZE 14 /* length of two Ethernet address plus ether type*/ #define ETHERNET_HEADER_SIZE 14 /* length of two Ethernet address
* plus ether type*/
struct ether_header { struct ether_header {
u8 ether_dhost[ETHER_ADDR_LEN]; u8 ether_dhost[ETHER_ADDR_LEN];
u8 ether_shost[ETHER_ADDR_LEN]; u8 ether_shost[ETHER_ADDR_LEN];
u16 ether_type; u16 ether_type;
} __attribute__((packed)); } __packed;
#ifndef ETHERTYPE_PAE #ifndef ETHERTYPE_PAE
#define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */ #define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */
...@@ -1676,13 +1689,13 @@ struct rtllib_network { ...@@ -1676,13 +1689,13 @@ struct rtllib_network {
u8 wzc_ie[MAX_WZC_IE_LEN]; u8 wzc_ie[MAX_WZC_IE_LEN];
size_t wzc_ie_len; size_t wzc_ie_len;
struct rtllib_tim_parameters tim; struct rtllib_tim_parameters tim;
u8 dtim_period; u8 dtim_period;
u8 dtim_data; u8 dtim_data;
u64 last_dtim_sta_time; u64 last_dtim_sta_time;
u8 wmm_info; u8 wmm_info;
struct rtllib_wmm_ac_param wmm_param[4]; struct rtllib_wmm_ac_param wmm_param[4];
u8 Turbo_Enable; u8 Turbo_Enable;
u16 CountryIeLen; u16 CountryIeLen;
u8 CountryIeBuf[MAX_IE_LEN]; u8 CountryIeBuf[MAX_IE_LEN];
...@@ -1743,13 +1756,13 @@ enum rtllib_state { ...@@ -1743,13 +1756,13 @@ enum rtllib_state {
}; };
#else #else
enum rtllib_state { enum rtllib_state {
RTLLIB_UNINITIALIZED = 0, RTLLIB_UNINITIALIZED = 0,
RTLLIB_INITIALIZED, RTLLIB_INITIALIZED,
RTLLIB_ASSOCIATING, RTLLIB_ASSOCIATING,
RTLLIB_ASSOCIATED, RTLLIB_ASSOCIATED,
RTLLIB_AUTHENTICATING, RTLLIB_AUTHENTICATING,
RTLLIB_AUTHENTICATED, RTLLIB_AUTHENTICATED,
RTLLIB_SHUTDOWN RTLLIB_SHUTDOWN
}; };
#endif #endif
...@@ -1763,14 +1776,16 @@ enum rtllib_state { ...@@ -1763,14 +1776,16 @@ enum rtllib_state {
#define RTLLIB_24GHZ_MIN_CHANNEL 1 #define RTLLIB_24GHZ_MIN_CHANNEL 1
#define RTLLIB_24GHZ_MAX_CHANNEL 14 #define RTLLIB_24GHZ_MAX_CHANNEL 14
#define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \ #define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \
RTLLIB_24GHZ_MIN_CHANNEL + 1) RTLLIB_24GHZ_MIN_CHANNEL + 1)
#define RTLLIB_52GHZ_MIN_CHANNEL 34 #define RTLLIB_52GHZ_MIN_CHANNEL 34
#define RTLLIB_52GHZ_MAX_CHANNEL 165 #define RTLLIB_52GHZ_MAX_CHANNEL 165
#define RTLLIB_52GHZ_CHANNELS (RTLLIB_52GHZ_MAX_CHANNEL - \ #define RTLLIB_52GHZ_CHANNELS (RTLLIB_52GHZ_MAX_CHANNEL - \
RTLLIB_52GHZ_MIN_CHANNEL + 1) RTLLIB_52GHZ_MIN_CHANNEL + 1)
#ifndef eqMacAddr #ifndef eqMacAddr
#define eqMacAddr(a,b) ( ((a)[0]==(b)[0] && (a)[1]==(b)[1] && (a)[2]==(b)[2] && (a)[3]==(b)[3] && (a)[4]==(b)[4] && (a)[5]==(b)[5]) ? 1:0 ) #define eqMacAddr(a, b) \
(((a)[0] == (b)[0] && (a)[1] == (b)[1] && (a)[2] == (b)[2] && \
(a)[3] == (b)[3] && (a)[4] == (b)[4] && (a)[5] == (b)[5]) ? 1 : 0)
#endif #endif
struct tx_pending { struct tx_pending {
int frag; int frag;
...@@ -1791,7 +1806,7 @@ struct bandwidth_autoswitch { ...@@ -1791,7 +1806,7 @@ struct bandwidth_autoswitch {
struct rx_reorder_entry { struct rx_reorder_entry {
struct list_head List; struct list_head List;
u16 SeqNum; u16 SeqNum;
struct rtllib_rxb* prxb; struct rtllib_rxb *prxb;
}; };
enum fsync_state { enum fsync_state {
Default_Fsync, Default_Fsync,
...@@ -1936,7 +1951,7 @@ enum country_code_type { ...@@ -1936,7 +1951,7 @@ enum country_code_type {
}; };
enum scan_op_backup_opt { enum scan_op_backup_opt {
SCAN_OPT_BACKUP=0, SCAN_OPT_BACKUP = 0,
SCAN_OPT_RESTORE, SCAN_OPT_RESTORE,
SCAN_OPT_MAX SCAN_OPT_MAX
}; };
...@@ -1949,10 +1964,10 @@ enum fw_cmd_io_type { ...@@ -1949,10 +1964,10 @@ enum fw_cmd_io_type {
FW_CMD_HIGH_PWR_ENABLE = 4, FW_CMD_HIGH_PWR_ENABLE = 4,
FW_CMD_HIGH_PWR_DISABLE = 5, FW_CMD_HIGH_PWR_DISABLE = 5,
FW_CMD_RA_RESET = 6, FW_CMD_RA_RESET = 6,
FW_CMD_RA_ACTIVE= 7, FW_CMD_RA_ACTIVE = 7,
FW_CMD_RA_REFRESH_N= 8, FW_CMD_RA_REFRESH_N = 8,
FW_CMD_RA_REFRESH_BG= 9, FW_CMD_RA_REFRESH_BG = 9,
FW_CMD_RA_INIT= 10, FW_CMD_RA_INIT = 10,
FW_CMD_IQK_ENABLE = 11, FW_CMD_IQK_ENABLE = 11,
FW_CMD_TXPWR_TRACK_ENABLE = 12, FW_CMD_TXPWR_TRACK_ENABLE = 12,
FW_CMD_TXPWR_TRACK_DISABLE = 13, FW_CMD_TXPWR_TRACK_DISABLE = 13,
...@@ -2046,17 +2061,17 @@ enum ratr_table_mode_8192s { ...@@ -2046,17 +2061,17 @@ enum ratr_table_mode_8192s {
#define NUM_PMKID_CACHE 16 #define NUM_PMKID_CACHE 16
struct rt_pmkid_list { struct rt_pmkid_list {
u8 bUsed; u8 bUsed;
u8 Bssid[6]; u8 Bssid[6];
u8 PMKID[16]; u8 PMKID[16];
u8 SsidBuf[33]; u8 SsidBuf[33];
u8* ssid_octet; u8 *ssid_octet;
u16 ssid_length; u16 ssid_length;
}; };
struct rt_intel_promisc_mode { struct rt_intel_promisc_mode {
bool bPromiscuousOn; bool bPromiscuousOn;
bool bFilterSourceStationFrame; bool bFilterSourceStationFrame;
}; };
...@@ -2070,14 +2085,14 @@ struct rt_intel_promisc_mode { ...@@ -2070,14 +2085,14 @@ struct rt_intel_promisc_mode {
enum { enum {
NO_USE = 0, NO_USE = 0,
USED = 1, USED = 1,
HW_SEC = 2, HW_SEC = 2,
SW_SEC = 3, SW_SEC = 3,
}; };
enum { enum {
LPS_IS_WAKE = 0, LPS_IS_WAKE = 0,
LPS_IS_SLEEP = 1, LPS_IS_SLEEP = 1,
LPS_WAIT_NULL_DATA_SEND =2, LPS_WAIT_NULL_DATA_SEND = 2,
}; };
struct rtllib_device { struct rtllib_device {
...@@ -2113,7 +2128,7 @@ struct rtllib_device { ...@@ -2113,7 +2128,7 @@ struct rtllib_device {
u8 hwsec_active; u8 hwsec_active;
bool is_silent_reset; bool is_silent_reset;
bool force_mic_error; bool force_mic_error;
bool is_roaming; bool is_roaming;
bool ieee_up; bool ieee_up;
bool cannot_notify; bool cannot_notify;
...@@ -2135,10 +2150,10 @@ struct rtllib_device { ...@@ -2135,10 +2150,10 @@ struct rtllib_device {
u8 Regdot11TxHTOperationalRateSet[16]; u8 Regdot11TxHTOperationalRateSet[16];
u8 dot11HTOperationalRateSet[16]; u8 dot11HTOperationalRateSet[16];
u8 RegHTSuppRateSet[16]; u8 RegHTSuppRateSet[16];
u8 HTCurrentOperaRate; u8 HTCurrentOperaRate;
u8 HTHighestOperaRate; u8 HTHighestOperaRate;
u8 MinSpaceCfg; u8 MinSpaceCfg;
u8 MaxMssDensity; u8 MaxMssDensity;
u8 bTxDisableRateFallBack; u8 bTxDisableRateFallBack;
u8 bTxUseDriverAssingedRate; u8 bTxUseDriverAssingedRate;
u8 bTxEnableFwCalcDur; u8 bTxEnableFwCalcDur;
...@@ -2193,15 +2208,15 @@ struct rtllib_device { ...@@ -2193,15 +2208,15 @@ struct rtllib_device {
int host_encrypt; int host_encrypt;
int host_encrypt_msdu; int host_encrypt_msdu;
int host_decrypt; int host_decrypt;
/* host performs multicast decryption */ /* host performs multicast decryption */
int host_mc_decrypt; int host_mc_decrypt;
/* host should strip IV and ICV from protected frames */ /* host should strip IV and ICV from protected frames */
/* meaningful only when hardware decryption is being used */ /* meaningful only when hardware decryption is being used */
int host_strip_iv_icv; int host_strip_iv_icv;
int host_open_frag; int host_open_frag;
int host_build_iv; int host_build_iv;
int ieee802_1x; /* is IEEE 802.1X used */ int ieee802_1x; /* is IEEE 802.1X used */
/* WPA data */ /* WPA data */
...@@ -2224,7 +2239,7 @@ struct rtllib_device { ...@@ -2224,7 +2239,7 @@ struct rtllib_device {
int tx_keyidx; /* default TX key index (crypt[tx_keyidx]) */ int tx_keyidx; /* default TX key index (crypt[tx_keyidx]) */
struct sw_cam_table swcamtable[TOTAL_CAM_ENTRY]; struct sw_cam_table swcamtable[TOTAL_CAM_ENTRY];
struct timer_list crypt_deinit_timer; struct timer_list crypt_deinit_timer;
int crypt_quiesced; int crypt_quiesced;
int bcrx_sta_key; /* use individual keys to override default keys even int bcrx_sta_key; /* use individual keys to override default keys even
* with RX of broad/multicast frames */ * with RX of broad/multicast frames */
...@@ -2238,10 +2253,10 @@ struct rtllib_device { ...@@ -2238,10 +2253,10 @@ struct rtllib_device {
#define DEFAULT_RTS_THRESHOLD 2346U #define DEFAULT_RTS_THRESHOLD 2346U
#define MIN_RTS_THRESHOLD 1 #define MIN_RTS_THRESHOLD 1
#define MAX_RTS_THRESHOLD 2346U #define MAX_RTS_THRESHOLD 2346U
u16 rts; /* RTS threshold */ u16 rts; /* RTS threshold */
/* Association info */ /* Association info */
u8 bssid[ETH_ALEN]; u8 bssid[ETH_ALEN];
/* This stores infos for the current network. /* This stores infos for the current network.
* Either the network we are associated in INFRASTRUCTURE * Either the network we are associated in INFRASTRUCTURE
...@@ -2260,20 +2275,20 @@ struct rtllib_device { ...@@ -2260,20 +2275,20 @@ struct rtllib_device {
int mode; /* A, B, G */ int mode; /* A, B, G */
int modulation; /* CCK, OFDM */ int modulation; /* CCK, OFDM */
int freq_band; /* 2.4Ghz, 5.2Ghz, Mixed */ int freq_band; /* 2.4Ghz, 5.2Ghz, Mixed */
int abg_true; /* ABG flag */ int abg_true; /* ABG flag */
/* used for forcing the ibss workqueue to terminate /* used for forcing the ibss workqueue to terminate
* without wait for the syncro scan to terminate * without wait for the syncro scan to terminate
*/ */
short sync_scan_hurryup; short sync_scan_hurryup;
u16 scan_watch_dog; u16 scan_watch_dog;
int perfect_rssi; int perfect_rssi;
int worst_rssi; int worst_rssi;
u16 prev_seq_ctl; /* used to drop duplicate frames */ u16 prev_seq_ctl; /* used to drop duplicate frames */
/* map of allowed channels. 0 is dummy */ /* map of allowed channels. 0 is dummy */
void* pDot11dInfo; void *pDot11dInfo;
bool bGlobalDomain; bool bGlobalDomain;
u8 active_channel_map[MAX_CHANNEL_NUMBER+1]; u8 active_channel_map[MAX_CHANNEL_NUMBER+1];
...@@ -2417,11 +2432,11 @@ struct rtllib_device { ...@@ -2417,11 +2432,11 @@ struct rtllib_device {
struct net_device *dev); struct net_device *dev);
int (*reset_port)(struct net_device *dev); int (*reset_port)(struct net_device *dev);
int (*is_queue_full) (struct net_device * dev, int pri); int (*is_queue_full)(struct net_device *dev, int pri);
int (*handle_management) (struct net_device * dev, int (*handle_management)(struct net_device *dev,
struct rtllib_network * network, u16 type); struct rtllib_network *network, u16 type);
int (*is_qos_active) (struct net_device *dev, struct sk_buff *skb); int (*is_qos_active)(struct net_device *dev, struct sk_buff *skb);
/* Softmac-generated frames (mamagement) are TXed via this /* Softmac-generated frames (mamagement) are TXed via this
* callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is * callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is
...@@ -2440,7 +2455,7 @@ struct rtllib_device { ...@@ -2440,7 +2455,7 @@ struct rtllib_device {
* This function can't sleep. * This function can't sleep.
*/ */
void (*softmac_data_hard_start_xmit)(struct sk_buff *skb, void (*softmac_data_hard_start_xmit)(struct sk_buff *skb,
struct net_device *dev,int rate); struct net_device *dev, int rate);
/* stops the HW queue for DATA frames. Useful to avoid /* stops the HW queue for DATA frames. Useful to avoid
* waste time to TX data frame when we are reassociating * waste time to TX data frame when we are reassociating
...@@ -2455,7 +2470,7 @@ struct rtllib_device { ...@@ -2455,7 +2470,7 @@ struct rtllib_device {
* This function can sleep. the driver should ensure * This function can sleep. the driver should ensure
* the radio has been swithced before return. * the radio has been swithced before return.
*/ */
void (*set_chan)(struct net_device *dev,short ch); void (*set_chan)(struct net_device *dev, short ch);
/* These are not used if the ieee stack takes care of /* These are not used if the ieee stack takes care of
* scanning (IEEE_SOFTMAC_SCAN feature set). * scanning (IEEE_SOFTMAC_SCAN feature set).
...@@ -2492,41 +2507,55 @@ struct rtllib_device { ...@@ -2492,41 +2507,55 @@ struct rtllib_device {
* stop_send_bacons is NOT guaranteed to be called only * stop_send_bacons is NOT guaranteed to be called only
* after start_send_beacons. * after start_send_beacons.
*/ */
void (*start_send_beacons) (struct net_device *dev); void (*start_send_beacons)(struct net_device *dev);
void (*stop_send_beacons) (struct net_device *dev); void (*stop_send_beacons)(struct net_device *dev);
/* power save mode related */ /* power save mode related */
void (*sta_wake_up) (struct net_device *dev); void (*sta_wake_up)(struct net_device *dev);
void (*enter_sleep_state) (struct net_device *dev, u64 time); void (*enter_sleep_state)(struct net_device *dev, u64 time);
short (*ps_is_queue_empty) (struct net_device *dev); short (*ps_is_queue_empty)(struct net_device *dev);
int (*handle_beacon) (struct net_device * dev, struct rtllib_beacon * beacon, struct rtllib_network * network); int (*handle_beacon)(struct net_device *dev,
int (*handle_assoc_response) (struct net_device * dev, struct rtllib_assoc_response_frame * resp, struct rtllib_network * network); struct rtllib_beacon *beacon,
struct rtllib_network *network);
int (*handle_assoc_response)(struct net_device *dev,
struct rtllib_assoc_response_frame *resp,
struct rtllib_network *network);
/* check whether Tx hw resouce available */ /* check whether Tx hw resouce available */
short (*check_nic_enough_desc)(struct net_device *dev, int queue_index); short (*check_nic_enough_desc)(struct net_device *dev, int queue_index);
short (*get_nic_desc_num)(struct net_device *dev, int queue_index); short (*get_nic_desc_num)(struct net_device *dev, int queue_index);
void (*SetBWModeHandler)(struct net_device *dev, enum ht_channel_width Bandwidth, enum ht_extchnl_offset Offset); void (*SetBWModeHandler)(struct net_device *dev,
bool (*GetNmodeSupportBySecCfg)(struct net_device* dev); enum ht_channel_width Bandwidth,
void (*SetWirelessMode)(struct net_device* dev, u8 wireless_mode); enum ht_extchnl_offset Offset);
bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device* dev); bool (*GetNmodeSupportBySecCfg)(struct net_device *dev);
void (*SetWirelessMode)(struct net_device *dev, u8 wireless_mode);
bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device *dev);
u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee); u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee);
void (*HalUsbRxAggrHandler)(struct net_device *dev, bool Value); void (*HalUsbRxAggrHandler)(struct net_device *dev, bool Value);
void (*InitialGainHandler)(struct net_device *dev, u8 Operation); void (*InitialGainHandler)(struct net_device *dev, u8 Operation);
bool (*SetFwCmdHandler)(struct net_device *dev, enum fw_cmd_io_type FwCmdIO); bool (*SetFwCmdHandler)(struct net_device *dev,
void (*UpdateHalRAMaskHandler)(struct net_device* dev, bool bMulticast, u8 macId, u8 MimoPs, u8 WirelessMode, u8 bCurTxBW40MHz, u8 rssi_level); enum fw_cmd_io_type FwCmdIO);
void (*UpdateBeaconInterruptHandler)(struct net_device* dev, bool start); void (*UpdateHalRAMaskHandler)(struct net_device *dev, bool bMulticast,
void (*UpdateInterruptMaskHandler)(struct net_device* dev, u32 AddMSR, u32 RemoveMSR); u8 macId, u8 MimoPs, u8 WirelessMode,
u8 bCurTxBW40MHz, u8 rssi_level);
void (*UpdateBeaconInterruptHandler)(struct net_device *dev,
bool start);
void (*UpdateInterruptMaskHandler)(struct net_device *dev, u32 AddMSR,
u32 RemoveMSR);
u16 (*rtl_11n_user_show_rates)(struct net_device *dev); u16 (*rtl_11n_user_show_rates)(struct net_device *dev);
void (*ScanOperationBackupHandler)(struct net_device *dev, u8 Operation); void (*ScanOperationBackupHandler)(struct net_device *dev,
void (*LedControlHandler)(struct net_device * dev, enum led_ctl_mode LedAction); u8 Operation);
void (*SetHwRegHandler)(struct net_device *dev,u8 variable,u8* val); void (*LedControlHandler)(struct net_device *dev,
void (*GetHwRegHandler)(struct net_device *dev,u8 variable,u8* val); enum led_ctl_mode LedAction);
void (*SetHwRegHandler)(struct net_device *dev, u8 variable, u8 *val);
void (*AllowAllDestAddrHandler)(struct net_device *dev, bool bAllowAllDA, bool WriteIntoReg); void (*GetHwRegHandler)(struct net_device *dev, u8 variable, u8 *val);
void (*rtllib_ips_leave_wq) (struct net_device *dev); void (*AllowAllDestAddrHandler)(struct net_device *dev,
void (*rtllib_ips_leave)(struct net_device *dev); bool bAllowAllDA, bool WriteIntoReg);
void (*rtllib_ips_leave_wq) (struct net_device *dev);
void (*rtllib_ips_leave)(struct net_device *dev);
void (*LeisurePSLeave)(struct net_device *dev); void (*LeisurePSLeave)(struct net_device *dev);
void (*rtllib_rfkill_poll)(struct net_device *dev); void (*rtllib_rfkill_poll)(struct net_device *dev);
...@@ -2535,9 +2564,9 @@ struct rtllib_device { ...@@ -2535,9 +2564,9 @@ struct rtllib_device {
u8 priv[0]; u8 priv[0];
}; };
#define IEEE_A (1<<0) #define IEEE_A (1<<0)
#define IEEE_B (1<<1) #define IEEE_B (1<<1)
#define IEEE_G (1<<2) #define IEEE_G (1<<2)
#define IEEE_N_24G (1<<4) #define IEEE_N_24G (1<<4)
#define IEEE_N_5G (1<<5) #define IEEE_N_5G (1<<5)
#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G) #define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
...@@ -2650,45 +2679,45 @@ extern inline int rtllib_get_hdrlen(u16 fc) ...@@ -2650,45 +2679,45 @@ extern inline int rtllib_get_hdrlen(u16 fc)
static inline u8 *rtllib_get_payload(struct rtllib_hdr *hdr) static inline u8 *rtllib_get_payload(struct rtllib_hdr *hdr)
{ {
switch (rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl))) { switch (rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl))) {
case RTLLIB_1ADDR_LEN: case RTLLIB_1ADDR_LEN:
return ((struct rtllib_hdr_1addr *)hdr)->payload; return ((struct rtllib_hdr_1addr *)hdr)->payload;
case RTLLIB_2ADDR_LEN: case RTLLIB_2ADDR_LEN:
return ((struct rtllib_hdr_2addr *)hdr)->payload; return ((struct rtllib_hdr_2addr *)hdr)->payload;
case RTLLIB_3ADDR_LEN: case RTLLIB_3ADDR_LEN:
return ((struct rtllib_hdr_3addr *)hdr)->payload; return ((struct rtllib_hdr_3addr *)hdr)->payload;
case RTLLIB_4ADDR_LEN: case RTLLIB_4ADDR_LEN:
return ((struct rtllib_hdr_4addr *)hdr)->payload; return ((struct rtllib_hdr_4addr *)hdr)->payload;
} }
return NULL; return NULL;
} }
static inline int rtllib_is_ofdm_rate(u8 rate) static inline int rtllib_is_ofdm_rate(u8 rate)
{ {
switch (rate & ~RTLLIB_BASIC_RATE_MASK) { switch (rate & ~RTLLIB_BASIC_RATE_MASK) {
case RTLLIB_OFDM_RATE_6MB: case RTLLIB_OFDM_RATE_6MB:
case RTLLIB_OFDM_RATE_9MB: case RTLLIB_OFDM_RATE_9MB:
case RTLLIB_OFDM_RATE_12MB: case RTLLIB_OFDM_RATE_12MB:
case RTLLIB_OFDM_RATE_18MB: case RTLLIB_OFDM_RATE_18MB:
case RTLLIB_OFDM_RATE_24MB: case RTLLIB_OFDM_RATE_24MB:
case RTLLIB_OFDM_RATE_36MB: case RTLLIB_OFDM_RATE_36MB:
case RTLLIB_OFDM_RATE_48MB: case RTLLIB_OFDM_RATE_48MB:
case RTLLIB_OFDM_RATE_54MB: case RTLLIB_OFDM_RATE_54MB:
return 1; return 1;
} }
return 0; return 0;
} }
static inline int rtllib_is_cck_rate(u8 rate) static inline int rtllib_is_cck_rate(u8 rate)
{ {
switch (rate & ~RTLLIB_BASIC_RATE_MASK) { switch (rate & ~RTLLIB_BASIC_RATE_MASK) {
case RTLLIB_CCK_RATE_1MB: case RTLLIB_CCK_RATE_1MB:
case RTLLIB_CCK_RATE_2MB: case RTLLIB_CCK_RATE_2MB:
case RTLLIB_CCK_RATE_5MB: case RTLLIB_CCK_RATE_5MB:
case RTLLIB_CCK_RATE_11MB: case RTLLIB_CCK_RATE_11MB:
return 1; return 1;
} }
return 0; return 0;
} }
...@@ -2716,8 +2745,8 @@ extern void rtllib_rx_mgt(struct rtllib_device *ieee, ...@@ -2716,8 +2745,8 @@ extern void rtllib_rx_mgt(struct rtllib_device *ieee,
struct sk_buff *skb, struct sk_buff *skb,
struct rtllib_rx_stats *stats); struct rtllib_rx_stats *stats);
extern void rtllib_rx_probe_rq(struct rtllib_device *ieee, extern void rtllib_rx_probe_rq(struct rtllib_device *ieee,
struct sk_buff *skb); struct sk_buff *skb);
extern int IsLegalChannel( struct rtllib_device *rtllib, u8 channel); extern int IsLegalChannel(struct rtllib_device *rtllib, u8 channel);
/* rtllib_wx.c */ /* rtllib_wx.c */
extern int rtllib_wx_get_scan(struct rtllib_device *ieee, extern int rtllib_wx_get_scan(struct rtllib_device *ieee,
...@@ -2731,30 +2760,33 @@ extern int rtllib_wx_get_encode(struct rtllib_device *ieee, ...@@ -2731,30 +2760,33 @@ extern int rtllib_wx_get_encode(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *key); union iwreq_data *wrqu, char *key);
#if WIRELESS_EXT >= 18 #if WIRELESS_EXT >= 18
extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee, extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data* wrqu, char *extra); union iwreq_data *wrqu, char *extra);
extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee, extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data* wrqu, char *extra); union iwreq_data *wrqu, char *extra);
#endif #endif
extern int rtllib_wx_set_auth(struct rtllib_device *ieee, extern int rtllib_wx_set_auth(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
struct iw_param *data, char *extra); struct iw_param *data, char *extra);
extern int rtllib_wx_set_mlme(struct rtllib_device *ieee, extern int rtllib_wx_set_mlme(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra); union iwreq_data *wrqu, char *extra);
extern int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len); extern int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len);
/* rtllib_softmac.c */ /* rtllib_softmac.c */
extern short rtllib_is_54g(struct rtllib_network *net); extern short rtllib_is_54g(struct rtllib_network *net);
extern short rtllib_is_shortslot(struct rtllib_network net); extern short rtllib_is_shortslot(struct rtllib_network net);
extern int rtllib_rx_frame_softmac(struct rtllib_device *ieee, struct sk_buff *skb, extern int rtllib_rx_frame_softmac(struct rtllib_device *ieee,
struct rtllib_rx_stats *rx_stats, u16 type, struct sk_buff *skb,
u16 stype); struct rtllib_rx_stats *rx_stats, u16 type,
extern void rtllib_softmac_new_net(struct rtllib_device *ieee, struct rtllib_network *net); u16 stype);
extern void rtllib_softmac_new_net(struct rtllib_device *ieee,
struct rtllib_network *net);
void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn); void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn);
extern void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee); extern void rtllib_softmac_xmit(struct rtllib_txb *txb,
struct rtllib_device *ieee);
extern void rtllib_stop_send_beacons(struct rtllib_device *ieee); extern void rtllib_stop_send_beacons(struct rtllib_device *ieee);
extern void notify_wx_assoc_event(struct rtllib_device *ieee); extern void notify_wx_assoc_event(struct rtllib_device *ieee);
...@@ -2772,21 +2804,28 @@ extern void rtllib_stop_scan_syncro(struct rtllib_device *ieee); ...@@ -2772,21 +2804,28 @@ extern void rtllib_stop_scan_syncro(struct rtllib_device *ieee);
extern void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh); extern void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh);
extern inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee); extern inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee);
extern u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee); extern u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee);
extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr); extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee,
short pwr);
extern void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl); extern void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl);
extern void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee); extern void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee);
extern void rtllib_check_all_nets(struct rtllib_device *ieee); extern void rtllib_check_all_nets(struct rtllib_device *ieee);
extern void rtllib_start_protocol(struct rtllib_device *ieee); extern void rtllib_start_protocol(struct rtllib_device *ieee);
extern void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown); extern void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown);
extern void rtllib_EnableNetMonitorMode(struct net_device* dev, bool bInitState); extern void rtllib_EnableNetMonitorMode(struct net_device *dev,
extern void rtllib_DisableNetMonitorMode(struct net_device* dev, bool bInitState); bool bInitState);
extern void rtllib_EnableIntelPromiscuousMode(struct net_device* dev, bool bInitState); extern void rtllib_DisableNetMonitorMode(struct net_device *dev,
extern void rtllib_DisableIntelPromiscuousMode(struct net_device* dev, bool bInitState); bool bInitState);
extern void rtllib_EnableIntelPromiscuousMode(struct net_device *dev,
bool bInitState);
extern void rtllib_DisableIntelPromiscuousMode(struct net_device *dev,
bool bInitState);
extern void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh); extern void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh);
extern void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag, u8 shutdown); extern void rtllib_softmac_stop_protocol(struct rtllib_device *ieee,
extern void rtllib_softmac_start_protocol(struct rtllib_device *ieee,u8 mesh_flag); u8 mesh_flag, u8 shutdown);
extern void rtllib_softmac_start_protocol(struct rtllib_device *ieee,
u8 mesh_flag);
extern void rtllib_reset_queue(struct rtllib_device *ieee); extern void rtllib_reset_queue(struct rtllib_device *ieee);
extern void rtllib_wake_queue(struct rtllib_device *ieee); extern void rtllib_wake_queue(struct rtllib_device *ieee);
...@@ -2796,13 +2835,16 @@ extern void rtllib_stop_all_queues(struct rtllib_device *ieee); ...@@ -2796,13 +2835,16 @@ extern void rtllib_stop_all_queues(struct rtllib_device *ieee);
extern struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee); extern struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee);
extern void rtllib_start_send_beacons(struct rtllib_device *ieee); extern void rtllib_start_send_beacons(struct rtllib_device *ieee);
extern void rtllib_stop_send_beacons(struct rtllib_device *ieee); extern void rtllib_stop_send_beacons(struct rtllib_device *ieee);
extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p, u8 is_mesh); extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee,
struct iw_point *p, u8 is_mesh);
extern void notify_wx_assoc_event(struct rtllib_device *ieee); extern void notify_wx_assoc_event(struct rtllib_device *ieee);
extern void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success); extern void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success);
extern void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee); extern void softmac_mgmt_xmit(struct sk_buff *skb,
extern u16 rtllib_query_seqnum(struct rtllib_device*ieee, struct sk_buff* skb, u8* dst); struct rtllib_device *ieee);
extern u16 rtllib_query_seqnum(struct rtllib_device *ieee,
struct sk_buff *skb, u8 *dst);
extern u8 rtllib_ap_sec_type(struct rtllib_device *ieee); extern u8 rtllib_ap_sec_type(struct rtllib_device *ieee);
/* rtllib_crypt_ccmp&tkip&wep.c */ /* rtllib_crypt_ccmp&tkip&wep.c */
...@@ -2813,42 +2855,49 @@ extern void rtllib_ccmp_null(void); ...@@ -2813,42 +2855,49 @@ extern void rtllib_ccmp_null(void);
/* rtllib_softmac_wx.c */ /* rtllib_softmac_wx.c */
extern int rtllib_wx_get_wap(struct rtllib_device *ieee, extern int rtllib_wx_get_wap(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *ext); union iwreq_data *wrqu, char *ext);
extern int rtllib_wx_set_wap(struct rtllib_device *ieee, extern int rtllib_wx_set_wap(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *awrq, union iwreq_data *awrq,
char *extra); char *extra);
extern int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b); extern int rtllib_wx_get_essid(struct rtllib_device *ieee,
struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern int rtllib_wx_set_rate(struct rtllib_device *ieee, extern int rtllib_wx_set_rate(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra); union iwreq_data *wrqu, char *extra);
extern int rtllib_wx_get_rate(struct rtllib_device *ieee, extern int rtllib_wx_get_rate(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra); union iwreq_data *wrqu, char *extra);
extern int rtllib_wx_set_mode(struct rtllib_device *ieee, struct iw_request_info *a, extern int rtllib_wx_set_mode(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *b); struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a, extern int rtllib_wx_set_scan(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *b); struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern int rtllib_wx_set_essid(struct rtllib_device *ieee, extern int rtllib_wx_set_essid(struct rtllib_device *ieee,
struct iw_request_info *a, struct iw_request_info *a,
union iwreq_data *wrqu, char *extra); union iwreq_data *wrqu, char *extra);
extern int rtllib_wx_get_mode(struct rtllib_device *ieee, struct iw_request_info *a, extern int rtllib_wx_get_mode(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *b); struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a, extern int rtllib_wx_set_freq(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *b); struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern int rtllib_wx_get_freq(struct rtllib_device *ieee, struct iw_request_info *a, extern int rtllib_wx_get_freq(struct rtllib_device *ieee,
union iwreq_data *wrqu, char *b); struct iw_request_info *a,
union iwreq_data *wrqu, char *b);
extern void rtllib_wx_sync_scan_wq(void *data); extern void rtllib_wx_sync_scan_wq(void *data);
extern int rtllib_wx_set_rawtx(struct rtllib_device *ieee, extern int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
...@@ -2875,49 +2924,62 @@ extern int rtllib_wx_get_rts(struct rtllib_device *ieee, ...@@ -2875,49 +2924,62 @@ extern int rtllib_wx_get_rts(struct rtllib_device *ieee,
struct iw_request_info *info, struct iw_request_info *info,
union iwreq_data *wrqu, char *extra); union iwreq_data *wrqu, char *extra);
#define MAX_RECEIVE_BUFFER_SIZE 9100 #define MAX_RECEIVE_BUFFER_SIZE 9100
extern void HTDebugHTCapability(u8* CapIE, u8* TitleString ); extern void HTDebugHTCapability(u8 *CapIE, u8 *TitleString);
extern void HTDebugHTInfo(u8* InfoIE, u8* TitleString); extern void HTDebugHTInfo(u8 *InfoIE, u8 *TitleString);
void HTSetConnectBwMode(struct rtllib_device* ieee, enum ht_channel_width Bandwidth, enum ht_extchnl_offset Offset); void HTSetConnectBwMode(struct rtllib_device *ieee,
extern void HTUpdateDefaultSetting(struct rtllib_device* ieee); enum ht_channel_width Bandwidth,
extern void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt,bool bAssoc); enum ht_extchnl_offset Offset);
extern void HTConstructInfoElement(struct rtllib_device* ieee, u8* posHTInfo, u8* len, u8 isEncrypt); extern void HTUpdateDefaultSetting(struct rtllib_device *ieee);
extern void HTConstructRT2RTAggElement(struct rtllib_device* ieee, u8* posRT2RTAgg, u8* len); extern void HTConstructCapabilityElement(struct rtllib_device *ieee,
u8 *posHTCap, u8 *len,
u8 isEncrypt, bool bAssoc);
extern void HTConstructInfoElement(struct rtllib_device *ieee,
u8 *posHTInfo, u8 *len, u8 isEncrypt);
extern void HTConstructRT2RTAggElement(struct rtllib_device *ieee,
u8 *posRT2RTAgg, u8* len);
extern void HTOnAssocRsp(struct rtllib_device *ieee); extern void HTOnAssocRsp(struct rtllib_device *ieee);
extern void HTInitializeHTInfo(struct rtllib_device* ieee); extern void HTInitializeHTInfo(struct rtllib_device *ieee);
extern void HTInitializeBssDesc(struct bss_ht *pBssHT); extern void HTInitializeBssDesc(struct bss_ht *pBssHT);
extern void HTResetSelfAndSavePeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork); extern void HTResetSelfAndSavePeerSetting(struct rtllib_device *ieee,
extern void HTUpdateSelfAndPeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork); struct rtllib_network *pNetwork);
extern u8 HTGetHighestMCSRate(struct rtllib_device* ieee, u8* pMCSRateSet, u8* pMCSFilter); extern void HTUpdateSelfAndPeerSetting(struct rtllib_device *ieee,
struct rtllib_network *pNetwork);
extern u8 HTGetHighestMCSRate(struct rtllib_device *ieee, u8 *pMCSRateSet,
u8 *pMCSFilter);
extern u8 MCS_FILTER_ALL[]; extern u8 MCS_FILTER_ALL[];
extern u16 MCS_DATA_RATE[2][2][77] ; extern u16 MCS_DATA_RATE[2][2][77] ;
extern u8 HTCCheck(struct rtllib_device* ieee, u8* pFrame); extern u8 HTCCheck(struct rtllib_device *ieee, u8 *pFrame);
extern void HTResetIOTSetting(struct rt_hi_throughput *pHTInfo); extern void HTResetIOTSetting(struct rt_hi_throughput *pHTInfo);
extern bool IsHTHalfNmodeAPs(struct rtllib_device* ieee); extern bool IsHTHalfNmodeAPs(struct rtllib_device *ieee);
extern u16 HTHalfMcsToDataRate(struct rtllib_device* ieee, u8 nMcsRate); extern u16 HTHalfMcsToDataRate(struct rtllib_device *ieee, u8 nMcsRate);
extern u16 HTMcsToDataRate( struct rtllib_device* ieee, u8 nMcsRate); extern u16 HTMcsToDataRate(struct rtllib_device *ieee, u8 nMcsRate);
extern u16 TxCountToDataRate( struct rtllib_device* ieee, u8 nDataRate); extern u16 TxCountToDataRate(struct rtllib_device *ieee, u8 nDataRate);
extern int rtllib_rx_ADDBAReq( struct rtllib_device* ieee, struct sk_buff *skb); extern int rtllib_rx_ADDBAReq(struct rtllib_device *ieee, struct sk_buff *skb);
extern int rtllib_rx_ADDBARsp( struct rtllib_device* ieee, struct sk_buff *skb); extern int rtllib_rx_ADDBARsp(struct rtllib_device *ieee, struct sk_buff *skb);
extern int rtllib_rx_DELBA(struct rtllib_device* ieee,struct sk_buff *skb); extern int rtllib_rx_DELBA(struct rtllib_device *ieee, struct sk_buff *skb);
extern void TsInitAddBA( struct rtllib_device* ieee, struct tx_ts_record *pTS, u8 Policy, u8 bOverwritePending); extern void TsInitAddBA(struct rtllib_device *ieee, struct tx_ts_record *pTS,
extern void TsInitDelBA( struct rtllib_device* ieee, struct ts_common_info *pTsCommonInfo, enum tr_select TxRxSelect); u8 Policy, u8 bOverwritePending);
extern void TsInitDelBA(struct rtllib_device *ieee,
struct ts_common_info *pTsCommonInfo,
enum tr_select TxRxSelect);
extern void BaSetupTimeOut(unsigned long data); extern void BaSetupTimeOut(unsigned long data);
extern void TxBaInactTimeout(unsigned long data); extern void TxBaInactTimeout(unsigned long data);
extern void RxBaInactTimeout(unsigned long data); extern void RxBaInactTimeout(unsigned long data);
extern void ResetBaEntry( struct ba_record *pBA); extern void ResetBaEntry(struct ba_record *pBA);
extern bool GetTs( extern bool GetTs(
struct rtllib_device* ieee, struct rtllib_device *ieee,
struct ts_common_info **ppTS, struct ts_common_info **ppTS,
u8* Addr, u8 *Addr,
u8 TID, u8 TID,
enum tr_select TxRxSelect, enum tr_select TxRxSelect,
bool bAddNewTs bool bAddNewTs
); );
extern void TSInitialize(struct rtllib_device *ieee); extern void TSInitialize(struct rtllib_device *ieee);
extern void TsStartAddBaProcess(struct rtllib_device* ieee, struct tx_ts_record *pTxTS); extern void TsStartAddBaProcess(struct rtllib_device *ieee,
extern void RemovePeerTS(struct rtllib_device* ieee, u8* Addr); struct tx_ts_record *pTxTS);
extern void RemoveAllTS(struct rtllib_device* ieee); extern void RemovePeerTS(struct rtllib_device *ieee, u8 *Addr);
extern void RemoveAllTS(struct rtllib_device *ieee);
void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh); void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh);
extern const long rtllib_wlan_frequencies[]; extern const long rtllib_wlan_frequencies[];
...@@ -2932,7 +2994,8 @@ extern inline int rtllib_get_scans(struct rtllib_device *ieee) ...@@ -2932,7 +2994,8 @@ extern inline int rtllib_get_scans(struct rtllib_device *ieee)
return ieee->scans; return ieee->scans;
} }
static inline const char *escape_essid(const char *essid, u8 essid_len) { static inline const char *escape_essid(const char *essid, u8 essid_len)
{
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
const char *s = essid; const char *s = essid;
char *d = escaped; char *d = escaped;
...@@ -2956,7 +3019,9 @@ static inline const char *escape_essid(const char *essid, u8 essid_len) { ...@@ -2956,7 +3019,9 @@ static inline const char *escape_essid(const char *essid, u8 essid_len) {
return escaped; return escaped;
} }
#define CONVERT_RATE(_ieee, _MGN_RATE) (_MGN_RATE<MGN_MCS0)?(_MGN_RATE):(HTMcsToDataRate(_ieee, (u8)_MGN_RATE)) #define CONVERT_RATE(_ieee, _MGN_RATE) \
((_MGN_RATE < MGN_MCS0) ? (_MGN_RATE) : \
(HTMcsToDataRate(_ieee, (u8)_MGN_RATE)))
/* fun with the built-in rtllib stack... */ /* fun with the built-in rtllib stack... */
int rtllib_init(void); int rtllib_init(void);
...@@ -2970,17 +3035,19 @@ void rtllib_crypto_ccmp_exit(void); ...@@ -2970,17 +3035,19 @@ void rtllib_crypto_ccmp_exit(void);
int rtllib_crypto_wep_init(void); int rtllib_crypto_wep_init(void);
void rtllib_crypto_wep_exit(void); void rtllib_crypto_wep_exit(void);
void rtllib_MgntDisconnectIBSS(struct rtllib_device* rtllib); void rtllib_MgntDisconnectIBSS(struct rtllib_device *rtllib);
void rtllib_MlmeDisassociateRequest(struct rtllib_device* rtllib, u8* asSta,u8 asRsn); void rtllib_MlmeDisassociateRequest(struct rtllib_device *rtllib, u8 *asSta,
void rtllib_MgntDisconnectAP(struct rtllib_device* rtllib, u8 asRsn); u8 asRsn);
bool rtllib_MgntDisconnect(struct rtllib_device* rtllib,u8 asRsn); void rtllib_MgntDisconnectAP(struct rtllib_device *rtllib, u8 asRsn);
bool rtllib_MgntDisconnect(struct rtllib_device *rtllib, u8 asRsn);
/* For the function is more related to hardware setting, it's better to use the /* For the function is more related to hardware setting, it's better to use the
* ieee handler to refer to it. * ieee handler to refer to it.
*/ */
extern void rtllib_update_active_chan_map(struct rtllib_device *ieee); extern void rtllib_update_active_chan_map(struct rtllib_device *ieee);
extern void rtllib_FlushRxTsPendingPkts(struct rtllib_device *ieee, struct rx_ts_record *pTS); extern void rtllib_FlushRxTsPendingPkts(struct rtllib_device *ieee,
struct rx_ts_record *pTS);
extern int rtllib_data_xmit(struct sk_buff *skb, struct net_device *dev); extern int rtllib_data_xmit(struct sk_buff *skb, struct net_device *dev);
extern int rtllib_parse_info_param(struct rtllib_device *ieee, extern int rtllib_parse_info_param(struct rtllib_device *ieee,
struct rtllib_info_element *info_element, struct rtllib_info_element *info_element,
...@@ -2988,9 +3055,11 @@ extern int rtllib_parse_info_param(struct rtllib_device *ieee, ...@@ -2988,9 +3055,11 @@ extern int rtllib_parse_info_param(struct rtllib_device *ieee,
struct rtllib_network *network, struct rtllib_network *network,
struct rtllib_rx_stats *stats); struct rtllib_rx_stats *stats);
void rtllib_indicate_packets(struct rtllib_device *ieee, struct rtllib_rxb** prxbIndicateArray,u8 index); void rtllib_indicate_packets(struct rtllib_device *ieee,
extern u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS); struct rtllib_rxb **prxbIndicateArray, u8 index);
extern void HTUseDefaultSetting(struct rtllib_device* ieee); extern u8 HTFilterMCSRate(struct rtllib_device *ieee, u8 *pSupportMCS,
u8 *pOperateMCS);
extern void HTUseDefaultSetting(struct rtllib_device *ieee);
#define RT_ASOC_RETRY_LIMIT 5 #define RT_ASOC_RETRY_LIMIT 5
u8 MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee); u8 MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee);
extern void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p); extern void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p);
...@@ -3039,8 +3108,8 @@ extern void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p); ...@@ -3039,8 +3108,8 @@ extern void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p);
static inline void dump_buf(u8 *buf, u32 len) static inline void dump_buf(u8 *buf, u32 len)
{ {
u32 i; u32 i;
printk("-----------------Len %d----------------\n", len); printk(KERN_INFO "-----------------Len %d----------------\n", len);
for (i=0; i<len; i++) for (i = 0; i < len; i++)
printk("%2.2x-", *(buf+i)); printk("%2.2x-", *(buf+i));
printk("\n"); printk("\n");
} }
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#include <linux/version.h> #include <linux/version.h>
#include <linux/wireless.h> #include <linux/wireless.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <asm/uaccess.h> #include <linux/uaccess.h>
#include <net/arp.h> #include <net/arp.h>
#include "rtllib.h" #include "rtllib.h"
...@@ -56,11 +56,11 @@ ...@@ -56,11 +56,11 @@
#define DRV_NAME "rtllib_92e" #define DRV_NAME "rtllib_92e"
void _setup_timer( struct timer_list* ptimer, void* fun, unsigned long data ) void _setup_timer(struct timer_list* ptimer, void *fun, unsigned long data)
{ {
ptimer->function = fun; ptimer->function = fun;
ptimer->data = data; ptimer->data = data;
init_timer( ptimer ); init_timer(ptimer);
} }
static inline int rtllib_networks_allocate(struct rtllib_device *ieee) static inline int rtllib_networks_allocate(struct rtllib_device *ieee)
...@@ -98,14 +98,15 @@ static inline void rtllib_networks_initialize(struct rtllib_device *ieee) ...@@ -98,14 +98,15 @@ static inline void rtllib_networks_initialize(struct rtllib_device *ieee)
INIT_LIST_HEAD(&ieee->network_free_list); INIT_LIST_HEAD(&ieee->network_free_list);
INIT_LIST_HEAD(&ieee->network_list); INIT_LIST_HEAD(&ieee->network_list);
for (i = 0; i < MAX_NETWORK_COUNT; i++) for (i = 0; i < MAX_NETWORK_COUNT; i++)
list_add_tail(&ieee->networks[i].list, &ieee->network_free_list); list_add_tail(&ieee->networks[i].list,
&ieee->network_free_list);
} }
struct net_device *alloc_rtllib(int sizeof_priv) struct net_device *alloc_rtllib(int sizeof_priv)
{ {
struct rtllib_device *ieee = NULL; struct rtllib_device *ieee = NULL;
struct net_device *dev; struct net_device *dev;
int i,err; int i, err;
RTLLIB_DEBUG_INFO("Initializing...\n"); RTLLIB_DEBUG_INFO("Initializing...\n");
...@@ -159,12 +160,11 @@ struct net_device *alloc_rtllib(int sizeof_priv) ...@@ -159,12 +160,11 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->raw_tx = 0; ieee->raw_tx = 0;
ieee->hwsec_active = 0; ieee->hwsec_active = 0;
memset(ieee->swcamtable,0,sizeof(struct sw_cam_table)*32); memset(ieee->swcamtable, 0, sizeof(struct sw_cam_table) * 32);
rtllib_softmac_init(ieee); rtllib_softmac_init(ieee);
ieee->pHTInfo = (struct rt_hi_throughput*)kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL); ieee->pHTInfo = kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL);
if (ieee->pHTInfo == NULL) if (ieee->pHTInfo == NULL) {
{
RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for HTInfo\n"); RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for HTInfo\n");
return NULL; return NULL;
} }
...@@ -192,10 +192,10 @@ struct net_device *alloc_rtllib(int sizeof_priv) ...@@ -192,10 +192,10 @@ struct net_device *alloc_rtllib(int sizeof_priv)
return NULL; return NULL;
} }
void free_rtllib(struct net_device *dev) void free_rtllib(struct net_device *dev)
{ {
struct rtllib_device *ieee = (struct rtllib_device *)netdev_priv_rsl(dev); struct rtllib_device *ieee = (struct rtllib_device *)
netdev_priv_rsl(dev);
int i; int i;
if (ieee->pHTInfo != NULL) { if (ieee->pHTInfo != NULL) {
kfree(ieee->pHTInfo); kfree(ieee->pHTInfo);
...@@ -219,11 +219,11 @@ void free_rtllib(struct net_device *dev) ...@@ -219,11 +219,11 @@ void free_rtllib(struct net_device *dev)
free_netdev(dev); free_netdev(dev);
} }
u32 rtllib_debug_level = 0; u32 rtllib_debug_level;
static int debug = \ static int debug = \
RTLLIB_DL_ERR RTLLIB_DL_ERR
; ;
struct proc_dir_entry *rtllib_proc = NULL; struct proc_dir_entry *rtllib_proc;
static int show_debug_level(char *page, char **start, off_t offset, static int show_debug_level(char *page, char **start, off_t offset,
int count, int *eof, void *data) int count, int *eof, void *data)
......
...@@ -286,7 +286,6 @@ rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu) ...@@ -286,7 +286,6 @@ rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu)
} }
} }
#define SN_LESS(a, b) (((a-b)&0x800)!=0)
void rtllib_tx_query_agg_cap(struct rtllib_device* ieee, struct sk_buff* skb, struct cb_desc * tcb_desc) void rtllib_tx_query_agg_cap(struct rtllib_device* ieee, struct sk_buff* skb, struct cb_desc * tcb_desc)
{ {
struct rt_hi_throughput *pHTInfo = ieee->pHTInfo; struct rt_hi_throughput *pHTInfo = ieee->pHTInfo;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment