diff options
Diffstat (limited to 'drivers/staging/wlan-ng/prism2mib.c')
-rw-r--r-- | drivers/staging/wlan-ng/prism2mib.c | 2790 |
1 files changed, 64 insertions, 2726 deletions
diff --git a/drivers/staging/wlan-ng/prism2mib.c b/drivers/staging/wlan-ng/prism2mib.c index eac06f793d8..539c4479d38 100644 --- a/drivers/staging/wlan-ng/prism2mib.c +++ b/drivers/staging/wlan-ng/prism2mib.c @@ -54,9 +54,6 @@ /* System Includes */ #define WLAN_DBVAR prism2_debug -#include "version.h" - - #include <linux/version.h> #include <linux/module.h> @@ -69,26 +66,7 @@ #include <asm/io.h> #include <linux/delay.h> #include <asm/byteorder.h> - -#include "wlan_compat.h" - -//#if (WLAN_HOSTIF == WLAN_PCMCIA) -//#include <pcmcia/version.h> -//#include <pcmcia/cs_types.h> -//#include <pcmcia/cs.h> -//#include <pcmcia/cistpl.h> -//#include <pcmcia/ds.h> -//#include <pcmcia/cisreg.h> -//#endif -// -//#if ((WLAN_HOSTIF == WLAN_PLX) || (WLAN_HOSTIF == WLAN_PCI)) -//#include <linux/ioport.h> -//#include <linux/pci.h> -//endif - -//#if (WLAN_HOSTIF == WLAN_USB) #include <linux/usb.h> -//#endif /*================================================================*/ /* Project Includes */ @@ -112,18 +90,17 @@ /*================================================================*/ /* Local Types */ -#define F_AP 0x1 /* MIB is supported on Access Points. */ -#define F_STA 0x2 /* MIB is supported on stations. */ -#define F_READ 0x4 /* MIB may be read. */ -#define F_WRITE 0x8 /* MIB may be written. */ +#define F_STA 0x1 /* MIB is supported on stations. */ +#define F_READ 0x2 /* MIB may be read. */ +#define F_WRITE 0x4 /* MIB may be written. */ typedef struct mibrec { - UINT32 did; - UINT16 flag; - UINT16 parm1; - UINT16 parm2; - UINT16 parm3; + u32 did; + u16 flag; + u16 parm1; + u16 parm2; + u16 parm3; int (*func)(struct mibrec *mib, int isget, wlandevice_t *wlandev, @@ -135,14 +112,6 @@ typedef struct mibrec /*================================================================*/ /* Local Function Declarations */ -static int prism2mib_bytestr2pstr( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - static int prism2mib_bytearea2pstr( mibrec_t *mib, int isget, @@ -159,38 +128,6 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data); -static int prism2mib_uint32array( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_uint32offset( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_truth( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_preamble( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - static int prism2mib_flag( mibrec_t *mib, int isget, @@ -199,22 +136,6 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data); -static int prism2mib_appcfinfoflag( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_regulatorydomains( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - static int prism2mib_wepdefaultkey( mibrec_t *mib, int isget, @@ -223,14 +144,6 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data); -static int prism2mib_powermanagement( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - static int prism2mib_privacyinvoked( mibrec_t *mib, int isget, @@ -255,46 +168,6 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data); -static int prism2mib_operationalrateset( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_groupaddress( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_fwid( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_authalg( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - -static int prism2mib_authalgenable( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data); - static int prism2mib_priv( mibrec_t *mib, int isget, @@ -303,980 +176,92 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data); -static void prism2mib_priv_authlist( -hfa384x_t *hw, -prism2sta_authlist_t *list); - -static void prism2mib_priv_accessmode( -hfa384x_t *hw, -UINT32 mode); - -static void prism2mib_priv_accessallow( -hfa384x_t *hw, -p80211macarray_t *macarray); - -static void prism2mib_priv_accessdeny( -hfa384x_t *hw, -p80211macarray_t *macarray); - -static void prism2mib_priv_deauthenticate( -hfa384x_t *hw, -UINT8 *addr); - /*================================================================*/ /* Local Static Definitions */ static mibrec_t mibtab[] = { /* dot11smt MIB's */ - - { DIDmib_dot11smt_dot11StationConfigTable_dot11StationID, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNMACADDR, HFA384x_RID_CNFOWNMACADDR_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11MediumOccupancyLimit, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 0, - prism2mib_uint32offset }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11CFPollable, - F_STA | F_READ, - HFA384x_RID_CFPOLLABLE, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11CFPPeriod, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 1, - prism2mib_uint32offset }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11CFPMaxDuration, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 2, - prism2mib_uint32offset }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11AuthenticationResponseTimeOut, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFAUTHRSPTIMEOUT, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11PrivacyOptionImplemented, - F_AP | F_STA | F_READ, - HFA384x_RID_PRIVACYOPTIMP, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11PowerManagementMode, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFPMENABLED, 0, 0, - prism2mib_powermanagement }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11DesiredSSID, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFDESIREDSSID, HFA384x_RID_CNFDESIREDSSID_LEN, 0, - prism2mib_bytestr2pstr }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11DesiredBSSType, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11OperationalRateSet, - F_STA | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL, 0, 0, - prism2mib_operationalrateset }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11OperationalRateSet, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL0, 0, 0, - prism2mib_operationalrateset }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11BeaconPeriod, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPBCNINT, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11DTIMPeriod, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNDTIMPER, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11StationConfigTable_dot11AssociationResponseTimeOut, - F_AP | F_STA | F_READ, - HFA384x_RID_PROTOCOLRSPTIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm1, - F_AP | F_STA | F_READ, - 1, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm2, - F_AP | F_STA | F_READ, - 2, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm3, - F_AP | F_STA | F_READ, - 3, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm4, - F_AP | F_STA | F_READ, - 4, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm5, - F_AP | F_STA | F_READ, - 5, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithm6, - F_AP | F_STA | F_READ, - 6, 0, 0, - prism2mib_authalg }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable1, - F_AP | F_STA | F_READ | F_WRITE, - 1, 0, 0, - prism2mib_authalgenable }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable2, - F_AP | F_STA | F_READ | F_WRITE, - 2, 0, 0, - prism2mib_authalgenable }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable3, - F_AP | F_STA | F_READ | F_WRITE, - 3, 0, 0, - prism2mib_authalgenable }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable4, - F_AP | F_STA | F_READ | F_WRITE, - 4, 0, 0, - prism2mib_authalgenable }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable5, - F_AP | F_STA | F_READ | F_WRITE, - 5, 0, 0, - prism2mib_authalgenable }, - { DIDmib_dot11smt_dot11AuthenticationAlgorithmsTable_dot11AuthenticationAlgorithmsEnable6, - F_AP | F_STA | F_READ | F_WRITE, - 6, 0, 0, - prism2mib_authalgenable }, { DIDmib_dot11smt_dot11WEPDefaultKeysTable_dot11WEPDefaultKey0, - F_AP | F_STA | F_WRITE, + F_STA | F_WRITE, HFA384x_RID_CNFWEPDEFAULTKEY0, 0, 0, prism2mib_wepdefaultkey }, { DIDmib_dot11smt_dot11WEPDefaultKeysTable_dot11WEPDefaultKey1, - F_AP | F_STA | F_WRITE, + F_STA | F_WRITE, HFA384x_RID_CNFWEPDEFAULTKEY1, 0, 0, prism2mib_wepdefaultkey }, { DIDmib_dot11smt_dot11WEPDefaultKeysTable_dot11WEPDefaultKey2, - F_AP | F_STA | F_WRITE, + F_STA | F_WRITE, HFA384x_RID_CNFWEPDEFAULTKEY2, 0, 0, prism2mib_wepdefaultkey }, { DIDmib_dot11smt_dot11WEPDefaultKeysTable_dot11WEPDefaultKey3, - F_AP | F_STA | F_WRITE, + F_STA | F_WRITE, HFA384x_RID_CNFWEPDEFAULTKEY3, 0, 0, prism2mib_wepdefaultkey }, { DIDmib_dot11smt_dot11PrivacyTable_dot11PrivacyInvoked, - F_AP | F_STA | F_READ | F_WRITE, + F_STA | F_READ | F_WRITE, HFA384x_RID_CNFWEPFLAGS, HFA384x_WEPFLAGS_PRIVINVOKED, 0, prism2mib_privacyinvoked }, { DIDmib_dot11smt_dot11PrivacyTable_dot11WEPDefaultKeyID, - F_AP | F_STA | F_READ | F_WRITE, + F_STA | F_READ | F_WRITE, HFA384x_RID_CNFWEPDEFAULTKEYID, 0, 0, prism2mib_uint32 }, { DIDmib_dot11smt_dot11PrivacyTable_dot11ExcludeUnencrypted, - F_AP | F_STA | F_READ | F_WRITE, + F_STA | F_READ | F_WRITE, HFA384x_RID_CNFWEPFLAGS, HFA384x_WEPFLAGS_EXCLUDE, 0, prism2mib_excludeunencrypted }, - { DIDmib_dot11phy_dot11PhyOperationTable_dot11ShortPreambleEnabled, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFSHORTPREAMBLE, 0, 0, - prism2mib_preamble }, /* dot11mac MIB's */ { DIDmib_dot11mac_dot11OperationTable_dot11MACAddress, - F_AP | F_STA | F_READ | F_WRITE, + F_STA | F_READ | F_WRITE, HFA384x_RID_CNFOWNMACADDR, HFA384x_RID_CNFOWNMACADDR_LEN, 0, prism2mib_bytearea2pstr }, { DIDmib_dot11mac_dot11OperationTable_dot11RTSThreshold, F_STA | F_READ | F_WRITE, HFA384x_RID_RTSTHRESH, 0, 0, prism2mib_uint32 }, - { DIDmib_dot11mac_dot11OperationTable_dot11RTSThreshold, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH0, 0, 0, - prism2mib_uint32 }, { DIDmib_dot11mac_dot11OperationTable_dot11ShortRetryLimit, - F_AP | F_STA | F_READ, + F_STA | F_READ, HFA384x_RID_SHORTRETRYLIMIT, 0, 0, prism2mib_uint32 }, { DIDmib_dot11mac_dot11OperationTable_dot11LongRetryLimit, - F_AP | F_STA | F_READ, + F_STA | F_READ, HFA384x_RID_LONGRETRYLIMIT, 0, 0, prism2mib_uint32 }, { DIDmib_dot11mac_dot11OperationTable_dot11FragmentationThreshold, F_STA | F_READ | F_WRITE, HFA384x_RID_FRAGTHRESH, 0, 0, prism2mib_fragmentationthreshold }, - { DIDmib_dot11mac_dot11OperationTable_dot11FragmentationThreshold, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH0, 0, 0, - prism2mib_fragmentationthreshold }, { DIDmib_dot11mac_dot11OperationTable_dot11MaxTransmitMSDULifetime, - F_AP | F_STA | F_READ, + F_STA | F_READ, HFA384x_RID_MAXTXLIFETIME, 0, 0, prism2mib_uint32 }, - { DIDmib_dot11mac_dot11OperationTable_dot11MaxReceiveLifetime, - F_AP | F_STA | F_READ, - HFA384x_RID_MAXRXLIFETIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address1, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address2, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address3, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address4, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address5, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address6, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address7, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address8, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address9, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address10, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address11, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address12, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address13, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address14, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address15, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address16, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address17, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address18, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address19, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address20, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address21, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address22, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address23, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address24, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address25, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address26, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address27, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address28, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address29, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address30, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address31, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, - { DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address32, - F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_groupaddress }, /* dot11phy MIB's */ - { DIDmib_dot11phy_dot11PhyOperationTable_dot11PHYType, - F_AP | F_STA | F_READ, - HFA384x_RID_PHYTYPE, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11phy_dot11PhyOperationTable_dot11TempType, - F_AP | F_STA | F_READ, - HFA384x_RID_TEMPTYPE, 0, 0, - prism2mib_uint32 }, { DIDmib_dot11phy_dot11PhyDSSSTable_dot11CurrentChannel, F_STA | F_READ, HFA384x_RID_CURRENTCHANNEL, 0, 0, prism2mib_uint32 }, - { DIDmib_dot11phy_dot11PhyDSSSTable_dot11CurrentChannel, - F_AP | F_READ, - HFA384x_RID_CNFOWNCHANNEL, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11phy_dot11PhyDSSSTable_dot11CurrentCCAMode, - F_AP | F_STA | F_READ, - HFA384x_RID_CCAMODE, 0, 0, + { DIDmib_dot11phy_dot11PhyTxPowerTable_dot11CurrentTxPowerLevel, + F_STA | F_READ | F_WRITE, + HFA384x_RID_TXPOWERMAX, 0, 0, prism2mib_uint32 }, - /* p2Table MIB's */ - - { DIDmib_p2_p2Table_p2MMTx, - F_AP | F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2EarlyBeacon, - F_AP | F_READ | F_WRITE, - BIT7, 0, 0, - prism2mib_appcfinfoflag }, - { DIDmib_p2_p2Table_p2ReceivedFrameStatistics, - F_AP | F_STA | F_READ, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2CommunicationTallies, - F_AP | F_STA | F_READ, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2Authenticated, - F_AP | F_READ, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2Associated, - F_AP | F_READ, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2PowerSaveUserCount, - F_AP | F_READ, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2Comment, - F_AP | F_STA | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2AccessMode, - F_AP | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2AccessAllow, - F_AP | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2AccessDeny, - F_AP | F_READ | F_WRITE, - 0, 0, 0, - prism2mib_priv }, - { DIDmib_p2_p2Table_p2ChannelInfoResults, - F_AP | F_READ, - 0, 0, 0, - prism2mib_priv }, - /* p2Static MIB's */ { DIDmib_p2_p2Static_p2CnfPortType, F_STA | F_READ | F_WRITE, HFA384x_RID_CNFPORTTYPE, 0, 0, prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfOwnMACAddress, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNMACADDR, HFA384x_RID_CNFOWNMACADDR_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfDesiredSSID, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFDESIREDSSID, HFA384x_RID_CNFDESIREDSSID_LEN, 0, - prism2mib_bytestr2pstr }, - { DIDmib_p2_p2Static_p2CnfOwnChannel, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNCHANNEL, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfOwnSSID, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNSSID, HFA384x_RID_CNFOWNSSID_LEN, 0, - prism2mib_bytestr2pstr }, - { DIDmib_p2_p2Static_p2CnfOwnATIMWindow, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNATIMWIN, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfSystemScale, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFSYSSCALE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfMaxDataLength, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFMAXDATALEN, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfWDSAddress, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR, HFA384x_RID_CNFWDSADDR_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfPMEnabled, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFPMENABLED, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfPMEPS, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFPMEPS, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfMulticastReceive, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFMULTICASTRX, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfMaxSleepDuration, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFMAXSLEEPDUR, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfPMHoldoverDuration, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFPMHOLDDUR, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfOwnName, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNNAME, HFA384x_RID_CNFOWNNAME_LEN, 0, - prism2mib_bytestr2pstr }, - { DIDmib_p2_p2Static_p2CnfOwnDTIMPeriod, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFOWNDTIMPER, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfWDSAddress1, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR1, HFA384x_RID_CNFWDSADDR1_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfWDSAddress2, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR2, HFA384x_RID_CNFWDSADDR2_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfWDSAddress3, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR3, HFA384x_RID_CNFWDSADDR3_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfWDSAddress4, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR4, HFA384x_RID_CNFWDSADDR4_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfWDSAddress5, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR5, HFA384x_RID_CNFWDSADDR5_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfWDSAddress6, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFWDSADDR6, HFA384x_RID_CNFWDSADDR6_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2Static_p2CnfMulticastPMBuffering, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFMCASTPMBUFF, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfWEPDefaultKeyID, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFWEPDEFAULTKEYID, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfWEPDefaultKey0, - F_AP | F_STA | F_WRITE, - HFA384x_RID_CNFWEPDEFAULTKEY0, 0, 0, - prism2mib_wepdefaultkey }, - { DIDmib_p2_p2Static_p2CnfWEPDefaultKey1, - F_AP | F_STA | F_WRITE, - HFA384x_RID_CNFWEPDEFAULTKEY1, 0, 0, - prism2mib_wepdefaultkey }, - { DIDmib_p2_p2Static_p2CnfWEPDefaultKey2, - F_AP | F_STA | F_WRITE, - HFA384x_RID_CNFWEPDEFAULTKEY2, 0, 0, - prism2mib_wepdefaultkey }, - { DIDmib_p2_p2Static_p2CnfWEPDefaultKey3, - F_AP | F_STA | F_WRITE, - HFA384x_RID_CNFWEPDEFAULTKEY3, 0, 0, - prism2mib_wepdefaultkey }, - { DIDmib_p2_p2Static_p2CnfWEPFlags, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFWEPFLAGS, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfAuthentication, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFAUTHENTICATION, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfMaxAssociatedStations, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFMAXASSOCSTATIONS, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfTxControl, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFTXCONTROL, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfRoamingMode, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFROAMINGMODE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfHostAuthentication, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFHOSTAUTHASSOC, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfRcvCrcError, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFRCVCRCERROR, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfAltRetryCount, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFALTRETRYCNT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfBeaconInterval, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPBCNINT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfMediumOccupancyLimit, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 0, - prism2mib_uint32offset }, - { DIDmib_p2_p2Static_p2CnfCFPPeriod, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 1, - prism2mib_uint32offset }, - { DIDmib_p2_p2Static_p2CnfCFPMaxDuration, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 2, - prism2mib_uint32offset }, - { DIDmib_p2_p2Static_p2CnfCFPFlags, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFAPPCFINFO, HFA384x_RID_CNFAPPCFINFO_LEN, 3, - prism2mib_uint32offset }, - { DIDmib_p2_p2Static_p2CnfSTAPCFInfo, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFSTAPCFINFO, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfPriorityQUsage, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFPRIORITYQUSAGE, HFA384x_RID_CNFPRIOQUSAGE_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2Static_p2CnfTIMCtrl, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFTIMCTRL, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfThirty2Tally, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFTHIRTY2TALLY, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfEnhSecurity, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFENHSECURITY, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfShortPreamble, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFSHORTPREAMBLE, 0, 0, - prism2mib_preamble }, - { DIDmib_p2_p2Static_p2CnfExcludeLongPreamble, - F_AP | F_READ | F_WRITE, - HFA384x_RID_CNFEXCLONGPREAMBLE, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Static_p2CnfAuthenticationRspTO, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFAUTHRSPTIMEOUT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfBasicRates, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFBASICRATES, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Static_p2CnfSupportedRates, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_CNFSUPPRATES, 0, 0, - prism2mib_uint32 }, - - /* p2Dynamic MIB's */ - - { DIDmib_p2_p2Dynamic_p2CreateIBSS, - F_STA | F_READ | F_WRITE, - HFA384x_RID_CREATEIBSS, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold, - F_STA | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold, - F_STA | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl, - F_STA | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2PromiscuousMode, - F_STA | F_READ | F_WRITE, - HFA384x_RID_PROMISCMODE, 0, 0, - prism2mib_truth }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold0, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH0, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold1, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH1, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold2, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH2, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold3, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH3, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold4, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH4, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold5, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH5, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2FragmentationThreshold6, - F_AP | F_READ | F_WRITE, - HFA384x_RID_FRAGTHRESH6, 0, 0, - prism2mib_fragmentationthreshold }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold0, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH0, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold1, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH1, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold2, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH2, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold3, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH3, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold4, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH4, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold5, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH5, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2RTSThreshold6, - F_AP | F_READ | F_WRITE, - HFA384x_RID_RTSTHRESH6, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl0, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL0, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl1, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL1, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl2, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL2, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl3, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL3, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl4, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL4, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl5, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL5, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Dynamic_p2TxRateControl6, - F_AP | F_READ | F_WRITE, - HFA384x_RID_TXRATECNTL6, 0, 0, - prism2mib_uint32 }, - - /* p2Behavior MIB's */ - - { DIDmib_p2_p2Behavior_p2TickTime, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_ITICKTIME, 0, 0, - prism2mib_uint32 }, - - /* p2NIC MIB's */ - - { DIDmib_p2_p2NIC_p2MaxLoadTime, - F_AP | F_STA | F_READ, - HFA384x_RID_MAXLOADTIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2NIC_p2DLBufferPage, - F_AP | F_STA | F_READ, - HFA384x_RID_DOWNLOADBUFFER, HFA384x_RID_DOWNLOADBUFFER_LEN, 0, - prism2mib_uint32offset }, - { DIDmib_p2_p2NIC_p2DLBufferOffset, - F_AP | F_STA | F_READ, - HFA384x_RID_DOWNLOADBUFFER, HFA384x_RID_DOWNLOADBUFFER_LEN, 1, - prism2mib_uint32offset }, - { DIDmib_p2_p2NIC_p2DLBufferLength, - F_AP | F_STA | F_READ, - HFA384x_RID_DOWNLOADBUFFER, HFA384x_RID_DOWNLOADBUFFER_LEN, 2, - prism2mib_uint32offset }, - { DIDmib_p2_p2NIC_p2PRIIdentity, - F_AP | F_STA | F_READ, - HFA384x_RID_PRIIDENTITY, HFA384x_RID_PRIIDENTITY_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2PRISupRange, - F_AP | F_STA | F_READ, - HFA384x_RID_PRISUPRANGE, HFA384x_RID_PRISUPRANGE_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2CFIActRanges, - F_AP | F_STA | F_READ, - HFA384x_RID_PRI_CFIACTRANGES, HFA384x_RID_CFIACTRANGES_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2BuildSequence, - F_AP | F_STA | F_READ, - HFA384x_RID_BUILDSEQ, HFA384x_RID_BUILDSEQ_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2PrimaryFWID, - F_AP | F_STA | F_READ, - 0, 0, 0, - prism2mib_fwid }, - { DIDmib_p2_p2NIC_p2SecondaryFWID, - F_AP | F_STA | F_READ, - 0, 0, 0, - prism2mib_fwid }, - { DIDmib_p2_p2NIC_p2TertiaryFWID, - F_AP | F_READ, - 0, 0, 0, - prism2mib_fwid }, - { DIDmib_p2_p2NIC_p2NICSerialNumber, - F_AP | F_STA | F_READ, - HFA384x_RID_NICSERIALNUMBER, HFA384x_RID_NICSERIALNUMBER_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2NIC_p2NICIdentity, - F_AP | F_STA | F_READ, - HFA384x_RID_NICIDENTITY, HFA384x_RID_NICIDENTITY_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2MFISupRange, - F_AP | F_STA | F_READ, - HFA384x_RID_MFISUPRANGE, HFA384x_RID_MFISUPRANGE_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2CFISupRange, - F_AP | F_STA | F_READ, - HFA384x_RID_CFISUPRANGE, HFA384x_RID_CFISUPRANGE_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2ChannelList, - F_AP | F_STA | F_READ, - HFA384x_RID_CHANNELLIST, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2NIC_p2RegulatoryDomains, - F_AP | F_STA | F_READ, - HFA384x_RID_REGULATORYDOMAINS, HFA384x_RID_REGULATORYDOMAINS_LEN, 0, - prism2mib_regulatorydomains }, - { DIDmib_p2_p2NIC_p2TempType, - F_AP | F_STA | F_READ, - HFA384x_RID_TEMPTYPE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2NIC_p2STAIdentity, - F_AP | F_STA | F_READ, - HFA384x_RID_STAIDENTITY, HFA384x_RID_STAIDENTITY_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2STASupRange, - F_AP | F_STA | F_READ, - HFA384x_RID_STASUPRANGE, HFA384x_RID_STASUPRANGE_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2MFIActRanges, - F_AP | F_STA | F_READ, - HFA384x_RID_STA_MFIACTRANGES, HFA384x_RID_MFIACTRANGES_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2NIC_p2STACFIActRanges, - F_AP | F_STA | F_READ, - HFA384x_RID_STA_CFIACTRANGES, HFA384x_RID_CFIACTRANGES2_LEN, 0, - prism2mib_uint32array }, /* p2MAC MIB's */ - { DIDmib_p2_p2MAC_p2PortStatus, - F_STA | F_READ, - HFA384x_RID_PORTSTATUS, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentSSID, - F_STA | F_READ, - HFA384x_RID_CURRENTSSID, HFA384x_RID_CURRENTSSID_LEN, 0, - prism2mib_bytestr2pstr }, - { DIDmib_p2_p2MAC_p2CurrentBSSID, - F_STA | F_READ, - HFA384x_RID_CURRENTBSSID, HFA384x_RID_CURRENTBSSID_LEN, 0, - prism2mib_bytearea2pstr }, - { DIDmib_p2_p2MAC_p2CommsQuality, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2MAC_p2CommsQualityCQ, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 0, - prism2mib_uint32offset }, - { DIDmib_p2_p2MAC_p2CommsQualityASL, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 1, - prism2mib_uint32offset }, - { DIDmib_p2_p2MAC_p2CommsQualityANL, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 2, - prism2mib_uint32offset }, - { DIDmib_p2_p2MAC_p2dbmCommsQuality, - F_STA | F_READ, - HFA384x_RID_DBMCOMMSQUALITY, HFA384x_RID_DBMCOMMSQUALITY_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2MAC_p2dbmCommsQualityCQ, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 0, - prism2mib_uint32offset }, - { DIDmib_p2_p2MAC_p2dbmCommsQualityASL, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 1, - prism2mib_uint32offset }, - { DIDmib_p2_p2MAC_p2dbmCommsQualityANL, - F_STA | F_READ, - HFA384x_RID_COMMSQUALITY, HFA384x_RID_COMMSQUALITY_LEN, 2, - prism2mib_uint32offset }, { DIDmib_p2_p2MAC_p2CurrentTxRate, F_STA | F_READ, HFA384x_RID_CURRENTTXRATE, 0, 0, prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentBeaconInterval, - F_AP | F_STA | F_READ, - HFA384x_RID_CURRENTBCNINT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2StaCurrentScaleThresholds, - F_STA | F_READ, - HFA384x_RID_CURRENTSCALETHRESH, HFA384x_RID_STACURSCALETHRESH_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2MAC_p2APCurrentScaleThresholds, - F_AP | F_READ, - HFA384x_RID_CURRENTSCALETHRESH, HFA384x_RID_APCURSCALETHRESH_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2MAC_p2ProtocolRspTime, - F_AP | F_STA | F_READ, - HFA384x_RID_PROTOCOLRSPTIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2ShortRetryLimit, - F_AP | F_STA | F_READ, - HFA384x_RID_SHORTRETRYLIMIT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2LongRetryLimit, - F_AP | F_STA | F_READ, - HFA384x_RID_LONGRETRYLIMIT, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2MaxTransmitLifetime, - F_AP | F_STA | F_READ, - HFA384x_RID_MAXTXLIFETIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2MaxReceiveLifetime, - F_AP | F_STA | F_READ, - HFA384x_RID_MAXRXLIFETIME, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CFPollable, - F_STA | F_READ, - HFA384x_RID_CFPOLLABLE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2AuthenticationAlgorithms, - F_AP | F_STA | F_READ, - HFA384x_RID_AUTHALGORITHMS, HFA384x_RID_AUTHALGORITHMS_LEN, 0, - prism2mib_uint32array }, - { DIDmib_p2_p2MAC_p2PrivacyOptionImplemented, - F_AP | F_STA | F_READ, - HFA384x_RID_PRIVACYOPTIMP, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate1, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE1, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate2, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE2, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate3, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE3, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate4, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE4, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate5, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE5, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2CurrentTxRate6, - F_AP | F_READ, - HFA384x_RID_CURRENTTXRATE6, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2MAC_p2OwnMACAddress, - F_AP | F_READ, - HFA384x_RID_OWNMACADDRESS, HFA384x_RID_OWNMACADDRESS_LEN, 0, - prism2mib_bytearea2pstr }, - - /* p2Modem MIB's */ - - { DIDmib_p2_p2Modem_p2PHYType, - F_AP | F_STA | F_READ, - HFA384x_RID_PHYTYPE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Modem_p2CurrentChannel, - F_AP | F_STA | F_READ, - HFA384x_RID_CURRENTCHANNEL, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Modem_p2CurrentPowerState, - F_AP | F_STA | F_READ, - HFA384x_RID_CURRENTPOWERSTATE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Modem_p2CCAMode, - F_AP | F_STA | F_READ, - HFA384x_RID_CCAMODE, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Modem_p2TxPowerMax, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_TXPOWERMAX, 0, 0, - prism2mib_uint32 }, - { DIDmib_dot11phy_dot11PhyTxPowerTable_dot11CurrentTxPowerLevel, - F_AP | F_STA | F_READ | F_WRITE, - HFA384x_RID_TXPOWERMAX, 0, 0, - prism2mib_uint32 }, - { DIDmib_p2_p2Modem_p2SupportedDataRates, - F_AP | F_STA | F_READ, - HFA384x_RID_SUPPORTEDDATARATES, HFA384x_RID_SUPPORTEDDATARATES_LEN, 0, - prism2mib_bytestr2pstr }, /* And finally, lnx mibs */ { DIDmib_lnx_lnxConfigTable_lnxRSNAIE, @@ -1285,94 +270,6 @@ static mibrec_t mibtab[] = { prism2mib_priv }, { 0, 0, 0, 0, 0, NULL}}; -/*---------------------------------------------------------------- -These MIB's are not supported at this time: - -DIDmib_dot11phy_dot11PhyOperationTable_dot11ChannelAgilityPresent -DIDmib_dot11phy_dot11PhyOperationTable_dot11ChannelAgilityEnabled -DIDmib_dot11phy_dot11PhyDSSSTable_dot11PBCCOptionImplemented -DIDmib_dot11phy_dot11RegDomainsSupportedTable_dot11RegDomainsSupportIndex -DIDmib_dot11phy_dot11SupportedDataRatesTxTable_dot11SupportedDataRatesTxIndex -DIDmib_dot11phy_dot11SupportedDataRatesTxTable_dot11SupportedDataRatesTxValue -DIDmib_dot11phy_dot11SupportedDataRatesRxTable_dot11SupportedDataRatesRxIndex -DIDmib_dot11phy_dot11SupportedDataRatesRxTable_dot11SupportedDataRatesRxValue - -DIDmib_dot11phy_dot11RegDomainsSupportedTable_dot11RegDomainsSupportValue -TODO: need to investigate why wlan has this as enumerated and Prism2 has this - as btye str. - -DIDmib_dot11phy_dot11PhyDSSSTable_dot11ShortPreambleOptionImplemented -TODO: Find out the firmware version number(s) for identifying - whether the firmware is capable of short preamble. TRUE or FALSE - will be returned based on the version of the firmware. - -WEP Key mappings aren't supported in the f/w. -DIDmib_dot11smt_dot11WEPKeyMappingsTable_dot11WEPKeyMappingIndex -DIDmib_dot11smt_dot11WEPKeyMappingsTable_dot11WEPKeyMappingAddress -DIDmib_dot11smt_dot11WEPKeyMappingsTable_dot11WEPKeyMappingWEPOn -DIDmib_dot11smt_dot11WEPKeyMappingsTable_dot11WEPKeyMappingValue -DIDmib_dot11smt_dot11PrivacyTable_dot11WEPKeyMappingLength - -TODO: implement counters. -DIDmib_dot11smt_dot11PrivacyTable_dot11WEPICVErrorCount -DIDmib_dot11smt_dot11PrivacyTable_dot11WEPExcludedCount -DIDmib_dot11mac_dot11CountersTable_dot11TransmittedFragmentCount -DIDmib_dot11mac_dot11CountersTable_dot11MulticastTransmittedFrameCount -DIDmib_dot11mac_dot11CountersTable_dot11FailedCount -DIDmib_dot11mac_dot11CountersTable_dot11RetryCount -DIDmib_dot11mac_dot11CountersTable_dot11MultipleRetryCount -DIDmib_dot11mac_dot11CountersTable_dot11FrameDuplicateCount -DIDmib_dot11mac_dot11CountersTable_dot11RTSSuccessCount -DIDmib_dot11mac_dot11CountersTable_dot11RTSFailureCount -DIDmib_dot11mac_dot11CountersTable_dot11ACKFailureCount -DIDmib_dot11mac_dot11CountersTable_dot11ReceivedFragmentCount -DIDmib_dot11mac_dot11CountersTable_dot11MulticastReceivedFrameCount -DIDmib_dot11mac_dot11CountersTable_dot11FCSErrorCount -DIDmib_dot11mac_dot11CountersTable_dot11TransmittedFrameCount -DIDmib_dot11mac_dot11CountersTable_dot11WEPUndecryptableCount - -TODO: implement sane values for these. -DIDmib_dot11mac_dot11OperationTable_dot11ManufacturerID -DIDmib_dot11mac_dot11OperationTable_dot11ProductID - -Not too worried about these at the moment. -DIDmib_dot11phy_dot11PhyAntennaTable_dot11CurrentTxAntenna -DIDmib_dot11phy_dot11PhyAntennaTable_dot11DiversitySupport -DIDmib_dot11phy_dot11PhyAntennaTable_dot11CurrentRxAntenna -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11NumberSupportedPowerLevels -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel1 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel2 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel3 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel4 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel5 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel6 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel7 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11TxPowerLevel8 -DIDmib_dot11phy_dot11PhyTxPowerTable_dot11CurrentTxPowerLevel - -Ummm, FH and IR don't apply -DIDmib_dot11phy_dot11PhyFHSSTable_dot11HopTime -DIDmib_dot11phy_dot11PhyFHSSTable_dot11CurrentChannelNumber -DIDmib_dot11phy_dot11PhyFHSSTable_dot11MaxDwellTime -DIDmib_dot11phy_dot11PhyFHSSTable_dot11CurrentDwellTime -DIDmib_dot11phy_dot11PhyFHSSTable_dot11CurrentSet -DIDmib_dot11phy_dot11PhyFHSSTable_dot11CurrentPattern -DIDmib_dot11phy_dot11PhyFHSSTable_dot11CurrentIndex -DIDmib_dot11phy_dot11PhyDSSSTable_dot11CCAModeSupported -DIDmib_dot11phy_dot11PhyDSSSTable_dot11EDThreshold -DIDmib_dot11phy_dot11PhyIRTable_dot11CCAWatchdogTimerMax -DIDmib_dot11phy_dot11PhyIRTable_dot11CCAWatchdogCountMax -DIDmib_dot11phy_dot11PhyIRTable_dot11CCAWatchdogTimerMin -DIDmib_dot11phy_dot11PhyIRTable_dot11CCAWatchdogCountMin - -We just don't have enough antennas right now to worry about this. -DIDmib_dot11phy_dot11AntennasListTable_dot11AntennaListIndex -DIDmib_dot11phy_dot11AntennasListTable_dot11SupportedTxAntenna -DIDmib_dot11phy_dot11AntennasListTable_dot11SupportedRxAntenna -DIDmib_dot11phy_dot11AntennasListTable_dot11DiversitySelectionRx - -------------------------------------------------------------------*/ - /*================================================================*/ /* Function Definitions */ @@ -1401,7 +298,8 @@ int prism2mgmt_mibset_mibget(wlandevice_t *wlandev, void *msgp) hfa384x_t *hw = wlandev->priv; int result, isget; mibrec_t *mib; - UINT16 which; + + u16 which; p80211msg_dot11req_mibset_t *msg = msgp; p80211itemd_t *mibitem; @@ -1415,7 +313,7 @@ int prism2mgmt_mibset_mibget(wlandevice_t *wlandev, void *msgp) ** Determine if this is an Access Point or a station. */ - which = hw->ap ? F_AP : F_STA; + which = F_STA; /* ** Find the MIB in the MIB table. Note that a MIB may be in the @@ -1491,59 +389,6 @@ done: } /*---------------------------------------------------------------- -* prism2mib_bytestr2pstr -* -* Get/set pstr data to/from a byte string. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Number of bytes of RID data. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_bytestr2pstr( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - p80211pstrd_t *pstr = (p80211pstrd_t*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - hfa384x_bytestr_t *p2bytestr = (hfa384x_bytestr_t*) bytebuf; - - DBFENTER; - - if (isget) { - result = hfa384x_drvr_getconfig(hw, mib->parm1, bytebuf, mib->parm2); - prism2mgmt_bytestr2pstr(p2bytestr, pstr); - } else { - memset(bytebuf, 0, mib->parm2); - prism2mgmt_pstr2bytestr(p2bytestr, pstr); - result = hfa384x_drvr_setconfig(hw, mib->parm1, bytebuf, mib->parm2); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- * prism2mib_bytearea2pstr * * Get/set pstr data to/from a byte area. @@ -1578,13 +423,13 @@ void *data) { int result; p80211pstrd_t *pstr = (p80211pstrd_t*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; + u8 bytebuf[MIB_TMP_MAXLEN]; DBFENTER; if (isget) { result = hfa384x_drvr_getconfig(hw, mib->parm1, bytebuf, mib->parm2); - prism2mgmt_bytearea2pstr(bytebuf, pstr, mib->parm2); + prism2mgmt_bytearea2pstr(bytebuf, pstr, mib->parm2); } else { memset(bytebuf, 0, mib->parm2); prism2mgmt_pstr2bytearea(bytebuf, pstr); @@ -1629,9 +474,9 @@ p80211msg_dot11req_mibset_t *msg, void *data) { int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; + u32 *uint32 = (u32*) data; + u8 bytebuf[MIB_TMP_MAXLEN]; + u16 *wordbuf = (u16*) bytebuf; DBFENTER; @@ -1654,178 +499,6 @@ void *data) } /*---------------------------------------------------------------- -* prism2mib_uint32array -* -* Get/set an array of uint32 data. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Number of bytes of RID data. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_uint32array( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32 *) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - int i, cnt; - - DBFENTER; - - cnt = mib->parm2 / sizeof(UINT16); - - if (isget) { - result = hfa384x_drvr_getconfig(hw, mib->parm1, wordbuf, mib->parm2); - for (i = 0; i < cnt; i++) - prism2mgmt_prism2int2p80211int(wordbuf+i, uint32+i); - } else { - for (i = 0; i < cnt; i++) - prism2mgmt_p80211int2prism2int(wordbuf+i, uint32+i); - result = hfa384x_drvr_setconfig(hw, mib->parm1, wordbuf, mib->parm2); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_uint32offset -* -* Get/set a single element in an array of uint32 data. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Number of bytes of RID data. -* parm3 Element index. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_uint32offset( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - UINT16 cnt; - - DBFENTER; - - cnt = mib->parm2 / sizeof(UINT16); - - result = hfa384x_drvr_getconfig(hw, mib->parm1, wordbuf, mib->parm2); - if (result == 0) { - if (isget) { - if (mib->parm3 < cnt) - prism2mgmt_prism2int2p80211int(wordbuf+mib->parm3, uint32); - else - *uint32 = 0; - } else { - if (mib->parm3 < cnt) { - prism2mgmt_p80211int2prism2int(wordbuf+mib->parm3, uint32); - result = hfa384x_drvr_setconfig(hw, mib->parm1, wordbuf, mib->parm2); - } - } - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_truth -* -* Get/set truth data. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_truth( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - - DBFENTER; - - if (isget) { - result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf); - *uint32 = (*wordbuf) ? - P80211ENUM_truth_true : P80211ENUM_truth_false; - } else { - *wordbuf = ((*uint32) == P80211ENUM_truth_true) ? 1 : 0; - result = hfa384x_drvr_setconfig16(hw, mib->parm1, *wordbuf); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- * prism2mib_flag * * Get/set a flag. @@ -1859,10 +532,10 @@ p80211msg_dot11req_mibset_t *msg, void *data) { int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - UINT32 flags; + u32 *uint32 = (u32*) data; + u8 bytebuf[MIB_TMP_MAXLEN]; + u16 *wordbuf = (u16*) bytebuf; + u32 flags; DBFENTER; @@ -1893,121 +566,6 @@ void *data) } /*---------------------------------------------------------------- -* prism2mib_appcfinfoflag -* -* Get/set a single flag in the APPCFINFO record. -* -* MIB record parameters: -* parm1 Bit to get/set. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_appcfinfoflag( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - UINT16 word; - - DBFENTER; - - result = hfa384x_drvr_getconfig(hw, HFA384x_RID_CNFAPPCFINFO, - bytebuf, HFA384x_RID_CNFAPPCFINFO_LEN); - if (result == 0) { - if (isget) { - *uint32 = (hfa384x2host_16(wordbuf[3]) & mib->parm1) ? - P80211ENUM_truth_true : P80211ENUM_truth_false; - } else { - word = hfa384x2host_16(wordbuf[3]); - word = ((*uint32) == P80211ENUM_truth_true) ? - (word | mib->parm1) : (word & ~mib->parm1); - wordbuf[3] = host2hfa384x_16(word); - result = hfa384x_drvr_setconfig(hw, HFA384x_RID_CNFAPPCFINFO, - bytebuf, HFA384x_RID_CNFAPPCFINFO_LEN); - } - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_regulatorydomains -* -* Get regulatory domain data. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Number of bytes of RID data. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_regulatorydomains( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 cnt; - p80211pstrd_t *pstr = (p80211pstrd_t*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - - DBFENTER; - - result = 0; - - if (isget) { - result = hfa384x_drvr_getconfig(hw, mib->parm1, wordbuf, mib->parm2); - prism2mgmt_prism2int2p80211int(wordbuf, &cnt); - pstr->len = (UINT8) cnt; - memcpy(pstr->data, &wordbuf[1], pstr->len); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- * prism2mib_wepdefaultkey * * Get/set WEP default keys. @@ -2042,8 +600,8 @@ void *data) { int result; p80211pstrd_t *pstr = (p80211pstrd_t*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 len; + u8 bytebuf[MIB_TMP_MAXLEN]; + u16 len; DBFENTER; @@ -2062,114 +620,6 @@ void *data) } /*---------------------------------------------------------------- -* prism2mib_powermanagement -* -* Get/set 802.11 power management value. Note that this is defined differently -* by 802.11 and Prism2: -* -* Meaning 802.11 Prism2 -* active 1 false -* powersave 2 true -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_powermanagement( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - UINT32 value; - - DBFENTER; - - if (isget) { - result = prism2mib_uint32(mib, isget, wlandev, hw, msg, &value); - *uint32 = (value == 0) ? 1 : 2; - } else { - value = ((*uint32) == 1) ? 0 : 1; - result = prism2mib_uint32(mib, isget, wlandev, hw, msg, &value); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_preamble -* -* Get/set Prism2 short preamble -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_preamble( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - - DBFENTER; - - if (isget) { - result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf); - *uint32 = *wordbuf; - } else { - *wordbuf = *uint32; - result = hfa384x_drvr_setconfig16(hw, mib->parm1, *wordbuf); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- * prism2mib_privacyinvoked * * Get/set the dot11PrivacyInvoked value. @@ -2296,7 +746,7 @@ p80211msg_dot11req_mibset_t *msg, void *data) { int result; - UINT32 *uint32 = (UINT32*) data; + u32 *uint32 = (u32*) data; DBFENTER; @@ -2315,349 +765,6 @@ void *data) } /*---------------------------------------------------------------- -* prism2mib_operationalrateset -* -* Get/set the operational rate set. -* -* MIB record parameters: -* parm1 Prism2 RID value. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_operationalrateset( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - p80211pstrd_t *pstr = (p80211pstrd_t *) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 *wordbuf = (UINT16*) bytebuf; - - DBFENTER; - - if (isget) { - result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf); - prism2mgmt_get_oprateset(wordbuf, pstr); - } else { - prism2mgmt_set_oprateset(wordbuf, pstr); - result = hfa384x_drvr_setconfig16(hw, mib->parm1, *wordbuf); - result = hfa384x_drvr_setconfig16(hw, HFA384x_RID_CNFSUPPRATES, *wordbuf); - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_groupaddress -* -* Get/set the dot11GroupAddressesTable. -* -* MIB record parameters: -* parm1 Not used. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_groupaddress( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - p80211pstrd_t *pstr = (p80211pstrd_t *) data; - UINT8 bytebuf[MIB_TMP_MAXLEN]; - UINT16 len; - - DBFENTER; - - /* TODO: fix this. f/w doesn't support mcast filters */ - - if (isget) { - prism2mgmt_get_grpaddr(mib->did, pstr, hw); - return(0); - } - - result = prism2mgmt_set_grpaddr(mib->did, bytebuf, pstr, hw); - if (result != 0) { - msg->resultcode.data = P80211ENUM_resultcode_not_supported; - return(result); - } - - if (hw->dot11_grpcnt <= MAX_PRISM2_GRP_ADDR) { - len = hw->dot11_grpcnt * WLAN_ADDR_LEN; - memcpy(bytebuf, hw->dot11_grp_addr[0], len); - result = hfa384x_drvr_setconfig(hw, HFA384x_RID_GROUPADDR, bytebuf, len); - - /* - ** Turn off promiscuous mode if count is equal to MAX. We may - ** have been at a higher count in promiscuous mode and need to - ** turn it off. - */ - - /* but only if we're not already in promisc mode. :) */ - if ((hw->dot11_grpcnt == MAX_PRISM2_GRP_ADDR) && - !( wlandev->netdev->flags & IFF_PROMISC)) { - result = hfa384x_drvr_setconfig16(hw, - HFA384x_RID_PROMISCMODE, 0); - } - } else { - - /* - ** Clear group addresses in card and set to promiscuous mode. - */ - - memset(bytebuf, 0, sizeof(bytebuf)); - result = hfa384x_drvr_setconfig(hw, HFA384x_RID_GROUPADDR, - bytebuf, 0); - if (result == 0) { - result = hfa384x_drvr_setconfig16(hw, - HFA384x_RID_PROMISCMODE, 1); - } - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_fwid -* -* Get the firmware ID. -* -* MIB record parameters: -* parm1 Not used. -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_fwid( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - p80211pstrd_t *pstr = (p80211pstrd_t *) data; - hfa384x_FWID_t fwid; - - DBFENTER; - - if (isget) { - result = hfa384x_drvr_getconfig(hw, HFA384x_RID_FWID, - &fwid, HFA384x_RID_FWID_LEN); - if (mib->did == DIDmib_p2_p2NIC_p2PrimaryFWID) { - fwid.primary[HFA384x_FWID_LEN - 1] = '\0'; - pstr->len = strlen(fwid.primary); - memcpy(pstr->data, fwid.primary, pstr->len); - } else { - fwid.secondary[HFA384x_FWID_LEN - 1] = '\0'; - pstr->len = strlen(fwid.secondary); - memcpy(pstr->data, fwid.secondary, pstr->len); - } - } else - result = 0; /* Should never happen. */ - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- -* prism2mib_authalg -* -* Get values from the AuhtenticationAlgorithmsTable. -* -* MIB record parameters: -* parm1 Table index (1-6). -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_authalg( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - UINT32 *uint32 = (UINT32*) data; - - DBFENTER; - - /* MSM: pkx supplied code that code queries RID FD4D....but the f/w's - * results are bogus. Therefore, we have to simulate the appropriate - * results here in the driver based on our knowledge of existing MAC - * features. That's the whole point behind this ugly function. - */ - - if (isget) { - msg->resultcode.data = P80211ENUM_resultcode_success; - switch (mib->parm1) { - case 1: /* Open System */ - *uint32 = P80211ENUM_authalg_opensystem; - break; - case 2: /* SharedKey */ - *uint32 = P80211ENUM_authalg_sharedkey; - break; - default: - *uint32 = 0; - msg->resultcode.data = P80211ENUM_resultcode_not_supported; - break; - } - } - - DBFEXIT; - return(0); -} - -/*---------------------------------------------------------------- -* prism2mib_authalgenable -* -* Get/set the enable values from the AuhtenticationAlgorithmsTable. -* -* MIB record parameters: -* parm1 Table index (1-6). -* parm2 Not used. -* parm3 Not used. -* -* Arguments: -* mib MIB record. -* isget MIBGET/MIBSET flag. -* wlandev wlan device structure. -* priv "priv" structure. -* hw "hw" structure. -* msg Message structure. -* data Data buffer. -* -* Returns: -* 0 - Success. -* ~0 - Error. -* -----------------------------------------------------------------*/ - -static int prism2mib_authalgenable( -mibrec_t *mib, -int isget, -wlandevice_t *wlandev, -hfa384x_t *hw, -p80211msg_dot11req_mibset_t *msg, -void *data) -{ - int result; - UINT32 *uint32 = (UINT32*) data; - - int index; - UINT16 cnf_auth; - UINT16 mask; - - DBFENTER; - - index = mib->parm1 - 1; - - result = hfa384x_drvr_getconfig16( hw, - HFA384x_RID_CNFAUTHENTICATION, &cnf_auth); - WLAN_LOG_DEBUG(2,"cnfAuthentication0=%d, index=%d\n", cnf_auth, index); - - if (isget) { - if ( index == 0 || index == 1 ) { - *uint32 = (cnf_auth & (1<<index)) ? - P80211ENUM_truth_true: P80211ENUM_truth_false; - } else { - *uint32 = P80211ENUM_truth_false; - msg->resultcode.data = P80211ENUM_resultcode_not_supported; - } - } else { - if ( index == 0 || index == 1 ) { - mask = 1 << index; - if (*uint32==P80211ENUM_truth_true ) { - cnf_auth |= mask; - } else { - cnf_auth &= ~mask; - } - result = hfa384x_drvr_setconfig16( hw, - HFA384x_RID_CNFAUTHENTICATION, cnf_auth); - WLAN_LOG_DEBUG(2,"cnfAuthentication:=%d\n", cnf_auth); - if ( result ) { - WLAN_LOG_DEBUG(1,"Unable to set p2cnfAuthentication to %d\n", cnf_auth); - msg->resultcode.data = P80211ENUM_resultcode_implementation_failure; - } - } else { - msg->resultcode.data = P80211ENUM_resultcode_not_supported; - } - } - - DBFEXIT; - return(result); -} - -/*---------------------------------------------------------------- * prism2mib_priv * * Get/set values in the "priv" data structure. @@ -2690,218 +797,18 @@ hfa384x_t *hw, p80211msg_dot11req_mibset_t *msg, void *data) { - UINT32 *uint32 = (UINT32*) data; p80211pstrd_t *pstr = (p80211pstrd_t*) data; - p80211macarray_t *macarray = (p80211macarray_t *) data; - - int i, cnt, result, done; - - prism2sta_authlist_t old; - - /* - ** "test" is a lot longer than necessary but who cares? ...as long as - ** it is long enough! - */ - UINT8 test[sizeof(wlandev->rx) + sizeof(hw->tallies)]; + int result; DBFENTER; switch (mib->did) { - case DIDmib_p2_p2Table_p2ReceivedFrameStatistics: - - /* - ** Note: The values in this record are changed by the - ** interrupt handler and therefore cannot be guaranteed - ** to be stable while they are being copied. However, - ** the interrupt handler will take priority over this - ** code. Hence, if the same values are copied twice, - ** then we are ensured that the values have not been - ** changed. If they have, then just try again. Don't - ** try more than 10 times...if we still haven't got it, - ** then the values we do have are probably good enough. - ** This scheme for copying values is used in order to - ** prevent having to block the interrupt handler while - ** we copy the values. - */ - - if (isget) - for (i = 0; i < 10; i++) { - memcpy(data, &wlandev->rx, sizeof(wlandev->rx)); - memcpy(test, &wlandev->rx, sizeof(wlandev->rx)); - if (memcmp(data, test, sizeof(wlandev->rx)) == 0) break; - } - - break; - - case DIDmib_p2_p2Table_p2CommunicationTallies: - - /* - ** Note: The values in this record are changed by the - ** interrupt handler and therefore cannot be guaranteed - ** to be stable while they are being copied. See the - ** note above about copying values. - */ - - if (isget) { - result = hfa384x_drvr_commtallies(hw); - - /* ?????? We need to wait a bit here for the */ - /* tallies to get updated. ?????? */ - /* MSM: TODO: The right way to do this is to - * add a "commtallie" wait queue to the - * priv structure that gets run every time - * we receive a commtally info frame. - * This process would sleep on that - * queue and get awakened when the - * the requested info frame arrives. - * Don't have time to do and test this - * right now. - */ - - /* Ugh, this is nasty. */ - for (i = 0; i < 10; i++) { - memcpy(data, - &hw->tallies, - sizeof(hw->tallies)); - memcpy(test, - &hw->tallies, - sizeof(hw->tallies)); - if ( memcmp(data, - test, - sizeof(hw->tallies)) == 0) - break; - } - } - - break; - - case DIDmib_p2_p2Table_p2Authenticated: - - if (isget) { - prism2mib_priv_authlist(hw, &old); - - macarray->cnt = 0; - for (i = 0; i < old.cnt; i++) { - if (!old.assoc[i]) { - memcpy(macarray->data[macarray->cnt], old.addr[i], WLAN_ADDR_LEN); - macarray->cnt++; - } - } - } - - break; - - case DIDmib_p2_p2Table_p2Associated: - - if (isget) { - prism2mib_priv_authlist(hw, &old); - - macarray->cnt = 0; - for (i = 0; i < old.cnt; i++) { - if (old.assoc[i]) { - memcpy(macarray->data[macarray->cnt], old.addr[i], WLAN_ADDR_LEN); - macarray->cnt++; - } - } - } - - break; - - case DIDmib_p2_p2Table_p2PowerSaveUserCount: - - if (isget) - *uint32 = hw->psusercount; - - break; - - case DIDmib_p2_p2Table_p2Comment: - - if (isget) { - pstr->len = strlen(hw->comment); - memcpy(pstr->data, hw->comment, pstr->len); - } else { - cnt = pstr->len; - if (cnt < 0) cnt = 0; - if (cnt >= sizeof(hw->comment)) - cnt = sizeof(hw->comment)-1; - memcpy(hw->comment, pstr->data, cnt); - pstr->data[cnt] = '\0'; - } - - break; - - case DIDmib_p2_p2Table_p2AccessMode: - - if (isget) - *uint32 = hw->accessmode; - else - prism2mib_priv_accessmode(hw, *uint32); - - break; - - case DIDmib_p2_p2Table_p2AccessAllow: - - if (isget) { - macarray->cnt = hw->allow.cnt; - memcpy(macarray->data, hw->allow.addr, - macarray->cnt*WLAN_ADDR_LEN); - } else { - prism2mib_priv_accessallow(hw, macarray); - } - - break; - - case DIDmib_p2_p2Table_p2AccessDeny: - - if (isget) { - macarray->cnt = hw->deny.cnt; - memcpy(macarray->data, hw->deny.addr, - macarray->cnt*WLAN_ADDR_LEN); - } else { - prism2mib_priv_accessdeny(hw, macarray); - } - - break; - - case DIDmib_p2_p2Table_p2ChannelInfoResults: - - if (isget) { - done = atomic_read(&hw->channel_info.done); - if (done == 0) { - msg->resultcode.status = P80211ENUM_msgitem_status_no_value; - break; - } - if (done == 1) { - msg->resultcode.status = P80211ENUM_msgitem_status_incomplete_itemdata; - break; - } - - for (i = 0; i < 14; i++, uint32 += 5) { - uint32[0] = i+1; - uint32[1] = hw->channel_info.results.result[i].anl; - uint32[2] = hw->channel_info.results.result[i].pnl; - uint32[3] = (hw->channel_info.results.result[i].active & HFA384x_CHINFORESULT_BSSACTIVE) ? 1 : 0; - uint32[4] = (hw->channel_info.results.result[i].active & HFA384x_CHINFORESULT_PCFACTIVE) ? 1 : 0; - } - } - - break; - - case DIDmib_dot11smt_dot11StationConfigTable_dot11DesiredBSSType: - - if (isget) - *uint32 = hw->dot11_desired_bss_type; - else - hw->dot11_desired_bss_type = *uint32; - - break; - case DIDmib_lnx_lnxConfigTable_lnxRSNAIE: { hfa384x_WPAData_t wpa; if (isget) { hfa384x_drvr_getconfig( hw, HFA384x_RID_CNFWPADATA, - (UINT8 *) &wpa, sizeof(wpa)); + (u8 *) &wpa, sizeof(wpa)); pstr->len = hfa384x2host_16(wpa.datalen); memcpy(pstr->data, wpa.data, pstr->len); } else { @@ -2909,7 +816,7 @@ void *data) memcpy(wpa.data, pstr->data, pstr->len); result = hfa384x_drvr_setconfig(hw, HFA384x_RID_CNFWPADATA, - (UINT8 *) &wpa, sizeof(wpa)); + (u8 *) &wpa, sizeof(wpa)); } break; } @@ -2922,345 +829,6 @@ void *data) } /*---------------------------------------------------------------- -* prism2mib_priv_authlist -* -* Get a copy of the list of authenticated stations. -* -* Arguments: -* priv "priv" structure. -* list List of authenticated stations. -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ - -static void prism2mib_priv_authlist( -hfa384x_t *hw, -prism2sta_authlist_t *list) -{ - prism2sta_authlist_t test; - int i; - - DBFENTER; - - /* - ** Note: The values in this record are changed by the interrupt - ** handler and therefore cannot be guaranteed to be stable while - ** they are being copied. However, the interrupt handler will - ** take priority over this code. Hence, if the same values are - ** copied twice, then we are ensured that the values have not - ** been changed. If they have, then just try again. Don't try - ** more than 10 times...the list of authenticated stations is - ** unlikely to be changing frequently enough that we can't get - ** a snapshot in 10 tries. Don't try more than this so that we - ** don't risk locking-up for long periods of time. If we still - ** haven't got the snapshot, then generate an error message and - ** return an empty list (since this is the only valid list that - ** we can guarentee). This scheme for copying values is used in - ** order to prevent having to block the interrupt handler while - ** we copy the values. - */ - - for (i = 0; i < 10; i++) { - memcpy(list, &hw->authlist, sizeof(prism2sta_authlist_t)); - memcpy(&test, &hw->authlist, sizeof(prism2sta_authlist_t)); - if (memcmp(list, &test, sizeof(prism2sta_authlist_t)) == 0) - break; - } - - if (i >= 10) { - list->cnt = 0; - WLAN_LOG_ERROR("Could not obtain snapshot of authenticated stations.\n"); - } - - DBFEXIT; - return; -} - -/*---------------------------------------------------------------- -* prism2mib_priv_accessmode -* -* Set the Access Mode. -* -* Arguments: -* priv "priv" structure. -* hw "hw" structure. -* mode New access mode. -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ - -static void prism2mib_priv_accessmode( -hfa384x_t *hw, -UINT32 mode) -{ - prism2sta_authlist_t old; - int i, j, deauth; - UINT8 *addr; - - DBFENTER; - - /* - ** If the mode is not changing or it is changing to "All", then it's - ** okay to go ahead without a lot of messing around. Otherwise, the - ** access mode is changing in a way that may leave some stations - ** authenticated which should not be authenticated. It will be - ** necessary to de-authenticate these stations. - */ - - if (mode == WLAN_ACCESS_ALL || mode == hw->accessmode) { - hw->accessmode = mode; - return; - } - - /* - ** Switch to the new access mode. Once this is done, then the interrupt - ** handler (which uses this value) will be prevented from authenticating - ** ADDITIONAL stations which should not be authenticated. Then get a - ** copy of the current list of authenticated stations. - */ - - hw->accessmode = mode; - - prism2mib_priv_authlist(hw, &old); - - /* - ** Now go through the list of previously authenticated stations (some - ** of which might de-authenticate themselves while we are processing it - ** but that is okay). Any station which no longer matches the access - ** mode, must be de-authenticated. - */ - - for (i = 0; i < old.cnt; i++) { - addr = old.addr[i]; - - if (mode == WLAN_ACCESS_NONE) - deauth = 1; - else { - if (mode == WLAN_ACCESS_ALLOW) { - for (j = 0; j < hw->allow.cnt; j++) - if (memcmp(addr, hw->allow.addr[j], - WLAN_ADDR_LEN) == 0) - break; - deauth = (j >= hw->allow.cnt); - } else { - for (j = 0; j < hw->deny.cnt; j++) - if (memcmp(addr, hw->deny.addr[j], - WLAN_ADDR_LEN) == 0) - break; - deauth = (j < hw->deny.cnt); - } - } - - if (deauth) prism2mib_priv_deauthenticate(hw, addr); - } - - DBFEXIT; - return; -} - -/*---------------------------------------------------------------- -* prism2mib_priv_accessallow -* -* Change the list of allowed MAC addresses. -* -* Arguments: -* priv "priv" structure. -* hw "hw" structure. -* macarray New array of MAC addresses. -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ - -static void prism2mib_priv_accessallow( -hfa384x_t *hw, -p80211macarray_t *macarray) -{ - prism2sta_authlist_t old; - int i, j; - - DBFENTER; - - /* - ** Change the access list. Note that the interrupt handler may be in - ** the middle of using the access list!!! Since the interrupt handler - ** will always have priority over this process and this is the only - ** process that will modify the list, this problem can be handled as - ** follows: - ** - ** 1. Set the "modify" flag. - ** 2. Change the first copy of the list. - ** 3. Clear the "modify" flag. - ** 4. Change the backup copy of the list. - ** - ** The interrupt handler will check the "modify" flag. If NOT set, then - ** the first copy of the list is valid and may be used. Otherwise, the - ** first copy is being changed but the backup copy is valid and may be - ** used. Doing things this way prevents having to have the interrupt - ** handler block while the list is being updated. - */ - - hw->allow.modify = 1; - - hw->allow.cnt = macarray->cnt; - memcpy(hw->allow.addr, macarray->data, macarray->cnt*WLAN_ADDR_LEN); - - hw->allow.modify = 0; - - hw->allow.cnt1 = macarray->cnt; - memcpy(hw->allow.addr1, macarray->data, macarray->cnt*WLAN_ADDR_LEN); - - /* - ** If the current access mode is "Allow", then changing the access - ** list may leave some stations authenticated which should not be - ** authenticated. It will be necessary to de-authenticate these - ** stations. Otherwise, the list can be changed without a lot of fuss. - */ - - if (hw->accessmode == WLAN_ACCESS_ALLOW) { - - /* - ** Go through the list of authenticated stations (some of - ** which might de-authenticate themselves while we are - ** processing it but that is okay). Any station which is - ** no longer in the list of allowed stations, must be - ** de-authenticated. - */ - - prism2mib_priv_authlist(hw, &old); - - for (i = 0; i < old.cnt; i++) { - for (j = 0; j < hw->allow.cnt; j++) - if (memcmp(old.addr[i], hw->allow.addr[j], - WLAN_ADDR_LEN) == 0) - break; - if (j >= hw->allow.cnt) - prism2mib_priv_deauthenticate(hw, old.addr[i]); - } - } - - DBFEXIT; - return; -} - -/*---------------------------------------------------------------- -* prism2mib_priv_accessdeny -* -* Change the list of denied MAC addresses. -* -* Arguments: -* priv "priv" structure. -* hw "hw" structure. -* macarray New array of MAC addresses. -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ - -static void prism2mib_priv_accessdeny( -hfa384x_t *hw, -p80211macarray_t *macarray) -{ - prism2sta_authlist_t old; - int i, j; - - DBFENTER; - - /* - ** Change the access list. Note that the interrupt handler may be in - ** the middle of using the access list!!! Since the interrupt handler - ** will always have priority over this process and this is the only - ** process that will modify the list, this problem can be handled as - ** follows: - ** - ** 1. Set the "modify" flag. - ** 2. Change the first copy of the list. - ** 3. Clear the "modify" flag. - ** 4. Change the backup copy of the list. - ** - ** The interrupt handler will check the "modify" flag. If NOT set, then - ** the first copy of the list is valid and may be used. Otherwise, the - ** first copy is being changed but the backup copy is valid and may be - ** used. Doing things this way prevents having to have the interrupt - ** handler block while the list is being updated. - */ - - hw->deny.modify = 1; - - hw->deny.cnt = macarray->cnt; - memcpy(hw->deny.addr, macarray->data, macarray->cnt*WLAN_ADDR_LEN); - - hw->deny.modify = 0; - - hw->deny.cnt1 = macarray->cnt; - memcpy(hw->deny.addr1, macarray->data, macarray->cnt*WLAN_ADDR_LEN); - - /* - ** If the current access mode is "Deny", then changing the access - ** list may leave some stations authenticated which should not be - ** authenticated. It will be necessary to de-authenticate these - ** stations. Otherwise, the list can be changed without a lot of fuss. - */ - - if (hw->accessmode == WLAN_ACCESS_DENY) { - - /* - ** Go through the list of authenticated stations (some of - ** which might de-authenticate themselves while we are - ** processing it but that is okay). Any station which is - ** now in the list of denied stations, must be de-authenticated. - */ - - prism2mib_priv_authlist(hw, &old); - - for (i = 0; i < old.cnt; i++) - for (j = 0; j < hw->deny.cnt; j++) - if (memcmp(old.addr[i], hw->deny.addr[j], - WLAN_ADDR_LEN) == 0) { - prism2mib_priv_deauthenticate(hw, old.addr[i]); - break; - } - } - - DBFEXIT; - return; -} - -/*---------------------------------------------------------------- -* prism2mib_priv_deauthenticate -* -* De-authenticate a station. This is done by sending a HandoverAddress -* information frame to the firmware. This should work, according to -* Intersil. -* -* Arguments: -* priv "priv" structure. -* hw "hw" structure. -* addr MAC address of station to be de-authenticated. -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ - -static void prism2mib_priv_deauthenticate( -hfa384x_t *hw, -UINT8 *addr) -{ - DBFENTER; - hfa384x_drvr_handover(hw, addr); - DBFEXIT; - return; -} - - -/*---------------------------------------------------------------- * prism2mgmt_pstr2bytestr * * Convert the pstr data in the WLAN message structure into an hfa384x @@ -3279,7 +847,7 @@ void prism2mgmt_pstr2bytestr(hfa384x_bytestr_t *bytestr, p80211pstrd_t *pstr) { DBFENTER; - bytestr->len = host2hfa384x_16((UINT16)(pstr->len)); + bytestr->len = host2hfa384x_16((u16)(pstr->len)); memcpy(bytestr->data, pstr->data, pstr->len); DBFEXIT; } @@ -3300,7 +868,7 @@ void prism2mgmt_pstr2bytestr(hfa384x_bytestr_t *bytestr, p80211pstrd_t *pstr) * ----------------------------------------------------------------*/ -void prism2mgmt_pstr2bytearea(UINT8 *bytearea, p80211pstrd_t *pstr) +void prism2mgmt_pstr2bytearea(u8 *bytearea, p80211pstrd_t *pstr) { DBFENTER; @@ -3328,7 +896,7 @@ void prism2mgmt_bytestr2pstr(hfa384x_bytestr_t *bytestr, p80211pstrd_t *pstr) { DBFENTER; - pstr->len = (UINT8)(hfa384x2host_16((UINT16)(bytestr->len))); + pstr->len = (u8)(hfa384x2host_16((u16)(bytestr->len))); memcpy(pstr->data, bytestr->data, pstr->len); DBFEXIT; } @@ -3349,11 +917,11 @@ void prism2mgmt_bytestr2pstr(hfa384x_bytestr_t *bytestr, p80211pstrd_t *pstr) * ----------------------------------------------------------------*/ -void prism2mgmt_bytearea2pstr(UINT8 *bytearea, p80211pstrd_t *pstr, int len) +void prism2mgmt_bytearea2pstr(u8 *bytearea, p80211pstrd_t *pstr, int len) { DBFENTER; - pstr->len = (UINT8)len; + pstr->len = (u8)len; memcpy(pstr->data, bytearea, len); DBFEXIT; } @@ -3373,11 +941,11 @@ void prism2mgmt_bytearea2pstr(UINT8 *bytearea, p80211pstrd_t *pstr, int len) * ----------------------------------------------------------------*/ -void prism2mgmt_prism2int2p80211int(UINT16 *prism2int, UINT32 *wlanint) +void prism2mgmt_prism2int2p80211int(u16 *prism2int, u32 *wlanint) { DBFENTER; - *wlanint = (UINT32)hfa384x2host_16(*prism2int); + *wlanint = (u32)hfa384x2host_16(*prism2int); DBFEXIT; } @@ -3396,11 +964,11 @@ void prism2mgmt_prism2int2p80211int(UINT16 *prism2int, UINT32 *wlanint) * ----------------------------------------------------------------*/ -void prism2mgmt_p80211int2prism2int(UINT16 *prism2int, UINT32 *wlanint) +void prism2mgmt_p80211int2prism2int(u16 *prism2int, u32 *wlanint) { DBFENTER; - *prism2int = host2hfa384x_16((UINT16)(*wlanint)); + *prism2int = host2hfa384x_16((u16)(*wlanint)); DBFEXIT; } @@ -3419,7 +987,7 @@ void prism2mgmt_p80211int2prism2int(UINT16 *prism2int, UINT32 *wlanint) * Nothing * ----------------------------------------------------------------*/ -void prism2mgmt_prism2enum2p80211enum(UINT16 *prism2enum, UINT32 *wlanenum, UINT16 rid) +void prism2mgmt_prism2enum2p80211enum(u16 *prism2enum, u32 *wlanenum, u16 rid) { DBFENTER; @@ -3445,7 +1013,7 @@ void prism2mgmt_prism2enum2p80211enum(UINT16 *prism2enum, UINT32 *wlanenum, UINT * Nothing * ----------------------------------------------------------------*/ -void prism2mgmt_p80211enum2prism2enum(UINT16 *prism2enum, UINT32 *wlanenum, UINT16 rid) +void prism2mgmt_p80211enum2prism2enum(u16 *prism2enum, u32 *wlanenum, u16 rid) { DBFENTER; @@ -3471,10 +1039,10 @@ void prism2mgmt_p80211enum2prism2enum(UINT16 *prism2enum, UINT32 *wlanenum, UINT * Nothing * ----------------------------------------------------------------*/ -void prism2mgmt_get_oprateset(UINT16 *rate, p80211pstrd_t *pstr) +void prism2mgmt_get_oprateset(u16 *rate, p80211pstrd_t *pstr) { - UINT8 len; - UINT8 *datarate; + u8 len; + u8 *datarate; DBFENTER; @@ -3483,29 +1051,29 @@ void prism2mgmt_get_oprateset(UINT16 *rate, p80211pstrd_t *pstr) /* 1 Mbps */ if ( BIT0 & (*rate) ) { - len += (UINT8)1; - *datarate = (UINT8)2; + len += (u8)1; + *datarate = (u8)2; datarate++; } /* 2 Mbps */ if ( BIT1 & (*rate) ) { - len += (UINT8)1; - *datarate = (UINT8)4; + len += (u8)1; + *datarate = (u8)4; datarate++; } /* 5.5 Mbps */ if ( BIT2 & (*rate) ) { - len += (UINT8)1; - *datarate = (UINT8)11; + len += (u8)1; + *datarate = (u8)11; datarate++; } /* 11 Mbps */ if ( BIT3 & (*rate) ) { - len += (UINT8)1; - *datarate = (UINT8)22; + len += (u8)1; + *datarate = (u8)22; datarate++; } @@ -3530,9 +1098,9 @@ void prism2mgmt_get_oprateset(UINT16 *rate, p80211pstrd_t *pstr) * Nothing * ----------------------------------------------------------------*/ -void prism2mgmt_set_oprateset(UINT16 *rate, p80211pstrd_t *pstr) +void prism2mgmt_set_oprateset(u16 *rate, p80211pstrd_t *pstr) { - UINT8 *datarate; + u8 *datarate; int i; DBFENTER; @@ -3565,233 +1133,3 @@ void prism2mgmt_set_oprateset(UINT16 *rate, p80211pstrd_t *pstr) DBFEXIT; return; } - - - -/*---------------------------------------------------------------- -* prism2mgmt_get_grpaddr -* -* Retrieves a particular group address from the list of -* group addresses. -* -* Arguments: -* did mibitem did -* pstr wlan octet string -* priv prism2 driver private data structure -* -* Returns: -* Nothing -* -----------------------------------------------------------------*/ -void prism2mgmt_get_grpaddr(UINT32 did, p80211pstrd_t *pstr, - hfa384x_t *hw ) -{ - int index; - - DBFENTER; - - index = prism2mgmt_get_grpaddr_index(did); - - if ( index >= 0 ) { - pstr->len = WLAN_ADDR_LEN; - memcpy(pstr->data, hw->dot11_grp_addr[index], - WLAN_ADDR_LEN); - } - - DBFEXIT; - return; -} - - - -/*---------------------------------------------------------------- -* prism2mgmt_set_grpaddr -* -* Convert the wlan octet string into an hfa384x bit area. -* -* Arguments: -* did mibitem did -* buf -* groups -* -* Returns: -* 0 Success -* !0 Error -* -----------------------------------------------------------------*/ -int prism2mgmt_set_grpaddr(UINT32 did, UINT8 *prism2buf, - p80211pstrd_t *pstr, hfa384x_t *hw ) -{ - UINT8 no_addr[WLAN_ADDR_LEN]; - int index; - - DBFENTER; - - memset(no_addr, 0, WLAN_ADDR_LEN); - if (memcmp(no_addr, pstr->data, WLAN_ADDR_LEN) != 0) { - - /* - ** The address is NOT 0 so we are "adding" an address to the - ** group address list. Check to make sure we aren't trying - ** to add more than the maximum allowed number of group - ** addresses in the list. The new address is added to the - ** end of the list regardless of the DID used to add the - ** address. - */ - - if (hw->dot11_grpcnt >= MAX_GRP_ADDR) return(-1); - - memcpy(hw->dot11_grp_addr[hw->dot11_grpcnt], pstr->data, - WLAN_ADDR_LEN); - hw->dot11_grpcnt += 1; - } else { - - /* - ** The address is 0. Interpret this as "deleting" an address - ** from the group address list. Get the address index from - ** the DID. If this is within the range of used addresses, - ** then delete the specified address by shifting all following - ** addresses down. Then clear the last address (which should - ** now be unused). If the address index is NOT within the - ** range of used addresses, then just ignore the address. - */ - - index = prism2mgmt_get_grpaddr_index(did); - if (index >= 0 && index < hw->dot11_grpcnt) { - hw->dot11_grpcnt -= 1; - memmove(hw->dot11_grp_addr[index], - hw->dot11_grp_addr[index + 1], - ((hw->dot11_grpcnt)-index) * WLAN_ADDR_LEN); - memset(hw->dot11_grp_addr[hw->dot11_grpcnt], 0, - WLAN_ADDR_LEN); - } - } - - DBFEXIT; - return(0); -} - - -/*---------------------------------------------------------------- -* prism2mgmt_get_grpaddr_index -* -* Gets the index in the group address list based on the did. -* -* Arguments: -* did mibitem did -* -* Returns: -* >= 0 If valid did -* < 0 If not valid did -* -----------------------------------------------------------------*/ -int prism2mgmt_get_grpaddr_index( UINT32 did ) -{ - int index; - - DBFENTER; - - index = -1; - - switch (did) { - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address1: - index = 0; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address2: - index = 1; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address3: - index = 2; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address4: - index = 3; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address5: - index = 4; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address6: - index = 5; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address7: - index = 6; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address8: - index = 7; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address9: - index = 8; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address10: - index = 9; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address11: - index = 10; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address12: - index = 11; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address13: - index = 12; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address14: - index = 13; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address15: - index = 14; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address16: - index = 15; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address17: - index = 16; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address18: - index = 17; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address19: - index = 18; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address20: - index = 19; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address21: - index = 20; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address22: - index = 21; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address23: - index = 22; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address24: - index = 23; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address25: - index = 24; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address26: - index = 25; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address27: - index = 26; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address28: - index = 27; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address29: - index = 28; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address30: - index = 29; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address31: - index = 30; - break; - case DIDmib_dot11mac_dot11GroupAddressesTable_dot11Address32: - index = 31; - break; - } - - DBFEXIT; - return index; -} |