drivers/net/wireless/marvell/libertas/host.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/marvell/libertas/host.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/marvell/libertas/host.h
Extension
.h
Size
24239 bytes
Lines
984
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 txpd {
	/* union to cope up with later FW revisions */
	union {
		/* Current Tx packet status */
		__le32 tx_status;
		struct {
			/* BSS type: client, AP, etc. */
			u8 bss_type;
			/* BSS number */
			u8 bss_num;
			/* Reserved */
			__le16 reserved;
		} bss;
	} u;
	/* Tx control */
	__le32 tx_control;
	__le32 tx_packet_location;
	/* Tx packet length */
	__le16 tx_packet_length;
	struct_group_attr(tx_dest_addr, __packed,
		/* First 2 byte of destination MAC address */
		u8 tx_dest_addr_high[2];
		/* Last 4 byte of destination MAC address */
		u8 tx_dest_addr_low[4];
	);
	/* Pkt Priority */
	u8 priority;
	/* Pkt Trasnit Power control */
	u8 powermgmt;
	/* Amount of time the packet has been queued (units = 2ms) */
	u8 pktdelay_2ms;
	/* reserved */
	u8 reserved1;
} __packed;

/* RxPD Descriptor */
struct rxpd {
	/* union to cope up with later FW revisions */
	union {
		/* Current Rx packet status */
		__le16 status;
		struct {
			/* BSS type: client, AP, etc. */
			u8 bss_type;
			/* BSS number */
			u8 bss_num;
		} __packed bss;
	} __packed u;

	/* SNR */
	u8 snr;

	/* Tx control */
	u8 rx_control;

	/* Pkt length */
	__le16 pkt_len;

	/* Noise Floor */
	u8 nf;

	/* Rx Packet Rate */
	u8 rx_rate;

	/* Pkt addr */
	__le32 pkt_ptr;

	/* Next Rx RxPD addr */
	__le32 next_rxpd_ptr;

	/* Pkt Priority */
	u8 priority;
	u8 reserved[3];
} __packed;

struct cmd_header {
	__le16 command;
	__le16 size;
	__le16 seqnum;
	__le16 result;
} __packed;

/* Generic structure to hold all key types. */
struct enc_key {
	u16 len;
	u16 flags;  /* KEY_INFO_* from defs.h */
	u16 type; /* KEY_TYPE_* from defs.h */
	u8 key[32];
};

Annotation

Implementation Notes