drivers/net/wireless/marvell/mwifiex/decl.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/marvell/mwifiex/decl.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/marvell/mwifiex/decl.h- Extension
.h- Size
- 7746 bytes
- Lines
- 325
- 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.
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/wait.hlinux/timer.hlinux/ieee80211.huapi/linux/if_arp.hnet/cfg80211.h
Detected Declarations
struct mwifiex_fw_imagestruct mwifiex_802_11_ssidstruct mwifiex_wait_queuestruct mwifiex_rxinfostruct mwifiex_txinfostruct ieee_types_wmm_ac_parametersstruct mwifiex_types_wmm_infostruct mwifiex_arp_eth_headerstruct mwifiex_chan_statsstruct mwifiex_histogram_datastruct mwifiex_iface_combstruct mwifiex_radar_paramsstruct mwifiex_11h_intf_statestruct memory_type_mappingenum mwifiex_bss_typeenum mwifiex_bss_roleenum mwifiex_tdls_statusenum mwifiex_tdls_error_codeenum mwifiex_data_frame_typeenum mwifiex_wmm_ac_eenum rdwr_statusenum mwifiex_chan_widthenum mwifiex_chan_offset
Annotated Snippet
struct mwifiex_fw_image {
u8 *helper_buf;
u32 helper_len;
u8 *fw_buf;
u32 fw_len;
};
struct mwifiex_802_11_ssid {
u32 ssid_len;
u8 ssid[IEEE80211_MAX_SSID_LEN];
};
struct mwifiex_wait_queue {
wait_queue_head_t wait;
int status;
};
struct mwifiex_rxinfo {
struct sk_buff *parent;
u8 bss_num;
u8 bss_type;
u8 use_count;
u8 buf_type;
};
struct mwifiex_txinfo {
u8 flags;
u8 bss_num;
u8 bss_type;
u8 aggr_num;
u32 pkt_len;
u8 ack_frame_id;
u64 cookie;
};
enum mwifiex_wmm_ac_e {
WMM_AC_BK,
WMM_AC_BE,
WMM_AC_VI,
WMM_AC_VO
} __packed;
struct ieee_types_wmm_ac_parameters {
u8 aci_aifsn_bitmap;
u8 ecw_bitmap;
__le16 tx_op_limit;
} __packed;
struct mwifiex_types_wmm_info {
u8 oui[4];
u8 subtype;
u8 version;
u8 qos_info;
u8 reserved;
struct ieee_types_wmm_ac_parameters ac_params[IEEE80211_NUM_ACS];
} __packed;
struct mwifiex_arp_eth_header {
struct arphdr hdr;
u8 ar_sha[ETH_ALEN];
u8 ar_sip[4];
u8 ar_tha[ETH_ALEN];
u8 ar_tip[4];
} __packed;
struct mwifiex_chan_stats {
u8 chan_num;
u8 bandcfg;
u8 flags;
s8 noise;
u16 total_bss;
u16 cca_scan_dur;
u16 cca_busy_dur;
} __packed;
#define MWIFIEX_HIST_MAX_SAMPLES 1048576
#define MWIFIEX_MAX_RX_RATES 44
#define MWIFIEX_MAX_AC_RX_RATES 74
#define MWIFIEX_MAX_SNR 256
#define MWIFIEX_MAX_NOISE_FLR 256
#define MWIFIEX_MAX_SIG_STRENGTH 256
struct mwifiex_histogram_data {
atomic_t rx_rate[MWIFIEX_MAX_AC_RX_RATES];
atomic_t snr[MWIFIEX_MAX_SNR];
atomic_t noise_flr[MWIFIEX_MAX_NOISE_FLR];
atomic_t sig_str[MWIFIEX_MAX_SIG_STRENGTH];
atomic_t num_samples;
};
Annotation
- Immediate include surface: `linux/wait.h`, `linux/timer.h`, `linux/ieee80211.h`, `uapi/linux/if_arp.h`, `net/cfg80211.h`.
- Detected declarations: `struct mwifiex_fw_image`, `struct mwifiex_802_11_ssid`, `struct mwifiex_wait_queue`, `struct mwifiex_rxinfo`, `struct mwifiex_txinfo`, `struct ieee_types_wmm_ac_parameters`, `struct mwifiex_types_wmm_info`, `struct mwifiex_arp_eth_header`, `struct mwifiex_chan_stats`, `struct mwifiex_histogram_data`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.