📄 wlan_phoenix.h
字号:
//************************************************************************************************
//* WLAN PHOENIX DRIVER
//* LAST UPDATED 08/09/2008
//* FIRMWARE BY FRED EADY FOR NUTS AND VOLTS MAGAZINE's DESIGN CYCLE
//* CHANGES/ADDITIONS
//************************************************************************************************
//* COMMAND/STATUS
#define Command_Register 0x0000 // Define Compact Flash IO registers
#define Param0_Register 0x0002
#define Param1_Register 0x0004
#define Param2_Register 0x0006
#define Status_Register 0x0008
#define Resp0_Register 0x000A
#define Resp1_Register 0x000C
#define Resp2_Register 0x000E
//* FID MANAGEMENT
#define InfoFID_Register 0x0010
#define RxFID_Register 0x0020
#define AllocFID_Register 0x0022
#define TxComplFID_Register 0x0024
//* BAP0
#define BAP0 0
#define Select0_Register 0x0018
#define Offset0_Register 0x001C
#define Data0_Register 0x0036
//* BAP1
#define BAP1 1
#define Select1_Register 0x001A
#define Offset1_Register 0x001E
#define Data1_Register 0x0038
//* EVENT
#define EvStat_Register 0x0030
#define IntEn_Register 0x0032
#define EvAck_Register 0x0034
//* HOST SOFTWARE
#define SwSupport0_Register 0x0028
//* BIT MASKS
#define CmdCode_Mask 0x003F
#define CmdBusy_Bit_Mask 0x8000
#define EvStat_Tick_Bit_Mask 0x8000
#define EvStat_WTErr_Bit_Mask 0x4000
#define EvStat_InfDrop_Bit_Mask 0x2000
#define EvStat_Info_Bit_Mask 0x0080
#define EvStat_DTIM_Bit_Mask 0x0020
#define EvStat_Cmd_Bit_Mask 0x0010
#define EvStat_Alloc_Bit_Mask 0x0008
#define EvStat_TxExc_Bit_Mask 0x0004
#define EvStat_Tx_Bit_Mask 0x0002
#define EvStat_Rx_Bit_Mask 0x0001
#define Status_Result_Mask 0x7F00
#define Status_CmdCode_Mask 0x003F
#define BAP0Busy_Bit_Mask 0x8000 //busy bit in Offset0 register
#define BAP0Err_Bit_Mask 0x4000 //Err bit in Offset0 register
#define BAP1Busy_Bit_Mask 0x8000 //busy bit in Offset1 register
#define BAP1Err_Bit_Mask 0x4000 //Err bit in Offset1 register
#define AccessWrite_Mask 0x0100 //Write RID to MAC, in Access command
#define TransmitReclaim_Mask 0x0100 //Transmit frame, with FID reclaim
//* COMMANDS
#define Initialize_Cmd 0x0000
#define EnableMAC_Cmd 0x0001
#define Disable_Cmd 0x0002
#define Diagnose_Cmd 0x0003
#define Allocate_Cmd 0x000A
#define Transmit_Cmd 0x000B
#define TransmitReclaim_Cmd 0x010B
#define Inquire_Cmd 0x0011
#define Access_Cmd 0x0021
//* RID CONFIGURATION RECORDS
#define RID_cfgPortType 0xFC00
#define RID_cfgPortType_Length 2
#define RID_cfgPortType_IBSS 0 //sets IBSS or ad-hoc network operation
#define RID_cfgPortType_Infrastructure 1 //sets BSS or infrastructure network operation
#define RID_cfgOwnMACAddress 0xFC01 //our MAC address
#define RID_cfgDesiredSSID 0xFC02 //the SSID of the BSS we want to join
#define RID_DesiredSSID_Length 18 //word count of the DesiredSSID RID
#define RID_cfgOwnChannel 0xFC03 //set the channel
#define RID_cfgOwnChannel_Length 2
#define RID_cfgOwnSSID 0xFC04 //set the SSID
#define RID_cfgOwnSSID_Length 18
#define RID_cfgMaxDataLength 0xFC07 //set maximum length of frame body data
#define RID_cfgMaxDataLength_Length 2
#define RID_cfgMaxDataLength_Value 1500
#define RID_cfgWEPDefaultKeyID 0xFC23 //which key will do encryption
#define RID_cfgWEPDefaultKeyID_Length 2
#define RID_cfgWEPDefaultKeyID_Value0 0x0000 //encryption key0
#define RID_cfgWEPDefaultKeyID_Value1 0x0001 //encryption key1
#define RID_cfgWEPDefaultKeyID_Value2 0x0010 //encryption key2
#define RID_cfgWEPDefaultKeyID_Value3 0x0011 //encryption key3
#define RID_Default128Key_Length 8 //128-bit encryption with a 13-byte key
#define RID_Default64Key_Length 4 //64-bit encryption with a 5-byte key and a 24-bit IV
#define RID_cfgDefaultKey0 0xFC24 //key bytes for key0
#define RID_cfgDefaultKey1 0xFC25 //key bytes for key1
#define RID_cfgDefaultKey2 0xFC26 //key bytes for key2
#define RID_cfgDefaultKey3 0xFC27 //key bytes for key3
#define RID_cfgWEPFlags 0xFC28 //turn WEP ON or OFF and decide how much to use IV
#define RID_cfgWEPFlags_Length 2
#define RID_cfgWEPFlags_Value_ON 0x0001 //encryption/decryption enabled and IV reuse every frame
#define RID_cfgWEPFlags_Value_OFF 0x0000 //encryption/decryption disabled
#define RID_cfgAuthentication 0xFC2A //choose Open System or Shared Key Authentication
#define RID_cfgAuthentication_Length 2
#define RID_cfgAuthentication_Value_OS 0x0001 // Allow Open System authentication
#define RID_cfgAuthentication_Value_SK 0x0002 // Allow Shared Key authentication
#define RID_cfgAuthentication_Value_OK 0x0003 // Allow both Open System and Shared Key authentication
#define RID_TxRateControl 0xFC84 //set transmission bit rates
#define RID_TxRateControl_Length 2
#define RID_TxRateControl_Value_1 0x0001 //1 Mbps
#define RID_TxRateControl_Value_2 0x0002 //2 Mbps
#define RID_TxRateControl_Value_55 0x0004 //5.5 Mbps
#define RID_TxRateControl_Value_11 0x0008 //11 Mbps
#define RID_TxRateControl_Value_ALL 0x000F //11 Mbps
#define RID_ScanRequest 0xFCE1 // Request a host scan (check results with FD88 or FD89 ?)
#define RID_ScanRequest_Length 3
#define RID_HostScan 0xFCE5 // Request a host scan -- is supposed to return Info FID of InfoType F103 (but doesn't), might be
#define RID_HostScan_Length 4 // able to specify a target SSID (but only documents using a zero-length string)
//* RID INFORMATION RECORDS
#define RID_STAIdentity 0xFD20 // Station Identity
#define RID_PortStatus 0xFD40 // Request the current port status
#define RID_PortStatus_Disabled 0x0001
#define RID_PortStatus_Searching 0x0002
#define RID_PortStatus_IBSS 0x0003
#define RID_PortStatus_BSS 0x0004
#define RID_PortStatus_OutofRange 0x0005
#define RID_CurrentTxRate 0xFD44 // Request the current transmission bit rate
#define RID_CurrentSSID 0xFD41 // Request the current SSID string
#define RID_CurrentBSSID 0xFD42 // Request the current BSSID (MAC address format)
#define RID_CommsQuality 0xFD43 // Request the current communications quality
#define RID_CommsQuality_Length 4
#define RID_AuthenticationAlgorithm 0xFD4D // Check what authentication algorithms are supported
#define RID_PrivacyOptionImplemented 0xFD4F // Check whether privacy (WEP) is implemented
#define RID_ScanResults 0xFD88 // Firmware-maintained scan table
#define RID_HostScanResults 0xFD89
#define RID_AuthenticationUsed 0xFD8A // Ask what authentication algorithm is being used in the current association
#define RID_FWID 0xFFFF // Request the Firmware Identifier
#define Info_CommunicationTallies 0xF100 // Communication tallies
#define Info_HostScanResults 0xF103 // HostScanResults
#define Info_LinkStatus 0xF200 // Link Status
#define Info_AssociationStatus 0xF201 // Association status
#define DEVICE_TUPLE 0x01
#define DEVICE_A_TUPLE 0x17
#define DEVICE_OC_TUPLE 0x1C
#define DEVICE_OA_TUPLE 0x1D
#define VERS_1_TUPLE 0x15 // TPL_CODE for CISTPL_VERS_1, which has an identification string
#define MANFID_TUPLE 0x20
#define FUNCID_TUPLE 0x21
#define FUNCE_TUPLE 0x22 // TPL_CODE for CISTPL_FUNCE, which can have the MAC address
#define CONFIG_TUPLE 0x1A // TPL_CODE for CISTPL_CONFIG, COR
#define CFTABLE_ENTRY_TUPLE 0x1B
#define END_TUPLE 0xFF
//#define TransmitBuffers_Number CFPRISM_NUMBER_XMIT_BUFS // Number of TransmitBuffers to pre-allocate (MUST match TransmitBuffers_Mask)
//#define TransmitBuffers_Mask 0x8000 // Set the bit corresponding to the highest buffer number (MUST MATCH TransmitBuffers_Number)
//static char NoPacketBuffer; // Timer to count how many times _pktentry in ReadRxFrame() can't store a received frame
#define ad802_11Header 0 // Use transmit frame structure 802.11 header (otherwise use 802.3 header)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -