drivers/net/wireless/atmel/at76c50x-usb.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/atmel/at76c50x-usb.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/atmel/at76c50x-usb.h
Extension
.h
Size
11198 bytes
Lines
463
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct hwcfg_r505 {
	u8 cr39_values[14];
	u8 reserved1[14];
	u8 bb_cr[14];
	u8 pidvid[4];
	u8 mac_addr[ETH_ALEN];
	u8 regulatory_domain;
	u8 reserved2[14];
	u8 cr15_values[14];
	u8 reserved3[3];
} __packed;

struct hwcfg_rfmd {
	u8 cr20_values[14];
	u8 cr21_values[14];
	u8 bb_cr[14];
	u8 pidvid[4];
	u8 mac_addr[ETH_ALEN];
	u8 regulatory_domain;
	u8 low_power_values[14];
	u8 normal_power_values[14];
	u8 reserved1[3];
} __packed;

struct hwcfg_intersil {
	u8 mac_addr[ETH_ALEN];
	u8 cr31_values[14];
	u8 cr58_values[14];
	u8 pidvid[4];
	u8 regulatory_domain;
	u8 reserved[1];
} __packed;

union at76_hwcfg {
	struct hwcfg_intersil i;
	struct hwcfg_rfmd r3;
	struct hwcfg_r505 r5;
};

#define WEP_SMALL_KEY_LEN	(40 / 8)
#define WEP_LARGE_KEY_LEN	(104 / 8)
#define WEP_KEYS		(4)

struct at76_card_config {
	u8 exclude_unencrypted;
	u8 promiscuous_mode;
	u8 short_retry_limit;
	u8 encryption_type;
	__le16 rts_threshold;
	__le16 fragmentation_threshold;	/* 256..2346 */
	u8 basic_rate_set[4];
	u8 auto_rate_fallback;	/* 0,1 */
	u8 channel;
	u8 privacy_invoked;
	u8 wep_default_key_id;	/* 0..3 */
	u8 current_ssid[32];
	u8 wep_default_key_value[4][WEP_LARGE_KEY_LEN];
	u8 ssid_len;
	u8 short_preamble;
	__le16 beacon_period;
} __packed;

struct at76_command {
	u8 cmd;
	u8 reserved;
	__le16 size;
	u8 data[] __counted_by_le(size);
} __packed;

/* Length of Atmel-specific Rx header before 802.11 frame */
#define AT76_RX_HDRLEN offsetof(struct at76_rx_buffer, packet)

struct at76_rx_buffer {
	__le16 wlength;
	u8 rx_rate;
	u8 newbss;
	u8 fragmentation;
	u8 rssi;
	u8 link_quality;
	u8 noise_level;
	__le32 rx_time;
	u8 packet[IEEE80211_MAX_FRAG_THRESHOLD];
} __packed;

/* Length of Atmel-specific Tx header before 802.11 frame */
#define AT76_TX_HDRLEN offsetof(struct at76_tx_buffer, packet)

struct at76_tx_buffer {
	__le16 wlength;
	u8 tx_rate;

Annotation

Implementation Notes