⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hostap_wlan.h

📁 IEEE 802.11a/b/g linux2.4/2.6 驱动程序源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifndef HOSTAP_WLAN_H#define HOSTAP_WLAN_H#include "hostap_config.h"#ifdef __KERNEL__#include "hostap_compat.h"#endif#include "hostap_crypt.h"#include "hostap_common.h"#define MAX_PARM_DEVICES 8#define PARM_MIN_MAX "1-" __MODULE_STRING(MAX_PARM_DEVICES)#define DEF_INTS -1, -1, -1, -1, -1, -1, -1#define GET_INT_PARM(var,idx) var[var[idx] < 0 ? 0 : idx]/* Specific skb->protocol value that indicates that the packet already contains * txdesc header. * FIX: This might need own value that would be allocated especially for Prism2 * txdesc; ETH_P_CONTROL is commented as "Card specific control frames". * However, these skb's should have only minimal path in the kernel side since * prism2_send_mgmt() sends these with dev_queue_xmit() to prism2_tx(). */#define ETH_P_HOSTAP ETH_P_CONTROL#ifndef ARPHRD_IEEE80211#define ARPHRD_IEEE80211 801#endif#ifndef ARPHRD_IEEE80211_PRISM#define ARPHRD_IEEE80211_PRISM 802#endif/* ARPHRD_IEEE80211_PRISM uses a bloated version of Prism2 RX frame header * (from linux-wlan-ng) */struct linux_wlan_ng_val {	u32 did;	u16 status, len;	u32 data;} __attribute__ ((packed));struct linux_wlan_ng_prism_hdr {	u32 msgcode, msglen;	char devname[16];	struct linux_wlan_ng_val hosttime, mactime, channel, rssi, sq, signal,		noise, rate, istx, frmlen;} __attribute__ ((packed));struct linux_wlan_ng_cap_hdr {	u32 version;	u32 length;	u64 mactime;	u64 hosttime;	u32 phytype;	u32 channel;	u32 datarate;	u32 antenna;	u32 priority;	u32 ssi_type;	s32 ssi_signal;	s32 ssi_noise;	u32 preamble;	u32 encoding;} __attribute__ ((packed));#define LWNG_CAP_DID_BASE   (4 | (1 << 6)) /* section 4, group 1 */#define LWNG_CAPHDR_VERSION 0x80211001struct hfa384x_rx_frame {	/* HFA384X RX frame descriptor */	u16 status; /* HFA384X_RX_STATUS_ flags */	u32 time; /* timestamp, 1 microsecond resolution */	u8 silence; /* 27 .. 154; seems to be 0 */	u8 signal; /* 27 .. 154 */	u8 rate; /* 10, 20, 55, or 110 */	u8 rxflow;	u32 reserved;	/* 802.11 */	u16 frame_control;	u16 duration_id;	u8 addr1[6];	u8 addr2[6];	u8 addr3[6];	u16 seq_ctrl;	u8 addr4[6];	u16 data_len;	/* 802.3 */	u8 dst_addr[6];	u8 src_addr[6];	u16 len;	/* followed by frame data; max 2304 bytes */} __attribute__ ((packed));struct hfa384x_tx_frame {	/* HFA384X TX frame descriptor */	u16 status; /* HFA384X_TX_STATUS_ flags */	u16 reserved1;	u16 reserved2;	u32 sw_support;	u8 retry_count; /* not yet implemented */	u8 tx_rate; /* Host AP only; 0 = firmware, or 10, 20, 55, 110 */	u16 tx_control; /* HFA384X_TX_CTRL_ flags */	/* 802.11 */	u16 frame_control; /* parts not used */	u16 duration_id;	u8 addr1[6];	u8 addr2[6]; /* filled by firmware */	u8 addr3[6];	u16 seq_ctrl; /* filled by firmware */	u8 addr4[6];	u16 data_len;	/* 802.3 */	u8 dst_addr[6];	u8 src_addr[6];	u16 len;	/* followed by frame data; max 2304 bytes */} __attribute__ ((packed));struct hfa384x_rid_hdr{	u16 len;	u16 rid;} __attribute__ ((packed));/* Macro for converting signal levels (range 27 .. 154) to wireless ext * dBm value with some accuracy */#define HFA384X_LEVEL_TO_dBm(v) 0x100 + (v) * 100 / 255 - 100#define HFA384X_LEVEL_TO_dBm_sign(v) (v) * 100 / 255 - 100struct hfa384x_scan_request {	u16 channel_list;	u16 txrate; /* HFA384X_RATES_* */} __attribute__ ((packed));struct hfa384x_hostscan_request {	u16 channel_list;	u16 txrate;	u16 target_ssid_len;	u8 target_ssid[32];} __attribute__ ((packed));struct hfa384x_join_request {	u8 bssid[6];	u16 channel;} __attribute__ ((packed));struct hfa384x_info_frame {	u16 len;	u16 type;} __attribute__ ((packed));struct hfa384x_comm_tallies {	u16 tx_unicast_frames;	u16 tx_multicast_frames;	u16 tx_fragments;	u16 tx_unicast_octets;	u16 tx_multicast_octets;	u16 tx_deferred_transmissions;	u16 tx_single_retry_frames;	u16 tx_multiple_retry_frames;	u16 tx_retry_limit_exceeded;	u16 tx_discards;	u16 rx_unicast_frames;	u16 rx_multicast_frames;	u16 rx_fragments;	u16 rx_unicast_octets;	u16 rx_multicast_octets;	u16 rx_fcs_errors;	u16 rx_discards_no_buffer;	u16 tx_discards_wrong_sa;	u16 rx_discards_wep_undecryptable;	u16 rx_message_in_msg_fragments;	u16 rx_message_in_bad_msg_fragments;} __attribute__ ((packed));struct hfa384x_comm_tallies32 {	u32 tx_unicast_frames;	u32 tx_multicast_frames;	u32 tx_fragments;	u32 tx_unicast_octets;	u32 tx_multicast_octets;	u32 tx_deferred_transmissions;	u32 tx_single_retry_frames;	u32 tx_multiple_retry_frames;	u32 tx_retry_limit_exceeded;	u32 tx_discards;	u32 rx_unicast_frames;	u32 rx_multicast_frames;	u32 rx_fragments;	u32 rx_unicast_octets;	u32 rx_multicast_octets;	u32 rx_fcs_errors;	u32 rx_discards_no_buffer;	u32 tx_discards_wrong_sa;	u32 rx_discards_wep_undecryptable;	u32 rx_message_in_msg_fragments;	u32 rx_message_in_bad_msg_fragments;} __attribute__ ((packed));struct hfa384x_scan_result_hdr {	u16 reserved;	u16 scan_reason;#define HFA384X_SCAN_IN_PROGRESS 0 /* no results available yet */#define HFA384X_SCAN_HOST_INITIATED 1#define HFA384X_SCAN_FIRMWARE_INITIATED 2#define HFA384X_SCAN_INQUIRY_FROM_HOST 3} __attribute__ ((packed));#define HFA384X_SCAN_MAX_RESULTS 32struct hfa384x_scan_result {	u16 chid;	u16 anl;	u16 sl;	u8 bssid[6];	u16 beacon_interval;	u16 capability;	u16 ssid_len;	u8 ssid[32];	u8 sup_rates[10];	u16 rate;} __attribute__ ((packed));struct hfa384x_hostscan_result {	u16 chid;	u16 anl;	u16 sl;	u8 bssid[6];	u16 beacon_interval;	u16 capability;	u16 ssid_len;	u8 ssid[32];	u8 sup_rates[10];	u16 rate;	u16 atim;} __attribute__ ((packed));struct comm_tallies_sums {	unsigned int tx_unicast_frames;	unsigned int tx_multicast_frames;	unsigned int tx_fragments;	unsigned int tx_unicast_octets;	unsigned int tx_multicast_octets;	unsigned int tx_deferred_transmissions;	unsigned int tx_single_retry_frames;	unsigned int tx_multiple_retry_frames;	unsigned int tx_retry_limit_exceeded;	unsigned int tx_discards;	unsigned int rx_unicast_frames;	unsigned int rx_multicast_frames;	unsigned int rx_fragments;	unsigned int rx_unicast_octets;	unsigned int rx_multicast_octets;	unsigned int rx_fcs_errors;	unsigned int rx_discards_no_buffer;	unsigned int tx_discards_wrong_sa;	unsigned int rx_discards_wep_undecryptable;	unsigned int rx_message_in_msg_fragments;	unsigned int rx_message_in_bad_msg_fragments;};struct hfa384x_regs {	u16 cmd;	u16 evstat;	u16 offset0;	u16 offset1;	u16 swsupport0;};#if defined(PRISM2_PCCARD) || defined(PRISM2_PLX)/* I/O ports for HFA384X Controller access */#define HFA384X_CMD_OFF 0x00#define HFA384X_PARAM0_OFF 0x02#define HFA384X_PARAM1_OFF 0x04#define HFA384X_PARAM2_OFF 0x06#define HFA384X_STATUS_OFF 0x08#define HFA384X_RESP0_OFF 0x0A#define HFA384X_RESP1_OFF 0x0C#define HFA384X_RESP2_OFF 0x0E#define HFA384X_INFOFID_OFF 0x10#define HFA384X_CONTROL_OFF 0x14#define HFA384X_SELECT0_OFF 0x18#define HFA384X_SELECT1_OFF 0x1A#define HFA384X_OFFSET0_OFF 0x1C#define HFA384X_OFFSET1_OFF 0x1E#define HFA384X_RXFID_OFF 0x20#define HFA384X_ALLOCFID_OFF 0x22#define HFA384X_TXCOMPLFID_OFF 0x24#define HFA384X_SWSUPPORT0_OFF 0x28#define HFA384X_SWSUPPORT1_OFF 0x2A#define HFA384X_SWSUPPORT2_OFF 0x2C#define HFA384X_EVSTAT_OFF 0x30#define HFA384X_INTEN_OFF 0x32#define HFA384X_EVACK_OFF 0x34#define HFA384X_DATA0_OFF 0x36#define HFA384X_DATA1_OFF 0x38#define HFA384X_AUXPAGE_OFF 0x3A#define HFA384X_AUXOFFSET_OFF 0x3C#define HFA384X_AUXDATA_OFF 0x3E#endif /* PRISM2_PCCARD || PRISM2_PLX */#ifdef PRISM2_PCI/* Memory addresses for ISL3874 controller access */#define HFA384X_CMD_OFF 0x00#define HFA384X_PARAM0_OFF 0x04#define HFA384X_PARAM1_OFF 0x08#define HFA384X_PARAM2_OFF 0x0C#define HFA384X_STATUS_OFF 0x10#define HFA384X_RESP0_OFF 0x14#define HFA384X_RESP1_OFF 0x18#define HFA384X_RESP2_OFF 0x1C#define HFA384X_INFOFID_OFF 0x20#define HFA384X_CONTROL_OFF 0x28#define HFA384X_SELECT0_OFF 0x30#define HFA384X_SELECT1_OFF 0x34#define HFA384X_OFFSET0_OFF 0x38#define HFA384X_OFFSET1_OFF 0x3C#define HFA384X_RXFID_OFF 0x40#define HFA384X_ALLOCFID_OFF 0x44#define HFA384X_TXCOMPLFID_OFF 0x48#define HFA384X_PCICOR_OFF 0x4C#define HFA384X_SWSUPPORT0_OFF 0x50#define HFA384X_SWSUPPORT1_OFF 0x54#define HFA384X_SWSUPPORT2_OFF 0x58#define HFA384X_PCIHCR_OFF 0x5C#define HFA384X_EVSTAT_OFF 0x60#define HFA384X_INTEN_OFF 0x64#define HFA384X_EVACK_OFF 0x68#define HFA384X_DATA0_OFF 0x6C#define HFA384X_DATA1_OFF 0x70#define HFA384X_AUXPAGE_OFF 0x74#define HFA384X_AUXOFFSET_OFF 0x78#define HFA384X_AUXDATA_OFF 0x7C#define HFA384X_PCI_M0_ADDRH_OFF 0x80#define HFA384X_PCI_M0_ADDRL_OFF 0x84#define HFA384X_PCI_M0_LEN_OFF 0x88#define HFA384X_PCI_M0_CTL_OFF 0x8C#define HFA384X_PCI_STATUS_OFF 0x98#define HFA384X_PCI_M1_ADDRH_OFF 0xA0#define HFA384X_PCI_M1_ADDRL_OFF 0xA4#define HFA384X_PCI_M1_LEN_OFF 0xA8#define HFA384X_PCI_M1_CTL_OFF 0xAC/* PCI bus master control bits (these are undocumented; based on guessing and * experimenting..) */#define HFA384X_PCI_CTL_FROM_BAP (BIT(5) | BIT(1) | BIT(0))#define HFA384X_PCI_CTL_TO_BAP (BIT(5) | BIT(0))#endif /* PRISM2_PCI *//* Command codes for CMD reg. */#define HFA384X_CMDCODE_INIT 0x00#define HFA384X_CMDCODE_ENABLE 0x01#define HFA384X_CMDCODE_DISABLE 0x02#define HFA384X_CMDCODE_ALLOC 0x0A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -