📄 aironet4500.h
字号:
#define aironet4500_gap_len_without_802_3 6 #define aironet4500_gap_len_with_802_3 0 struct ieee_802_3_header ieee_802_3; u8 * payload; };struct awc_fid { u32 type; #define p80211_llc_snap 0x0100 #define p80211_8021H 0x0200 #define p80211_8022 0x0400 #define p80211_8023 0x0800 #define p80211_snap_8021H 0x1000 #define p80211copy_path_skb 0x2000 u8 priority; u8 busy; #define awc_tx_fid_complete_read 0x01 u16 state; union { struct aironet4500_tx_fid tx; struct aironet4500_rx_fid rx; } u; struct ieee_802_11_snap_header snap; struct ieee_802_11_802_1H_header bridge; u16 bridge_size; struct ieee_802_11_802_2_header p8022; u16 pkt_len; u8 * mac; struct sk_buff * skb; long long transmit_start_time; struct awc_fid * next; struct awc_fid * prev; };struct awc_fid_queue { struct awc_fid * head; struct awc_fid * tail; int size; my_spinlock_t spinlock;};extern __inline__ voidawc_fid_queue_init(struct awc_fid_queue * queue){ unsigned long flags; memset(queue,0, sizeof(struct awc_fid_queue)); my_spin_lock_init(&queue->spinlock); my_spin_lock_irqsave(&queue->spinlock,flags); queue->head = NULL; queue->tail = NULL; queue->size = 0; my_spin_unlock_irqrestore(&queue->spinlock,flags); };extern inline voidawc_fid_queue_push_tail( struct awc_fid_queue * queue, struct awc_fid * fid){ unsigned long flags; my_spin_lock_irqsave(&queue->spinlock,flags); fid->prev = queue->tail; fid->next = NULL; if (queue->tail){ queue->tail->next = fid; } queue->tail = fid; if (!queue->head) queue->head = fid; queue->size++; my_spin_unlock_irqrestore(&queue->spinlock,flags); };extern inline voidawc_fid_queue_push_head( struct awc_fid_queue * queue, struct awc_fid * fid){ unsigned long flags; my_spin_lock_irqsave(&queue->spinlock,flags); fid->prev = NULL; fid->next = queue->head; if (queue->head){ queue->head->prev = fid; } queue->head = fid; if (!queue->tail) queue->tail = fid; queue->size++; my_spin_unlock_irqrestore(&queue->spinlock,flags); };extern inline voidawc_fid_queue_rm( struct awc_fid_queue * queue, struct awc_fid * fid){ if (fid->prev) { fid->prev->next = fid->next; }; if (fid->next) { fid->next->prev = fid->prev; }; if (fid == queue->tail) { queue->tail = fid->prev; }; if (fid == queue->head) { queue->head = fid->next; }; fid->next = NULL; fid->prev = NULL; queue->size--; if (queue->size ==0 ){ queue->tail = NULL; queue->head = NULL; } };extern inline voidawc_fid_queue_remove( struct awc_fid_queue * queue, struct awc_fid * fid){ unsigned long flags; my_spin_lock_irqsave(&queue->spinlock,flags); awc_fid_queue_rm(queue,fid); my_spin_unlock_irqrestore(&queue->spinlock,flags); };extern inline struct awc_fid * awc_fid_queue_pop_head( struct awc_fid_queue * queue){ unsigned long flags; struct awc_fid * fid; my_spin_lock_irqsave(&queue->spinlock,flags); fid = queue->head; if (fid) awc_fid_queue_rm(queue,fid); my_spin_unlock_irqrestore(&queue->spinlock,flags); return fid;};extern inline struct awc_fid * awc_fid_queue_pop_tail( struct awc_fid_queue * queue){ unsigned long flags; struct awc_fid * fid; my_spin_lock_irqsave(&queue->spinlock,flags); fid = queue->tail; if (fid) awc_fid_queue_rm(queue,fid); my_spin_unlock_irqrestore(&queue->spinlock,flags); return fid;};#define AWC_TX_HEAD_SIZE 0x44#define AWC_TX_ALLOC_SMALL_SIZE 200#define AWC_RX_BUFFS 50/***************************** RID & CONFIG ***********************/struct awc_config{ unsigned short Len; /* sizeof(PC4500_CONFIG) */ unsigned short OperatingMode; /* operating mode */ #define MODE_STA_IBSS 0 #define MODE_STA_ESS 1 #define MODE_AP 2 #define MODE_AP_RPTR 3 #define MODE_ETHERNET_HOST (0<<8) /* rx payloads converted */ #define MODE_LLC_HOST (1<<8) /* rx payloads left as is */ #define MODE_AIRONET_EXTEND (1<<9) /* enable Aironet extenstions */ #define MODE_AP_INTERFACE (1<<10) /* enable ap interface extensions */ unsigned short ReceiveMode; /* receive mode */ #define RXMODE_BC_MC_ADDR 0 #define RXMODE_BC_ADDR 1 /* ignore multicasts */ #define RXMODE_ADDR 2 /* ignore multicast and broadcast */ #define RXMODE_RFMON 3 /* wireless monitor mode */ #define RXMODE_RFMON_ANYBSS 4 #define RXMODE_LANMON 5 /* lan style monitor -- data packets only */ #define RXMODE_DISABLE_802_3_HEADER 0x100 /* disables 802.3 header on rx */ unsigned short FragmentThreshold; unsigned short RtsThreshold; unsigned char StationMacAddress[6]; unsigned char Rates[8]; unsigned short ShortRetryLimit; unsigned short LongRetryLimit; unsigned short TxLifetime; /* in kusec */ unsigned short RxLifetime; /* in kusec */ unsigned short Stationary; unsigned short Ordering; unsigned short DeviceType; /* for overriding device type */ unsigned short _reserved1[5]; /*---------- Scanning/Associating ----------*/ unsigned short ScanMode; #define SCANMODE_ACTIVE 0 #define SCANMODE_PASSIVE 1 #define SCANMODE_AIROSCAN 2 unsigned short ProbeDelay; /* in kusec */ unsigned short ProbeEnergyTimeout; /* in kusec */ unsigned short ProbeResponseTimeout; unsigned short BeaconListenTimeout; unsigned short JoinNetTimeout; unsigned short AuthenticationTimeout; unsigned short AuthenticationType; #define AUTH_OPEN 1 #define AUTH_SHAREDKEY 2 #define AUTH_EXCLUDENONWEP 4 unsigned short AssociationTimeout; unsigned short SpecifiedApTimeout; unsigned short OfflineScanInterval; unsigned short OfflineScanDuration; unsigned short LinkLossDelay; unsigned short MaxBeaconLostTime; unsigned short RefreshInterval; #define DISABLE_REFRESH 0xFFFF unsigned short _reserved1a[1]; /*---------- Power save operation ----------*/ unsigned short PowerSaveMode; #define POWERSAVE_CAM 0 #define POWERSAVE_PSP 1 #define POWERSAVE_PSP_CAM 2 unsigned short SleepForDtims; unsigned short ListenInterval; unsigned short FastListenInterval; unsigned short ListenDecay; unsigned short FastListenDelay; unsigned short _reserved2[2]; /*---------- Ap/Ibss config items ----------*/ unsigned short BeaconPeriod; unsigned short AtimDuration; unsigned short HopPeriod; unsigned short ChannelSet; unsigned short Channel; unsigned short DtimPeriod; unsigned short _reserved3[2]; /*---------- Radio configuration ----------*/ unsigned short RadioType; #define RADIOTYPE_DEFAULT 0 #define RADIOTYPE_802_11 1 #define RADIOTYPE_LEGACY 2 unsigned char u8RxDiversity; unsigned char u8TxDiversity; unsigned short TxPower; #define TXPOWER_DEFAULT 0 unsigned short RssiThreshold; #define RSSI_DEFAULT 0 unsigned short RadioSpecific[4]; /*---------- Aironet Extensions ----------*/ unsigned char NodeName[16]; unsigned short ArlThreshold; unsigned short ArlDecay; unsigned short ArlDelay; unsigned short _reserved4[1]; /*---------- Aironet Extensions ----------*/ unsigned short MagicAction; #define MAGIC_ACTION_STSCHG 1 #define MACIC_ACTION_RESUME 2 #define MAGIC_IGNORE_MCAST (1<<8) #define MAGIC_IGNORE_BCAST (1<<9) #define MAGIC_SWITCH_TO_PSP (0<<10) #define MAGIC_STAY_IN_CAM (1<<10)};struct awc_SSID { u16 lenght; u8 SSID[32];};struct awc_SSIDs { u16 ridLen; struct awc_SSID SSID[3];};struct awc_fixed_APs{ u16 ridLen; u8 AP[4][6];};struct awc_driver_name{ u16 ridLen; u8 name[16];};struct awc_encapsulation{ u16 etherType; u16 Action;};struct awc_enc_trans{ u16 ridLen; struct awc_encapsulation rules[8];};struct awc_wep_key { u16 ridLen; u16 KeyIndex; u8 Address[6]; u16 KeyLen; u8 Key[16];};struct awc_modulation { u16 ridLen; u16 Modulation;};struct awc_cap{ u16 ridLen; u8 OUI[3]; u8 ProductNum[3]; u8 ManufacturerName[32]; u8 ProductName[16]; u8 ProductVersion[8]; u8 FactoryAddress[6]; u8 AironetAddress[6]; u16 RadioType; u16 RegDomain; u8 Callid[6]; u8 SupportedRates[8]; u8 RxDiversity; u8 TxDiversity; u16 TxPowerLevels[8]; u16 HardwareVersion; u16 HardwareCapabilities; u16 TemperatureRange; u16 SoftwareVersion; u16 SoftwareSubVersion; u16 InterfaceVersion; u16 SoftwareCapabilities; u8 BootBlockVersionMajor; u8 BootBlockVersionMinor; };struct awc_status{ u16 ridLen; u8 MacAddress[6]; u16 OperationalMode; u16 ErrorCode; u16 CurrentSignalQuality; u16 SSIDlength; u8 SSID[32]; u8 ApName[16]; u8 CurrentBssid[32]; u8 PreviousBSSIDs[3][6]; u16 BeaconPeriod; u16 DtimPeriod; u16 AtimDuration; u16 HopPeriod; u16 ChannelSet; u16 Channel; u16 HopsToBackbone; u16 ApTotalLoad; u16 OurGeneratedLoad; u16 AccumulatedArl; };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -