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

📄 bcm43xx_xmit.h

📁 博通的bcm43xx系列Minipci接口无线网卡驱动
💻 H
字号:
#ifndef BCM43xx_XMIT_H_#define BCM43xx_XMIT_H_#include "bcm43xx_main.h"#define _bcm43xx_declare_plcp_hdr(size) \	struct bcm43xx_plcp_hdr##size {		\		union {				\			__le32 data;		\			__u8 raw[size];		\		} __attribute__((__packed__));	\	} __attribute__((__packed__))/* struct bcm43xx_plcp_hdr4 */_bcm43xx_declare_plcp_hdr(4);/* struct bcm43xx_plcp_hdr6 */_bcm43xx_declare_plcp_hdr(6);#undef _bcm43xx_declare_plcp_hdr/* Device specific TX header. To be prepended to TX frames. */struct bcm43xx_txhdr {	union {		struct {			__le16 flags;			__le16 wsec_rate;			__le16 frame_control;			u16 unknown_zeroed_0;			__le16 control;			u8 wep_iv[10];			u8 unknown_wsec_tkip_data[3]; //FIXME			PAD_BYTES(3);			u8 mac1[6];			u16 unknown_zeroed_1;			struct bcm43xx_plcp_hdr4 rts_cts_fallback_plcp;			__le16 rts_cts_dur_fallback;			struct bcm43xx_plcp_hdr4 fallback_plcp;			__le16 fallback_dur_id;			PAD_BYTES(2);			__le16 cookie;			__le16 unknown_scb_stuff; //FIXME			struct bcm43xx_plcp_hdr6 rts_cts_plcp;			__le16 rts_cts_frame_control;			__le16 rts_cts_dur;			u8 rts_cts_mac1[6];			u8 rts_cts_mac2[6];			PAD_BYTES(2);			struct bcm43xx_plcp_hdr6 plcp;		} __attribute__((__packed__));		u8 raw[82];	} __attribute__((__packed__));} __attribute__((__packed__));/* Values/Masks for the device TX header */#define BCM43xx_TXHDRFLAG_EXPECTACK		0x0001#define BCM43xx_TXHDRFLAG_RTSCTS		0x0002#define BCM43xx_TXHDRFLAG_RTS			0x0004#define BCM43xx_TXHDRFLAG_FIRSTFRAGMENT		0x0008#define BCM43xx_TXHDRFLAG_DESTPSMODE		0x0020#define BCM43xx_TXHDRFLAG_RTSCTS_OFDM		0x0080#define BCM43xx_TXHDRFLAG_FALLBACKOFDM		0x0100#define BCM43xx_TXHDRFLAG_RTSCTSFALLBACK_OFDM	0x0200#define BCM43xx_TXHDRFLAG_CTS			0x0400#define BCM43xx_TXHDRFLAG_FRAMEBURST		0x0800#define BCM43xx_TXHDRCTL_OFDM			0x0001#define BCM43xx_TXHDRCTL_SHORT_PREAMBLE		0x0010#define BCM43xx_TXHDRCTL_ANTENNADIV_MASK	0x0030#define BCM43xx_TXHDRCTL_ANTENNADIV_SHIFT	8#define BCM43xx_TXHDR_RATE_MASK			0x0F00#define BCM43xx_TXHDR_RATE_SHIFT		8#define BCM43xx_TXHDR_RTSRATE_MASK		0xF000#define BCM43xx_TXHDR_RTSRATE_SHIFT		12#define BCM43xx_TXHDR_WSEC_KEYINDEX_MASK	0x00F0#define BCM43xx_TXHDR_WSEC_KEYINDEX_SHIFT	4#define BCM43xx_TXHDR_WSEC_ALGO_MASK		0x0003#define BCM43xx_TXHDR_WSEC_ALGO_SHIFT		0void bcm43xx_generate_txhdr(struct bcm43xx_private *bcm,			    struct bcm43xx_txhdr *txhdr,			    const unsigned char *fragment_data,			    const unsigned int fragment_len,			    const int is_first_fragment,			    const u16 cookie);/* RX header as received from the hardware. */struct bcm43xx_rxhdr {	/* Frame Length. Must be generated explicitely in PIO mode. */	__le16 frame_length;	PAD_BYTES(2);	/* Flags field 1 */	__le16 flags1;	u8 rssi;	u8 signal_quality;	PAD_BYTES(2);	/* Flags field 3 */	__le16 flags3;	/* Flags field 2 */	__le16 flags2;	/* Lower 16bits of the TSF at the time the frame started. */	__le16 mactime;	PAD_BYTES(14);} __attribute__((__packed__));#define BCM43xx_RXHDR_FLAGS1_OFDM		(1 << 0)/*#define BCM43xx_RXHDR_FLAGS1_SIGNAL???	(1 << 3) FIXME */#define BCM43xx_RXHDR_FLAGS1_SHORTPREAMBLE	(1 << 7)#define BCM43xx_RXHDR_FLAGS1_2053RSSIADJ	(1 << 14)#define BCM43xx_RXHDR_FLAGS2_INVALIDFRAME	(1 << 0)#define BCM43xx_RXHDR_FLAGS2_TYPE2FRAME		(1 << 2)/*FIXME: WEP related flags */#define BCM43xx_RXHDR_FLAGS3_2050RSSIADJ	(1 << 10)/* Transmit Status as received from the hardware. */struct bcm43xx_hwxmitstatus {	PAD_BYTES(4);	__le16 cookie;	u8 flags;	u8 cnt1:4,	   cnt2:4;	PAD_BYTES(2);	__le16 seq;	__le16 unknown; //FIXME} __attribute__((__packed__));/* Transmit Status in CPU byteorder. */struct bcm43xx_xmitstatus {	u16 cookie;	u8 flags;	u8 cnt1:4,	   cnt2:4;	u16 seq;	u16 unknown; //FIXME};#define BCM43xx_TXSTAT_FLAG_ACK		0x01//TODO #define BCM43xx_TXSTAT_FLAG_???	0x02//TODO #define BCM43xx_TXSTAT_FLAG_???	0x04//TODO #define BCM43xx_TXSTAT_FLAG_???	0x08//TODO #define BCM43xx_TXSTAT_FLAG_???	0x10#define BCM43xx_TXSTAT_FLAG_IGNORE	0x20//TODO #define BCM43xx_TXSTAT_FLAG_???	0x40//TODO #define BCM43xx_TXSTAT_FLAG_???	0x80u8 bcm43xx_plcp_get_ratecode_cck(const u8 bitrate);u8 bcm43xx_plcp_get_ratecode_ofdm(const u8 bitrate);int bcm43xx_rx(struct bcm43xx_private *bcm,	       struct sk_buff *skb,	       struct bcm43xx_rxhdr *rxhdr);#endif /* BCM43xx_XMIT_H_ */

⌨️ 快捷键说明

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