drivers/net/wireless/quantenna/qtnfmac/qlink.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/quantenna/qtnfmac/qlink.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/quantenna/qtnfmac/qlink.h
Extension
.h
Size
52355 bytes
Lines
1892
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 qlink_msg_header {
	__le16 type;
	__le16 len;
} __packed;

/* Generic definitions of data and information carried in QLINK messages
 */

/**
 * enum qlink_hw_capab - device capabilities.
 *
 * @QLINK_HW_CAPAB_REG_UPDATE: device can update it's regulatory region.
 * @QLINK_HW_CAPAB_STA_INACT_TIMEOUT: device implements a logic to kick-out
 *	associated STAs due to inactivity. Inactivity timeout period is taken
 *	from QLINK_CMD_START_AP parameters.
 * @QLINK_HW_CAPAB_DFS_OFFLOAD: device implements DFS offload functionality
 * @QLINK_HW_CAPAB_SCAN_RANDOM_MAC_ADDR: device supports MAC Address
 *	Randomization in probe requests.
 * @QLINK_HW_CAPAB_OBSS_SCAN: device can perform OBSS scanning.
 * @QLINK_HW_CAPAB_HW_BRIDGE: device has hardware switch capabilities.
 */
enum qlink_hw_capab {
	QLINK_HW_CAPAB_REG_UPDATE = 0,
	QLINK_HW_CAPAB_STA_INACT_TIMEOUT,
	QLINK_HW_CAPAB_DFS_OFFLOAD,
	QLINK_HW_CAPAB_SCAN_RANDOM_MAC_ADDR,
	QLINK_HW_CAPAB_PWR_MGMT,
	QLINK_HW_CAPAB_OBSS_SCAN,
	QLINK_HW_CAPAB_SCAN_DWELL,
	QLINK_HW_CAPAB_SAE,
	QLINK_HW_CAPAB_HW_BRIDGE,
	QLINK_HW_CAPAB_NUM
};

/**
 * enum qlink_driver_capab - host driver capabilities.
 *
 */
enum qlink_driver_capab {
	QLINK_DRV_CAPAB_NUM = 0
};

enum qlink_iface_type {
	QLINK_IFTYPE_AP		= 1,
	QLINK_IFTYPE_STATION	= 2,
	QLINK_IFTYPE_ADHOC	= 3,
	QLINK_IFTYPE_MONITOR	= 4,
	QLINK_IFTYPE_WDS	= 5,
	QLINK_IFTYPE_AP_VLAN	= 6,
};

/**
 * struct qlink_intf_info - information on virtual interface.
 *
 * Data describing a single virtual interface.
 *
 * @if_type: Mode of interface operation, one of &enum qlink_iface_type
 * @vlanid: VLAN ID for AP_VLAN interface type
 * @mac_addr: MAC address of virtual interface.
 */
struct qlink_intf_info {
	__le16 if_type;
	__le16 vlanid;
	u8 mac_addr[ETH_ALEN];
	u8 use4addr;
	u8 rsvd[1];
} __packed;

enum qlink_sta_flags {
	QLINK_STA_FLAG_INVALID		= 0,
	QLINK_STA_FLAG_AUTHORIZED		= BIT(0),
	QLINK_STA_FLAG_SHORT_PREAMBLE	= BIT(1),
	QLINK_STA_FLAG_WME			= BIT(2),
	QLINK_STA_FLAG_MFP			= BIT(3),
	QLINK_STA_FLAG_AUTHENTICATED		= BIT(4),
	QLINK_STA_FLAG_TDLS_PEER		= BIT(5),
	QLINK_STA_FLAG_ASSOCIATED		= BIT(6),
};

enum qlink_channel_width {
	QLINK_CHAN_WIDTH_5 = 0,
	QLINK_CHAN_WIDTH_10,
	QLINK_CHAN_WIDTH_20_NOHT,
	QLINK_CHAN_WIDTH_20,
	QLINK_CHAN_WIDTH_40,
	QLINK_CHAN_WIDTH_80,
	QLINK_CHAN_WIDTH_80P80,
	QLINK_CHAN_WIDTH_160,
};

Annotation

Implementation Notes