Difference between revisions of "Unit RT2X00LIB"
(One intermediate revision by the same user not shown) | |||
Line 5: | Line 5: | ||
---- | ---- | ||
− | '''Ralink RT2x00 Wireless Driver | + | '''Ralink RT2x00 Wireless Driver Library unit''' |
This unit provides functionality and definitions common to all implementations of the RT2x00 chipset series PCI, USB or other. | This unit provides functionality and definitions common to all implementations of the RT2x00 chipset series PCI, USB or other. | ||
Line 2,300: | Line 2,300: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">procedure RT2X00SetRegister32(var Reg:LongWord; Mask,Shift,Value:LongWord) | + | <pre style="border: 0; padding-bottom:0px;">procedure RT2X00SetRegister32(var Reg:LongWord; Mask,Shift,Value:LongWord);</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Shift is the number of bits to shift the value left (SHL)</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Shift is the number of bits to shift the value left (SHL)</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> |
Latest revision as of 02:06, 22 April 2022
Return to Unit Reference
Description
Ralink RT2x00 Wireless Driver Library unit
This unit provides functionality and definitions common to all implementations of the RT2x00 chipset series PCI, USB or other.
Constants
RT2X00_DEVICE_STATE_*
RT2X00_DEVICE_STATE_PRESENT = (1 shl 0);
|
|
RT2X00_DEVICE_STATE_REGISTERED_HW = (1 shl 1);
|
|
RT2X00_DEVICE_STATE_INITIALIZED = (1 shl 2);
|
|
RT2X00_DEVICE_STATE_STARTED = (1 shl 3);
|
|
RT2X00_DEVICE_STATE_ENABLED_RADIO = (1 shl 4);
|
|
RT2X00_DEVICE_STATE_SCANNING = (1 shl 5);
|
|
RT2X00_CONFIG_CHANNEL_HT40 = (1 shl 6);
|
|
RT2X00_CONFIG_POWERSAVING = (1 shl 7);
|
|
RT2X00_CONFIG_HT_DISABLED = (1 shl 8);
|
|
RT2X00_CONFIG_QOS_DISABLED = (1 shl 9);
|
|
RT2X00_TX_STATUS_READING = (1 shl 10);
|
RT2X00_*_SIZE
These values should follow the ieee80211 specifications | |
RT2X00_ACK_SIZE = 14;
|
|
RT2X00_IEEE80211_HEADER = 24;
|
|
RT2X00_PLCP = 48;
|
|
RT2X00_BEACON = 100;
|
|
RT2X00_PREAMBLE = 144;
|
|
RT2X00_SHORT_PREAMBLE = 72;
|
|
RT2X00_SLOT_TIME = 20;
|
|
RT2X00_SHORT_SLOT_TIME = 9;
|
|
RT2X00_SIFS = 10;
|
|
RT2X00_PIFS = RT2X00_SIFS + RT2X00_SLOT_TIME;
|
|
RT2X00_SHORT_PIFS = RT2X00_SIFS + RT2X00_SHORT_SLOT_TIME;
|
|
RT2X00_DIFS = RT2X00_PIFS + RT2X00_SLOT_TIME;
|
|
RT2X00_SHORT_DIFS = RT2X00_SHORT_PIFS + RT2X00_SHORT_SLOT_TIME;
|
|
RT2X00_EIFS = RT2X00_SIFS + RT2X00_DIFS + RT2X00_GET_DURATION(RT2X00_IEEE80211_HEADER + RT2X00_ACK_SIZE,10);
|
|
RT2X00_SHORT_EIFS = RT2X00_SIFS + RT2X00_SHORT_DIFS + RT2X00_GET_DURATION(RT2X00_IEEE80211_HEADER + RT2X00_ACK_SIZE,10);
|
RT2X00_*_EXTRA
colspan="2"|Note: For alignment purposes | |
RT2X00_ALIGN_EXTRA = 4;
|
RT2X00_ALIGN_SIZE Only whole frame needs alignment |
RT2X00_L2PAD_EXTRA = 8;
|
RT2X00_L2PAD_SIZE Both header & payload need alignment |
RT2X00_RT*
The chipset on the device is composed of an RT and RF chip) | |
RT2X00_RT2460 = $2460;
|
|
RT2X00_RT2560 = $2560;
|
|
RT2X00_RT2570 = $2570;
|
|
RT2X00_RT2661 = $2661;
|
|
RT2X00_RT2573 = $2573;
|
|
RT2X00_RT2860 = $2860;
|
2.4GHz |
RT2X00_RT2872 = $2872;
|
WSOC |
RT2X00_RT2883 = $2883;
|
WSOC |
RT2X00_RT3070 = $3070;
|
|
RT2X00_RT3071 = $3071;
|
|
RT2X00_RT3090 = $3090;
|
2.4GHz PCIe |
RT2X00_RT3290 = $3290;
|
|
RT2X00_RT3352 = $3352;
|
WSOC |
RT2X00_RT3390 = $3390;
|
|
RT2X00_RT3572 = $3572;
|
|
RT2X00_RT3593 = $3593;
|
|
RT2X00_RT3883 = $3883;
|
WSOC |
RT2X00_RT5390 = $5390;
|
2.4GHz |
RT2X00_RT5392 = $5392;
|
2.4GHz |
RT2X00_RT5592 = $5592;
|
RT2X00_REQUIRE_*
RT2X00_REQUIRE_FIRMWARE = 1 shl 0;
|
|
RT2X00_REQUIRE_BEACON_GUARD = 1 shl 1;
|
|
RT2X00_REQUIRE_ATIM_QUEUE = 1 shl 2;
|
|
RT2X00_REQUIRE_DMA = 1 shl 3;
|
|
RT2X00_REQUIRE_COPY_IV = 1 shl 4;
|
|
RT2X00_REQUIRE_L2PAD = 1 shl 5;
|
|
RT2X00_REQUIRE_TXSTATUS_FIFO = 1 shl 6;
|
|
RT2X00_REQUIRE_SW_SEQNO = 1 shl 7;
|
|
RT2X00_REQUIRE_HT_TX_DESC = 1 shl 8;
|
|
RT2X00_REQUIRE_PS_AUTOWAKE = 1 shl 9;
|
RT2X00_CAPABILITY_*
RT2X00_CAPABILITY_HW_BUTTON = 1 shl 0;
|
|
RT2X00_CAPABILITY_HW_CRYPTO = 1 shl 1;
|
|
RT2X00_CAPABILITY_POWER_LIMIT = 1 shl 2;
|
|
RT2X00_CAPABILITY_CONTROL_FILTERS = 1 shl 3;
|
|
RT2X00_CAPABILITY_CONTROL_FILTER_PSPOLL = 1 shl 4;
|
|
RT2X00_CAPABILITY_PRE_TBTT_INTERRUPT = 1 shl 5;
|
|
RT2X00_CAPABILITY_LINK_TUNING = 1 shl 6;
|
|
RT2X00_CAPABILITY_FRAME_TYPE = 1 shl 7;
|
|
RT2X00_CAPABILITY_RF_SEQUENCE = 1 shl 8;
|
|
RT2X00_CAPABILITY_EXTERNAL_LNA_A = 1 shl 9;
|
|
RT2X00_CAPABILITY_EXTERNAL_LNA_BG = 1 shl 10;
|
|
RT2X00_CAPABILITY_DOUBLE_ANTENNA = 1 shl 11;
|
|
RT2X00_CAPABILITY_BT_COEXIST = 1 shl 12;
|
|
RT2X00_CAPABILITY_VCO_RECALIBRATION = 1 shl 13;
|
RT2X00_REGISTER_BUSY_*
RT2X00_REGISTER_BUSY_COUNT = 100;
|
|
RT2X00_REGISTER_USB_BUSY_COUNT = 20;
|
|
RT2X00_REGISTER_BUSY_DELAY = 100;
|
RT2X00_RX_CRYPTO_*
RT2X00_RX_CRYPTO_SUCCESS = 0;
|
|
RT2X00_RX_CRYPTO_FAIL_ICV = 1;
|
|
RT2X00_RX_CRYPTO_FAIL_MIC = 2;
|
|
RT2X00_RX_CRYPTO_FAIL_KEY = 3;
|
RT2X00_RXDONE_*
RT2X00_RXDONE_SIGNAL_PLCP = (1 shl 0);
|
Signal field contains the plcp value |
RT2X00_RXDONE_SIGNAL_BITRATE = (1 shl 1);
|
Signal field contains the bitrate value |
RT2X00_RXDONE_SIGNAL_MCS = (1 shl 2);
|
Signal field contains the mcs value |
RT2X00_RXDONE_MY_BSS = (1 shl 3);
|
Does this frame originate from device's BSS |
RT2X00_RXDONE_CRYPTO_IV = (1 shl 4);
|
Driver provided IV/EIV data |
RT2X00_RXDONE_CRYPTO_ICV = (1 shl 5);
|
Driver provided ICV data |
RT2X00_RXDONE_L2PAD = (1 shl 6);
|
802.11 payload has been padded to 4-byte boundary |
RT2X00_RXDONE_SIGNAL_MASK = (RT2X00_RXDONE_SIGNAL_PLCP or RT2X00_RXDONE_SIGNAL_BITRATE or RT2X00_RXDONE_SIGNAL_MCS);
|
RT2X00_ENTRY_TXD_*
RT2X00_ENTRY_TXD_RTS_FRAME = (1 shl 0);
|
This frame is a RTS frame |
RT2X00_ENTRY_TXD_CTS_FRAME = (1 shl 1);
|
This frame is a CTS-to-self frame |
RT2X00_ENTRY_TXD_GENERATE_SEQ = (1 shl 2);
|
This frame requires sequence counter |
RT2X00_ENTRY_TXD_FIRST_FRAGMENT = (1 shl 3);
|
This is the first frame |
RT2X00_ENTRY_TXD_MORE_FRAG = (1 shl 4);
|
This frame is followed by another fragment |
RT2X00_ENTRY_TXD_REQ_TIMESTAMP = (1 shl 5);
|
Require timestamp to be inserted |
RT2X00_ENTRY_TXD_BURST = (1 shl 6);
|
This frame belongs to the same burst event |
RT2X00_ENTRY_TXD_ACK = (1 shl 7);
|
An ACK is required for this frame |
RT2X00_ENTRY_TXD_RETRY_MODE = (1 shl 8);
|
When set, the long retry count is used |
RT2X00_ENTRY_TXD_ENCRYPT = (1 shl 9);
|
This frame should be encrypted |
RT2X00_ENTRY_TXD_ENCRYPT_PAIRWISE = (1 shl 10);
|
Use pairwise key table (instead of shared) |
RT2X00_ENTRY_TXD_ENCRYPT_IV = (1 shl 11);
|
Generate IV/EIV in hardware |
RT2X00_ENTRY_TXD_ENCRYPT_MMIC = (1 shl 12);
|
Generate MIC in hardware |
RT2X00_ENTRY_TXD_HT_AMPDU = (1 shl 13);
|
This frame is part of an AMPDU |
RT2X00_ENTRY_TXD_HT_BW_40 = (1 shl 14);
|
Use 40MHz Bandwidth |
RT2X00_ENTRY_TXD_HT_SHORT_GI = (1 shl 15);
|
Use short GI |
RT2X00_ENTRY_TXD_HT_MIMO_PS = (1 shl 16);
|
The receiving STA is in dynamic SM PS mode |
RT2X00_TXDONE_*
RT2X00_TXDONE_UNKNOWN = (1 shl 0);
|
Hardware could not determine success of transmission |
RT2X00_TXDONE_SUCCESS = (1 shl 1);
|
Frame was successfully sent |
RT2X00_TXDONE_FALLBACK = (1 shl 2);
|
Hardware used fallback rates for retries |
RT2X00_TXDONE_FAILURE = (1 shl 3);
|
Frame was not successfully sent |
RT2X00_TXDONE_EXCESSIVE_RETRY = (1 shl 4);
|
In addition to TXDONE_FAILURE, the frame transmission failed due to excessive retries |
RT2X00_TXDONE_AMPDU = (1 shl 5);
|
RT2X00_ANTENNA_*
RT2X00_ANTENNA_SW_DIVERSITY = 0;
|
|
RT2X00_ANTENNA_A = 1;
|
|
RT2X00_ANTENNA_B = 2;
|
|
RT2X00_ANTENNA_HW_DIVERSITY = 3;
|
RT2X00_ANTENNA_RX_*
RT2X00_ANTENNA_RX_DIVERSITY = $00000001;
|
|
RT2X00_ANTENNA_TX_DIVERSITY = $00000002;
|
|
RT2X00_ANTENNA_MODE_SAMPLE = $00000004;
|
RT2X00_LED_TYPE_*
RT2X00_LED_TYPE_RADIO = 0;
|
|
RT2X00_LED_TYPE_ASSOC = 1;
|
|
RT2X00_LED_TYPE_ACTIVITY = 2;
|
|
RT2X00_LED_TYPE_QUALITY = 3;
|
RT2X00_LED_MODE_*
RT2X00_LED_MODE_DEFAULT = 0;
|
|
RT2X00_LED_MODE_TXRX_ACTIVITY = 1;
|
|
RT2X00_LED_MODE_SIGNAL_STRENGTH = 2;
|
|
RT2X00_LED_MODE_ASUS = 3;
|
|
RT2X00_LED_MODE_ALPHA = 4;
|
RT2X00_TSF_SYNC_*
RT2X00_TSF_SYNC_NONE = 0;
|
|
RT2X00_TSF_SYNC_INFRA = 1;
|
|
RT2X00_TSF_SYNC_ADHOC = 2;
|
|
RT2X00_TSF_SYNC_AP_NONE = 3;
|
RT2X00_STATE_*
RT2X00_STATE_DEEP_SLEEP = 0;
|
|
RT2X00_STATE_SLEEP = 1;
|
|
RT2X00_STATE_STANDBY = 2;
|
|
RT2X00_STATE_AWAKE = 3;
|
|
Additional device states, these values are not directly passed into the device | |
RT2X00_STATE_RADIO_ON = 4;
|
|
RT2X00_STATE_RADIO_OFF = 5;
|
|
RT2X00_STATE_RADIO_IRQ_ON = 6;
|
|
RT2X00_STATE_RADIO_IRQ_OFF = 7;
|
RT2X00_IFS_*
RT2X00_IFS_BACKOFF = 0;
|
|
RT2X00_IFS_SIFS = 1;
|
|
RT2X00_IFS_NEW_BACKOFF = 2;
|
|
RT2X00_IFS_NONE = 3;
|
RT2X00_TXOP_*
RT2X00_TXOP_HTTXOP = 0;
|
|
RT2X00_TXOP_PIFS = 1;
|
|
RT2X00_TXOP_SIFS = 2;
|
|
RT2X00_TXOP_BACKOFF = 3;
|
RT2X00_CIPHER_*
RT2X00_CIPHER_NONE = 0;
|
|
RT2X00_CIPHER_WEP64 = 1;
|
|
RT2X00_CIPHER_WEP128 = 2;
|
|
RT2X00_CIPHER_TKIP = 3;
|
|
RT2X00_CIPHER_AES = 4;
|
|
The following were added by rt61pci and rt73usb | |
RT2X00_CIPHER_CKIP64 = 5;
|
|
RT2X00_CIPHER_CKIP128 = 6;
|
|
RT2X00_CIPHER_TKIP_NO_MIC = 7;
|
Don't send to device |
RT2X00_CIPHER_MAX = 4;
|
Note that CIPHER_NONE isn't counted, and CKIP64 and CKIP128 are excluded. |
RT2X00_RATE_MODE_*
RT2X00_RATE_MODE_CCK = 0;
|
|
RT2X00_RATE_MODE_OFDM = 1;
|
|
RT2X00_RATE_MODE_HT_MIX = 2;
|
|
RT2X00_RATE_MODE_HT_GREENFIELD = 3;
|
RT2X00_*_SIZE
Ralink PCI devices demand the Frame size to be a multiple of 128 bytes, for USB devices this restriction does not apply, but the value of 2432 makes sense since it is big enough to contain the maximum fragment size according to the IEEE 802.11 specs. The aggregation size depends on support from the driver, but should be something around 3840 bytes. | |
RT2X00_DATA_FRAME_SIZE = 2432;
|
|
RT2X00_MGMT_FRAME_SIZE = 256;
|
|
RT2X00_AGGREGATION_SIZE = 3840;
|
RT2X00_CHANNEL_*
RT2X00_CHANNEL_GEOGRAPHY_ALLOWED = $00000001;
|
RT2X00_SUPPORT_BAND_*
RT2X00_SUPPORT_BAND_2GHZ = $00000001;
|
|
RT2X00_SUPPORT_BAND_5GHZ = $00000002;
|
RT2X00_SUPPORT_RATE_*
RT2X00_SUPPORT_RATE_CCK = $00000001;
|
|
RT2X00_SUPPORT_RATE_OFDM = $00000002;
|
RT2X00_DEV_RATE_*
RT2X00_DEV_RATE_CCK = $0001;
|
|
RT2X00_DEV_RATE_OFDM = $0002;
|
|
RT2X00_DEV_RATE_SHORT_PREAMBLE = $0004;
|
RT2X00_CONFIG_UPDATE_*
RT2X00_CONFIG_UPDATE_TYPE = (1 shl 1);
|
|
RT2X00_CONFIG_UPDATE_MAC = (1 shl 2);
|
|
RT2X00_CONFIG_UPDATE_BSSID = (1 shl 3);
|
Type definitions
RT2X00LIB chipset
PRT2X00Chipset = ^TRT2X00Chipset;
TRT2X00Chipset = record
rt2x00_chip | |
RTChip:Word;
|
RT2X00_RT2460 etc |
RFChip:Word;
|
RT2800_RF2820 etc |
Revision:Word;
|
RT2800_REV_RT2860C etc |
RT2X00LIB rate
PRT2X00Rate = ^TRT2X00Rate;
TRT2X00Rate = record
Flags:Word;
|
|
BitRate:Word;
|
In 100kbit/s |
RateMask:Word;
|
|
PLCP:Word;
|
|
MCS:Word;
|
RT2X00LIB antenna
PRT2X00Antenna = ^TRT2X00Antenna;
TRT2X00Antenna = record
antenna_setup | |
RX:Byte;
|
RT2X00_ANTENNA_A etc |
TX:Byte;
|
RT2X00_ANTENNA_A etc |
RXChainNo:Byte;
|
|
TXChainNo:Byte;
|
RT2X00LIB channel
PRT2X00Channel = ^TRT2X00Channel;
TRT2X00Channel = record
channel_info | |
Flags:LongWord;
|
RT2X00_CHANNEL_GEOGRAPHY_ALLOWED etc |
MaxPower:ShortInt;
|
|
DefaultPower1:ShortInt;
|
|
DefaultPower2:ShortInt;
|
|
DefaultPower3:ShortInt;
|
RT2X00LIB channels
PRT2X00Channels = ^TRT2X00Channels;
TRT2X00Channels = array[0..0] of TRT2X00Channel;
RT2X00LIB RF channel
PRT2X00RFChannel = ^TRT2X00RFChannel;
TRT2X00RFChannel = record
rf_channel | |
Channel:LongWord;
|
|
RF1:LongWord;
|
|
RF2:LongWord;
|
|
RF3:LongWord;
|
|
RF4:LongWord;
|
RT2X00LIB RF channels
PRT2X00RFChannels = ^TRT2X00RFChannels;
TRT2X00RFChannels = array[0..0] of TRT2X00RFChannel;
RT2X00LIB specifications
PRT2X00Specifications = ^TRT2X00Specifications;
TRT2X00Specifications = record
hw_mode_spec | |
SupportedBands:LongWord;
|
RT2X00_SUPPORT_BAND_2GHZ etc |
SupportedRates:LongWord;
|
RT2X00_SUPPORT_RATE_CCK etc |
ChannelCount:LongWord;
|
|
Channels:PRT2X00Channels;
|
|
RFChannels:PRT2X00RFChannels;
|
|
HTCapabilities:TIEEE80211StationHTCap;
|
RT2X00LIB EWMA
PRT2X00EWMA = ^TRT2X00EWMA;
TRT2X00EWMA = record
Exponentially weighted moving average
EWMA | |
Internal:LongWord;
|
|
Factor:LongWord;
|
|
Weight:LongWord;
|
RT2X00LIB link quality
PRT2X00LinkQuality = ^TRT2X00LinkQuality;
TRT2X00LinkQuality = record
Quality statistics about the currently active link
link_qual | |
RSSI:LongInt;
|
Statistics required for Link tuning by driver |
FalseCCA:LongInt;
|
|
VGC levels | |
VGCLevel:Byte;
|
Driver will tune the VGC level during each call to the link tuner callback function |
VGCLevelRegister:Byte;
|
The vgc_level is determined based on the link quality statistics like average RSSI and the false CCA count |
RXSuccess:LongWord;
|
Statistics required for Signal quality calculation |
RXFailed:LongWord;
|
|
TXSuccess:LongWord;
|
|
TXFailed:LongWord;
|
RT2X00LIB link antenna
PRT2X00LinkAntenna = ^TRT2X00LinkAntenna;
TRT2X00LinkAntenna = record
Antenna settings about the currently active link
link_ant | |
Flags:LongWord;
|
Antenna flags (RT2X00_ANTENNA_RX_DIVERSITY etc) |
ActiveAntenna:TRT2X00Antenna;
|
Currently active TX/RX antenna setup |
RSSIHistory:LongInt;
|
RSSI history information for the antenna |
RSSIAntenna:TRT2X00EWMA;
|
Current RSSI average of the currently active antenna |
RT2X00LIB link
PRT2X00Link = ^TRT2X00Link;
TRT2X00Link = record
link | |
Count:LongWord;
|
Link tuner counter |
Quality:TRT2X00LinkQuality;
|
Quality measurement values |
Antenna:TRT2X00LinkAntenna;
|
TX/RX antenna setup |
RSSIAverage:TRT2X00EWMA;
|
Currently active average RSSI value |
RT2X00LIB interface
PRT2X00Interface = ^TRT2X00Interface;
TRT2X00Interface = record
rt2x00_intf | |
EnableBeacon:LongBool;
|
|
SequenceNo:LongWord;
|
Software sequence counter (only required for hardware which doesn't support hardware sequence counting) |
RT2X00LIB channel configuration
PRT2X00ChannelConfiguration = ^TRT2X00ChannelConfiguration;
TRT2X00ChannelConfiguration = record
rt2x00lib_conf | |
Channel:TRT2X00Channel;
|
|
RFChannel:TRT2X00RFChannel;
|
RT2X00LIB interface configuration
PRT2X00InterfaceConfiguration = ^TRT2X00InterfaceConfiguration;
TRT2X00InterfaceConfiguration = record
rt2x00intf_conf | |
InterfaceType:LongWord;
|
Interface type (WIFI_IFTYPE_STATION etc) |
TSFSync:LongWord;
|
TSF sync value (dependent on the interface type) (RT2X00_TSF_SYNC_NONE etc) |
MAC:array[0..1] of LongWord;
|
All devices (except RT2500USB) have 32 bits register word sizes |
BSSID:array[0..1] of LongWord;
|
Which means these variables must be a multiple of 32 bits |
RT2X00LIB RX descriptor
PRT2X00RXDescriptor = ^TRT2X00RXDescriptor;
TRT2X00RXDescriptor = record
rxdone_entry_desc | |
Timestamp:Int64;
|
RX Timestamp |
Signal:LongInt;
|
Signal of the received frame |
RSSI:LongInt;
|
RSSI of the received frame |
Size:LongWord;
|
Data size of the received frame |
Flags:LongWord;
|
Receive flags (WIFI_RX_FLAG_*) |
RXFlags:LongWord;
|
Receive flags (RT2X00_RXDONE_*) |
RateMode:Word;
|
Rate mode (RT2X00_RATE_MODE_*) |
Cipher:Byte;
|
Cipher type used during decryption |
CipherStatus:Byte;
|
Decryption status |
IV:array[0..1] of LongWord;
|
IV/EIV data used during decryption |
ICV:LongWord;
|
ICV data used during decryption |
RT2X00LIB TX decriptor
PRT2X00TXDescriptor = ^TRT2X00TXDescriptor;
TRT2X00TXDescriptor = record
txentry_desc | |
Flags:LongWord;
|
|
Length:Word;
|
|
HeaderLength:Word;
|
'RT2X00LIB TX complete
PRT2X00TXComplete = ^TRT2X00TXComplete;
TRT2X00TXComplete = record
txdone_entry_desc | |
Flags:LongWord;
|
Transmit flags (RT2X00_TXDONE_*) |
Retry:LongWord; {Retry count}
|
RT2X00LIB driver initialization
TRT2X00DriverInit = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB EEPROM load
TRT2X00EepromLoad = function(RT2X00:PRT2X00WiFiDevice; Data:PWord; Size:LongWord):LongWord;
|
RT2X00LIB register read
TRT2X00RegisterRead = function(RT2X00:PRT2X00WiFiDevice; Offset:Word; Value:PLongWord):LongWord;
|
RT2X00LIB register write
TRT2X00RegisterWrite = function(RT2X00:PRT2X00WiFiDevice; Offset:Word; Value:LongWord):LongWord;
|
RT2X00LIB register multi read
TRT2X00RegisterMultiRead = function(RT2X00:PRT2X00WiFiDevice; Offset:Word; Data:Pointer; Size:LongWord):LongWord;
|
RT2X00LIB register multi write
TRT2X00RegisterMultiWrite = function(RT2X00:PRT2X00WiFiDevice; Offset:Word; Data:Pointer; Size:LongWord):LongWord;
|
RT2X00LIB register busy read
TRT2X00RegisterBusyRead = function(RT2X00:PRT2X00WiFiDevice; Offset,Mask:LongWord; Reg:PLongWord):Boolean;
|
RT2X00LIB set LED
TRT2X00SetLED = function(RT2X00:PRT2X00WiFiDevice; ID,Level:LongWord):LongWord;
|
RT2X00LIB set state
TRT2X00SetState = function(RT2X00:PRT2X00WiFiDevice; State:LongWord):LongWord;
|
RT2X00LIB enable RX
TRT2X00EnableRX = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB disable RX
TRT2X00DisableRX = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB enable beacon
TRT2X00EnableBeacon = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB disable beacon
TRT2X00DisableBeacon = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB get firmware
TRT2X00GetFirmware = function(RT2X00:PRT2X00WiFiDevice; var Name:String; var Address:Pointer; var Size:LongWord):Boolean;
|
RT2X00LIB check firmware
TRT2X00CheckFirmware = function(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean;
|
RT2X00LIB load firmware
TRT2X00LoadFirmware = function(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean;
|
RT2X00LIB write firmware
TRT2X00WriteFirmware = function(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean;
|
RT2X00LIB configure
TRT2X00Configure = function(RT2X00:PRT2X00WiFiDevice; Configuration:PRT2X00ChannelConfiguration; Flags:LongWord):LongWord;
|
RT2X00LIB configure filter
TRT2X00ConfigureFilter = function(RT2X00:PRT2X00WiFiDevice; Filter:LongWord):LongWord;
|
RT2X00LIB configure antenna
TRT2X00ConfigureAntenna = function(RT2X00:PRT2X00WiFiDevice; Antenna:PRT2X00Antenna):LongWord;
|
RT2X00LIB configure interface
TRT2X00ConfigureInterface = function(RT2X00:PRT2X00WiFiDevice; Configuration:PRT2X00InterfaceConfiguration; Flags:LongWord):LongWord;
|
RT2X00LIB initialize registers
TRT2X00InitializeRegisters = function(RT2X00:PRT2X00WiFiDevice):LongWord;
|
RT2X00LIB hardware encryption disabled
TRT2X00HardwareEncryptionDisabled = function(RT2X00:PRT2X00WiFiDevice):Boolean;
|
RT2X00LIB WiFi device
PRT2X00WiFiDevice = ^TRT2X00WiFiDevice;
TRT2X00WiFiDevice = record
WiFi Properties | |
WiFi:TWiFiDevice;
|
|
RT2X00 Methods | |
DriverInit:TRT2X00DriverInit;
|
|
EepromLoad:TRT2X00EepromLoad;
|
|
RegisterRead:TRT2X00RegisterRead;
|
|
RegisterWrite:TRT2X00RegisterWrite;
|
|
RegisterMultiRead:TRT2X00RegisterMultiRead;
|
|
RegisterMultiWrite:TRT2X00RegisterMultiWrite;
|
|
RegisterBusyRead:TRT2X00RegisterBusyRead;
|
|
SetLED:TRT2X00SetLED;
|
|
SetState:TRT2X00SetState;
|
|
EnableRX:TRT2X00EnableRX;
|
|
DisableRX:TRT2X00DisableRX;
|
|
EnableBeacon:TRT2X00EnableBeacon;
|
|
DisableBeacon:TRT2X00DisableBeacon;
|
|
GetFirmware:TRT2X00GetFirmware;
|
|
CheckFirmware:TRT2X00CheckFirmware;
|
|
LoadFirmware:TRT2X00LoadFirmware;
|
|
WriteFirmware:TRT2X00WriteFirmware;
|
|
Configure:TRT2X00Configure;
|
|
ConfigureFilter:TRT2X00ConfigureFilter;
|
|
ConfigureAntenna:TRT2X00ConfigureAntenna;
|
|
ConfigureInterface:TRT2X00ConfigureInterface;
|
|
InitializeRegisters:TRT2X00InitializeRegisters;
|
|
HardwareEncryptionDisabled:TRT2X00HardwareEncryptionDisabled;
|
|
RT2X00 Properties | |
Flags:LongWord;
|
Driver configuration flags (RT2X00_CONFIG_*) |
Chipset:TRT2X00Chipset;
|
Detected RT/RF chipset and revision |
Capabilities:LongWord;
|
Detected capabilities flags |
Requirements:LongWord;
|
Detected requirements flags |
Antenna:TRT2X00Antenna;
|
Default Antenna configuration |
Specifications:TRT2X00Specifications;
|
Detected hardware specifications (Channels, Bands, Rates etc) |
LNAGain:SmallInt;
|
LNA gain |
TXPower:Word;
|
Current TX power value |
ShortRetry:Byte;
|
Current retry values |
LongRetry:Byte;
|
|
RSSIOffset:Byte;
|
RSSI <-> Dbm offset |
FrequencyOffset:Byte;
|
Frequency offset |
APInterfaceCount:LongWord;
|
AP interface count |
STAInterfaceCount:LongWord;
|
STA interface count |
AssociationCount:LongWord;
|
Association count |
BeaconingCount:LongWord;
|
Beaconing enabled count |
PacketFilter:LongWord;
|
Current packet filter configuration for the device (IEEE80211_FIF_*) |
Link:TRT2X00Link;
|
Link information |
RFChannel:LongWord;
|
Used for VCO periodic calibration |
LEDRadio:LongBool;
|
If True then chipset has a radio LED |
LEDAssoc:LongBool;
|
If True then chipset has an association LED |
LEDActivity:LongBool;
|
If True then chipset has an activity LED |
LEDQuality:LongBool;
|
If True then chipset has a quality LED |
LEDMCURegister:Word;
|
The MCU value read from EEPROM during initialization |
CurrentBand:LongWord;
|
Current RF band (eg IEEE80211_BAND_2GHZ) |
CurrentFrequency:LongWord;
|
Current RF frequency |
Data:Pointer;
|
Chipset Driver specific data (eg RT2800) |
DataSize:LongWord;
|
Size of the chipset driver data |
RFData:PLongWord;
|
RF chip data |
RFSize:LongWord;
|
RF data size |
EepromData:PWord;
|
EEPROM data |
EepromSize:LongWord;
|
EEPROM size |
CSRLock:TMutexHandle;
|
Protect against concurrent indirect register access (BBP, RF, MCU) |
TXWISize:LongWord;
|
Size of the TXWI field in the TX frame |
RXWISize:LongWord;
|
Size of the RXWI field in the RX frame |
TXINFOSize:LongWord;
|
Size of the TXINFO field in the TX frame |
RXINFOSize:LongWord;
|
Size of the RXINFO field in the RX frame |
ExtraTXHeadroom:LongWord;
|
Extra headroom required for TX frames |
Public variables
None defined
Function declarations
RT2X00LIB functions
function RT2X00DriverInit(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00DriverQuit(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00InitializeModes(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00LoadFirmware(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00EnableRX(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2x00queue_start_queue |
---|
function RT2X00DisableRX(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2x00queue_stop_queue |
---|
function RT2X00EnableBeacon(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2x00queue_start_queue |
---|
function RT2X00DisableBeacon(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2x00queue_stop_queue |
---|
function RT2X00EnableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00DisableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00SetLED(RT2X00:PRT2X00WiFiDevice; ID:LongWord; Enabled:Boolean):LongWord;
Note | None documented |
---|
function RT2X00RadioLED(RT2X00:PRT2X00WiFiDevice; Enabled:Boolean):LongWord;
Note | None documented |
---|
function RT2X00AssocLED(RT2X00:PRT2X00WiFiDevice; Enabled:Boolean):LongWord;
Note | None documented |
---|
function RT2X00ActivityLED(RT2X00:PRT2X00WiFiDevice; Enabled:Boolean):LongWord;
Note | None documented |
---|
function RT2X00QualityLED(RT2X00:PRT2X00WiFiDevice; RSSI:LongInt):LongWord;
Note | None documented |
---|
procedure RT2X00InitializeRate(Entry:PIEEE80211Rate; Index:Word; Rate:PRT2X00Rate);
Note | None documented |
---|
procedure RT2X00InitializeChannel(Entry:PIEEE80211Channel; Channel,TXPower,Value:LongWord);
Note | None documented |
---|
function RT2X00GetHTCenterChannel(RT2X00:PRT2X00WiFiDevice):Word;
Note | None documented |
---|
function RT2X00Configure(RT2X00:PRT2X00WiFiDevice; Flags:LongWord):LongWord;
Note | rt2x00lib_config |
---|
function RT2X00ConfigureAntenna(RT2X00:PRT2X00WiFiDevice; Antenna:PRT2X00Antenna):LongWord;
Note | rt2x00lib_config_antenna |
---|
function RT2X00ConfigureInterface(RT2X00:PRT2X00WiFiDevice; InterfaceType:LongWord; Address,BSSID:PHardwareAddress):LongWord;
Note | rt2x00lib_config_intf |
---|
RT2X00LIB helper functions
function RT2X00IsPCI(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2X00IsPCIe(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2X00IsUSB(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2X00IsMMIO(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2X00GetRTChip(RT2X00:PRT2X00WiFiDevice):Word;
Note | None documented |
---|
procedure RT2X00SetRTChip(RT2X00:PRT2X00WiFiDevice; RTChip:Word);
Note | None documented |
---|
function RT2X00GetRFChip(RT2X00:PRT2X00WiFiDevice):Word;
Note | None documented |
---|
procedure RT2X00SetRFChip(RT2X00:PRT2X00WiFiDevice; RFChip:Word);
Note | None documented |
---|
function RT2X00GetRevision(RT2X00:PRT2X00WiFiDevice):Word;
Note | None documented |
---|
procedure RT2X00SetRevision(RT2X00:PRT2X00WiFiDevice; Revision:Word);
Note | None documented |
---|
function RT2X00IsRTChipRevision(RT2X00:PRT2X00WiFiDevice; RTChip:Word; Revision:Word):Boolean;
Note | None documented |
---|
function RT2X00IsRTChipRevisionLT(RT2X00:PRT2X00WiFiDevice; RTChip:Word; Revision:Word):Boolean;
Note | None documented |
---|
function RT2X00IsRTChipRevisionGTE(RT2X00:PRT2X00WiFiDevice; RTChip:Word; Revision:Word):Boolean;
Note | rt2x00_rt_rev_gte |
---|
function RT2X00GetCapability(RT2X00:PRT2X00WiFiDevice; Capability:LongWord):Boolean;
Note | None documented |
---|
procedure RT2X00SetCapability(RT2X00:PRT2X00WiFiDevice; Capability:LongWord);
Note | None documented |
---|
procedure RT2X00ClearCapability(RT2X00:PRT2X00WiFiDevice; Capability:LongWord);
Note | None documented |
---|
function RT2X00GetRequirement(RT2X00:PRT2X00WiFiDevice; Requirement:LongWord):Boolean;
Note | None documented |
---|
procedure RT2X00SetRequirement(RT2X00:PRT2X00WiFiDevice; Requirement:LongWord);
Note | None documented |
---|
procedure RT2X00ClearRequirement(RT2X00:PRT2X00WiFiDevice; Requirement:LongWord);
Note | None documented |
---|
function RT2X00RFRead(RT2X00:PRT2X00WiFiDevice; Index:LongWord; Data:PLongWord):Boolean;
Note | None documented |
---|
function RT2X00RFWrite(RT2X00:PRT2X00WiFiDevice; Index,Data:LongWord):Boolean;
Note | None documented |
---|
function RT2X00GetEeprom8(RT2X00:PRT2X00WiFiDevice; Offset:Word):Byte;
Note | rt2x00_eeprom_byte |
---|
function RT2X00GetEeprom16(RT2X00:PRT2X00WiFiDevice; Offset:Word):Word;
Note | None documented |
---|
procedure RT2X00SetEeprom16(RT2X00:PRT2X00WiFiDevice; Offset,Value:Word);
Note | None documented |
---|
function RT2X00GetEepromAddress(RT2X00:PRT2X00WiFiDevice; Offset:Word):Pointer;
Note | None documented |
---|
function RT2X00GetRegister8(Reg,Mask,Shift:Byte):Byte; inline;
Note | None documented |
---|
procedure RT2X00SetRegister8(var Reg:Byte; Mask,Shift,Value:Byte); inline;
Note | None documented |
---|
function RT2X00GetRegister16(Reg,Mask,Shift:Word):Word; inline;
Note | None documented |
---|
procedure RT2X00SetRegister16(var Reg:Word; Mask,Shift,Value:Word); inline;
Note | None documented |
---|
function RT2X00GetRegister32(Reg,Mask,Shift:LongWord):LongWord; inline;
Note | None documented |
---|
procedure RT2X00SetRegister32(var Reg:LongWord; Mask,Shift,Value:LongWord);
Note | None documented |
---|
function RT2X00ReadDescriptor(Descriptor:PLongWord; Index:Byte):LongWord; inline;
Note | None documented |
---|
procedure RT2X00WriteDescriptor(Descriptor:PLongWord; Index:Byte; Value:LongWord); inline;
Note | None documented |
---|
function RT2X00GetRate(Value:Word):PRT2X00Rate; inline;
Note | rt2x00_get_rate |
---|
function RT2X00GetRateMCS(Value:Word):LongInt; inline;
Note | rt2x00_get_rate_mcs |
---|
function RT2X00GetTXBufferSize(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00GetTXBufferOffset(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00GetRXBufferSize(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2x00queue_alloc_rxskb |
---|
function RT2X00GetRXBufferOffset(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2X00InsertL2PAD(var Data:Pointer; var Size:LongWord; HeaderLength:LongWord):Boolean;
Note | rt2x00queue_insert_l2pad |
---|
function RT2X00RemoveL2PAD(var Data:Pointer; var Size:LongWord; HeaderLength:LongWord):Boolean;
Note | rt2x00queue_remove_l2pad |
---|
function RT2X00ReceiveReadSignal(RT2X00:PRT2X00WiFiDevice; Descriptor:PRT2X00RXDescriptor):LongWord;
Note | rt2x00lib_rxdone_read_signal |
---|
function RT2X00ReceiveInsertIV(Descriptor:PRT2X00RXDescriptor; var Data:Pointer; var Size:LongWord; HeaderLength:LongWord):Boolean;
Note | rt2x00crypto_rx_insert_iv |
---|
function RT2X00_RATE_MCS(Mode,MCS:Word):Word; inline;
Note | RATE_MCS |
---|
function RT2X00_L2PAD_SIZE(HeaderLength:LongWord):LongWord; inline;
Note | L2PAD_SIZE |
---|
Return to Unit Reference