drivers/net/wireless/intersil/p54/lmac.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intersil/p54/lmac.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intersil/p54/lmac.h- Extension
.h- Size
- 12421 bytes
- Lines
- 560
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct p54_hdrstruct exp_ifstruct dep_ifstruct p54_eeprom_lm86struct p54_rx_datastruct p54_trapstruct p54_frame_sentstruct p54_tx_datastruct p54_setup_macstruct p54_scan_headstruct p54_pa_curve_data_samplestruct p54_scan_bodystruct p54_channel_output_limit_longbowstruct p54_pa_curve_data_sample_longbowstruct p54_scan_body_longbowstruct p54_scan_tail_ratestruct p54_ledstruct p54_edcfstruct p54_statisticsstruct p54_xbow_synthstruct p54_timerstruct p54_keycachestruct p54_burststruct p54_psm_intervalstruct p54_psmstruct p54_group_address_tablestruct p54_txcancelstruct p54_sta_unlockstruct p54_timstruct p54_cce_quietstruct p54_bt_balancerstruct p54_arp_tableenum p54_control_frame_typesenum p54_rx_decrypt_statusenum p54_trap_typeenum p54_frame_sent_statusenum p54_tx_data_cryptenum p54_tx_data_queue
Annotated Snippet
struct p54_hdr {
__le16 flags;
__le16 len;
__le32 req_id;
__le16 type; /* enum p54_control_frame_types */
u8 rts_tries;
u8 tries;
u8 data[];
} __packed;
#define GET_REQ_ID(skb) \
(((struct p54_hdr *) ((struct sk_buff *) skb)->data)->req_id) \
#define FREE_AFTER_TX(skb) \
((((struct p54_hdr *) ((struct sk_buff *) skb)->data)-> \
flags) == cpu_to_le16(P54_HDR_FLAG_CONTROL_OPSET))
#define IS_DATA_FRAME(skb) \
(!((((struct p54_hdr *) ((struct sk_buff *) skb)->data)-> \
flags) & cpu_to_le16(P54_HDR_FLAG_CONTROL)))
#define GET_HW_QUEUE(skb) \
(((struct p54_tx_data *)((struct p54_hdr *) \
skb->data)->data)->hw_queue)
/*
* shared interface ID definitions
* The interface ID is a unique identification of a specific interface.
* The following values are reserved: 0x0000, 0x0002, 0x0012, 0x0014, 0x0015
*/
#define IF_ID_ISL36356A 0x0001 /* ISL36356A <-> Firmware */
#define IF_ID_MVC 0x0003 /* MAC Virtual Coprocessor */
#define IF_ID_DEBUG 0x0008 /* PolDebug Interface */
#define IF_ID_PRODUCT 0x0009
#define IF_ID_OEM 0x000a
#define IF_ID_PCI3877 0x000b /* 3877 <-> Host PCI */
#define IF_ID_ISL37704C 0x000c /* ISL37704C <-> Fw */
#define IF_ID_ISL39000 0x000f /* ISL39000 <-> Fw */
#define IF_ID_ISL39300A 0x0010 /* ISL39300A <-> Fw */
#define IF_ID_ISL37700_UAP 0x0016 /* ISL37700 uAP Fw <-> Fw */
#define IF_ID_ISL39000_UAP 0x0017 /* ISL39000 uAP Fw <-> Fw */
#define IF_ID_LMAC 0x001a /* Interface exposed by LMAC */
struct exp_if {
__le16 role;
__le16 if_id;
__le16 variant;
__le16 btm_compat;
__le16 top_compat;
} __packed;
struct dep_if {
__le16 role;
__le16 if_id;
__le16 variant;
} __packed;
/* driver <-> lmac definitions */
struct p54_eeprom_lm86 {
union {
struct {
__le16 offset;
__le16 len;
u8 data[0];
} __packed v1;
struct {
__le32 offset;
__le16 len;
u8 magic2;
u8 pad;
u8 magic[4];
u8 data[0];
} __packed v2;
} __packed;
} __packed;
enum p54_rx_decrypt_status {
P54_DECRYPT_NONE = 0,
P54_DECRYPT_OK,
P54_DECRYPT_NOKEY,
P54_DECRYPT_NOMICHAEL,
P54_DECRYPT_NOCKIPMIC,
P54_DECRYPT_FAIL_WEP,
P54_DECRYPT_FAIL_TKIP,
P54_DECRYPT_FAIL_MICHAEL,
P54_DECRYPT_FAIL_CKIPKP,
P54_DECRYPT_FAIL_CKIPMIC,
P54_DECRYPT_FAIL_AESCCMP
};
Annotation
- Detected declarations: `struct p54_hdr`, `struct exp_if`, `struct dep_if`, `struct p54_eeprom_lm86`, `struct p54_rx_data`, `struct p54_trap`, `struct p54_frame_sent`, `struct p54_tx_data`, `struct p54_setup_mac`, `struct p54_scan_head`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
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.