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

📄 ipw2200.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 4 页
字号:
	u16 next_packet_duration;	u16 next_frag_len;	u16 back_off_counter;	//////txop;	u8 retrylimit;	u16 cwcurrent;	u8 reserved3;	/* 802.11 MAC Header */	union {		struct tx_tfd_24 tfd_24;		struct tx_tfd_26 tfd_26;		struct tx_tfd_30 tfd_30;		struct tx_tfd_32 tfd_32;	} tfd;	/* Payload DMA info */	u32 num_chunks;	u32 chunk_ptr[NUM_TFD_CHUNKS];	u16 chunk_len[NUM_TFD_CHUNKS];} __attribute__ ((packed));struct txrx_control_flags {	u8 message_type;	u8 rx_seq_num;	u8 control_bits;	u8 reserved;} __attribute__ ((packed));#define  TFD_SIZE                           128#define  TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH   (TFD_SIZE - sizeof(struct txrx_control_flags))struct tfd_frame {	struct txrx_control_flags control_flags;	union {		struct tfd_data data;		struct tfd_command cmd;		u8 raw[TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH];	} u;} __attribute__ ((packed));typedef void destructor_func(const void *);/** * Tx Queue for DMA. Queue consists of circular buffer of * BD's and required locking structures. */struct clx2_tx_queue {	struct clx2_queue q;	struct tfd_frame *bd;	struct ieee80211_txb **txb;};/* * RX related structures and functions */#define RX_FREE_BUFFERS 32#define RX_LOW_WATERMARK 8#define SUP_RATE_11A_MAX_NUM_CHANNELS  8#define SUP_RATE_11B_MAX_NUM_CHANNELS  4#define SUP_RATE_11G_MAX_NUM_CHANNELS  12// Used for passing to driver number of successes and failures per ratestruct rate_histogram {	union {		u32 a[SUP_RATE_11A_MAX_NUM_CHANNELS];		u32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];		u32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];	} success;	union {		u32 a[SUP_RATE_11A_MAX_NUM_CHANNELS];		u32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];		u32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];	} failed;} __attribute__ ((packed));/* statistics command response */struct ipw_cmd_stats {	u8 cmd_id;	u8 seq_num;	u16 good_sfd;	u16 bad_plcp;	u16 wrong_bssid;	u16 valid_mpdu;	u16 bad_mac_header;	u16 reserved_frame_types;	u16 rx_ina;	u16 bad_crc32;	u16 invalid_cts;	u16 invalid_acks;	u16 long_distance_ina_fina;	u16 dsp_silence_unreachable;	u16 accumulated_rssi;	u16 rx_ovfl_frame_tossed;	u16 rssi_silence_threshold;	u16 rx_ovfl_frame_supplied;	u16 last_rx_frame_signal;	u16 last_rx_frame_noise;	u16 rx_autodetec_no_ofdm;	u16 rx_autodetec_no_barker;	u16 reserved;} __attribute__ ((packed));struct notif_channel_result {	u8 channel_num;	struct ipw_cmd_stats stats;	u8 uReserved;} __attribute__ ((packed));#define SCAN_COMPLETED_STATUS_COMPLETE  1#define SCAN_COMPLETED_STATUS_ABORTED   2struct notif_scan_complete {	u8 scan_type;	u8 num_channels;	u8 status;	u8 reserved;} __attribute__ ((packed));struct notif_frag_length {	u16 frag_length;	u16 reserved;} __attribute__ ((packed));struct notif_beacon_state {	u32 state;	u32 number;} __attribute__ ((packed));struct notif_tgi_tx_key {	u8 key_state;	u8 security_type;	u8 station_index;	u8 reserved;} __attribute__ ((packed));struct notif_link_deterioration {	struct ipw_cmd_stats stats;	u8 rate;	u8 modulation;	struct rate_histogram histogram;	u8 reserved1;	u16 reserved2;} __attribute__ ((packed));struct notif_association {	u8 state;} __attribute__ ((packed));struct notif_authenticate {	u8 state;	struct machdr24 addr;	u16 status;} __attribute__ ((packed));struct notif_calibration {	u8 data[104];} __attribute__ ((packed));struct notif_noise {	u32 value;} __attribute__ ((packed));struct ipw_rx_notification {	u8 reserved[8];	u8 subtype;	u8 flags;	u16 size;	union {		struct notif_association assoc;		struct notif_authenticate auth;		struct notif_channel_result channel_result;		struct notif_scan_complete scan_complete;		struct notif_frag_length frag_len;		struct notif_beacon_state beacon_state;		struct notif_tgi_tx_key tgi_tx_key;		struct notif_link_deterioration link_deterioration;		struct notif_calibration calibration;		struct notif_noise noise;		u8 raw[0];	} u;} __attribute__ ((packed));struct ipw_rx_frame {	u32 reserved1;	u8 parent_tsf[4];	// fw_use[0] is boolean for OUR_TSF_IS_GREATER	u8 received_channel;	// The channel that this frame was received on.	// Note that for .11b this does not have to be	// the same as the channel that it was sent.	// Filled by LMAC	u8 frameStatus;	u8 rate;	u8 rssi;	u8 agc;	u8 rssi_dbm;	u16 signal;	u16 noise;	u8 antennaAndPhy;	u8 control;		// control bit should be on in bg	u8 rtscts_rate;		// rate of rts or cts (in rts cts sequence rate	// is identical)	u8 rtscts_seen;		// 0x1 RTS seen ; 0x2 CTS seen	u16 length;	u8 data[0];} __attribute__ ((packed));struct ipw_rx_header {	u8 message_type;	u8 rx_seq_num;	u8 control_bits;	u8 reserved;} __attribute__ ((packed));struct ipw_rx_packet {	struct ipw_rx_header header;	union {		struct ipw_rx_frame frame;		struct ipw_rx_notification notification;	} u;} __attribute__ ((packed));#define IPW_RX_NOTIFICATION_SIZE sizeof(struct ipw_rx_header) + 12#define IPW_RX_FRAME_SIZE        (unsigned int)(sizeof(struct ipw_rx_header) + \                                 sizeof(struct ipw_rx_frame))struct ipw_rx_mem_buffer {	dma_addr_t dma_addr;	struct ipw_rx_buffer *rxb;	struct sk_buff *skb;	struct list_head list;};				/* Not transferred over network, so not  __attribute__ ((packed)) */struct ipw_rx_queue {	struct ipw_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];	struct ipw_rx_mem_buffer *queue[RX_QUEUE_SIZE];	u32 processed;		/* Internal index to last handled Rx packet */	u32 read;		/* Shared index to newest available Rx buffer */	u32 write;		/* Shared index to oldest written Rx packet */	u32 free_count;		/* Number of pre-allocated buffers in rx_free */	/* Each of these lists is used as a FIFO for ipw_rx_mem_buffers */	struct list_head rx_free;	/* Own an SKBs */	struct list_head rx_used;	/* No SKB allocated */	spinlock_t lock;};				/* Not transferred over network, so not  __attribute__ ((packed)) */struct alive_command_responce {	u8 alive_command;	u8 sequence_number;	u16 software_revision;	u8 device_identifier;	u8 reserved1[5];	u16 reserved2;	u16 reserved3;	u16 clock_settle_time;	u16 powerup_settle_time;	u16 reserved4;	u8 time_stamp[5];	/* month, day, year, hours, minutes */	u8 ucode_valid;} __attribute__ ((packed));#define IPW_MAX_RATES 12struct ipw_rates {	u8 num_rates;	u8 rates[IPW_MAX_RATES];} __attribute__ ((packed));struct command_block {	unsigned int control;	u32 source_addr;	u32 dest_addr;	unsigned int status;} __attribute__ ((packed));#define CB_NUMBER_OF_ELEMENTS_SMALL 64struct fw_image_desc {	unsigned long last_cb_index;	unsigned long current_cb_index;	struct command_block cb_list[CB_NUMBER_OF_ELEMENTS_SMALL];	void *v_addr;	unsigned long p_addr;	unsigned long len;};struct ipw_sys_config {	u8 bt_coexistence;	u8 reserved1;	u8 answer_broadcast_ssid_probe;	u8 accept_all_data_frames;	u8 accept_non_directed_frames;	u8 exclude_unicast_unencrypted;	u8 disable_unicast_decryption;	u8 exclude_multicast_unencrypted;	u8 disable_multicast_decryption;	u8 antenna_diversity;	u8 pass_crc_to_host;	u8 dot11g_auto_detection;	u8 enable_cts_to_self;	u8 enable_multicast_filtering;	u8 bt_coexist_collision_thr;	u8 reserved2;	u8 accept_all_mgmt_bcpr;	u8 accept_all_mgtm_frames;	u8 pass_noise_stats_to_host;	u8 reserved3;} __attribute__ ((packed));struct ipw_multicast_addr {	u8 num_of_multicast_addresses;	u8 reserved[3];	u8 mac1[6];	u8 mac2[6];	u8 mac3[6];	u8 mac4[6];} __attribute__ ((packed));#define DCW_WEP_KEY_INDEX_MASK		0x03	/* bits [0:1] */#define DCW_WEP_KEY_SEC_TYPE_MASK	0x30	/* bits [4:5] */#define DCW_WEP_KEY_SEC_TYPE_WEP	0x00#define DCW_WEP_KEY_SEC_TYPE_CCM	0x20#define DCW_WEP_KEY_SEC_TYPE_TKIP	0x30#define DCW_WEP_KEY_INVALID_SIZE	0x00	/* 0 = Invalid key */#define DCW_WEP_KEY64Bit_SIZE		0x05	/* 64-bit encryption */#define DCW_WEP_KEY128Bit_SIZE		0x0D	/* 128-bit encryption */#define DCW_CCM_KEY128Bit_SIZE		0x10	/* 128-bit key *///#define DCW_WEP_KEY128BitIV_SIZE      0x10    /* 128-bit key and 128-bit IV */struct ipw_wep_key {	u8 cmd_id;	u8 seq_num;	u8 key_index;	u8 key_size;	u8 key[16];} __attribute__ ((packed));struct ipw_tgi_tx_key {	u8 key_id;	u8 security_type;	u8 station_index;	u8 flags;	u8 key[16];	u32 tx_counter[2];} __attribute__ ((packed));#define IPW_SCAN_CHANNELS 54struct ipw_scan_request {	u8 scan_type;	u16 dwell_time;	u8 channels_list[IPW_SCAN_CHANNELS];	u8 channels_reserved[3];} __attribute__ ((packed));enum {	IPW_SCAN_PASSIVE_TILL_FIRST_BEACON_SCAN = 0,	IPW_SCAN_PASSIVE_FULL_DWELL_SCAN,	IPW_SCAN_ACTIVE_DIRECT_SCAN,	IPW_SCAN_ACTIVE_BROADCAST_SCAN,	IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN,	IPW_SCAN_TYPES};struct ipw_scan_request_ext {	u32 full_scan_index;	u8 channels_list[IPW_SCAN_CHANNELS];	u8 scan_type[IPW_SCAN_CHANNELS / 2];	u8 reserved;	u16 dwell_time[IPW_SCAN_TYPES];} __attribute__ ((packed));extern inline u8 ipw_get_scan_type(struct ipw_scan_request_ext *scan, u8 index){	if (index % 2)		return scan->scan_type[index / 2] & 0x0F;	else		return (scan->scan_type[index / 2] & 0xF0) >> 4;}extern inline void ipw_set_scan_type(struct ipw_scan_request_ext *scan,				     u8 index, u8 scan_type){	if (index % 2)		scan->scan_type[index / 2] =		    (scan->scan_type[index / 2] & 0xF0) | (scan_type & 0x0F);	else		scan->scan_type[index / 2] =		    (scan->scan_type[index / 2] & 0x0F) |		    ((scan_type & 0x0F) << 4);}struct ipw_associate {	u8 channel;	u8 auth_type:4, auth_key:4;	u8 assoc_type;	u8 reserved;	u16 policy_support;	u8 preamble_length;	u8 ieee_mode;	u8 bssid[ETH_ALEN];	u32 assoc_tsf_msw;	u32 assoc_tsf_lsw;	u16 capability;	u16 listen_interval;	u16 beacon_interval;	u8 dest[ETH_ALEN];	u16 atim_window;	u8 smr;	u8 reserved1;	u16 reserved2;} __attribute__ ((packed));struct ipw_supported_rates {	u8 ieee_mode;	u8 num_rates;	u8 purpose;	u8 reserved;	u8 supported_rates[IPW_MAX_RATES];} __attribute__ ((packed));struct ipw_rts_threshold {	u16 rts_threshold;	u16 reserved;} __attribute__ ((packed));struct ipw_frag_threshold {	u16 frag_threshold;	u16 reserved;} __attribute__ ((packed));struct ipw_retry_limit {	u8 short_retry_limit;	u8 long_retry_limit;	u16 reserved;} __attribute__ ((packed));struct ipw_dino_config {	u32 dino_config_addr;	u16 dino_config_size;	u8 dino_response;	u8 reserved;} __attribute__ ((packed));struct ipw_aironet_info {	u8 id;	u8 length;	u16 reserved;} __attribute__ ((packed));struct ipw_rx_key {	u8 station_index;	u8 key_type;	u8 key_id;	u8 key_flag;	u8 key[16];	u8 station_address[6];	u8 key_index;	u8 reserved;} __attribute__ ((packed));struct ipw_country_channel_info {	u8 first_channel;	u8 no_channels;	s8 max_tx_power;} __attribute__ ((packed));struct ipw_country_info {	u8 id;	u8 length;	u8 country_str[3];	struct ipw_country_channel_info groups[7];} __attribute__ ((packed));struct ipw_channel_tx_power {	u8 channel_number;	s8 tx_power;} __attribute__ ((packed));#define SCAN_ASSOCIATED_INTERVAL (HZ)#define SCAN_INTERVAL (HZ / 10)#define MAX_A_CHANNELS  37

⌨️ 快捷键说明

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