drivers/net/wireless/microchip/wilc1000/wlan.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/microchip/wilc1000/wlan.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/microchip/wilc1000/wlan.h- Extension
.h- Size
- 14971 bytes
- Lines
- 476
- 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
linux/types.hlinux/bitfield.h
Detected Declarations
struct txq_entry_tstruct txq_fw_recv_queue_statstruct txq_handlestruct rxq_entry_tstruct wilcstruct wilc_hif_funcstruct tx_complete_datastruct wilc_cfg_cmd_hdrstruct wilc_cfg_framestruct wilc_cfg_rspstruct wilc_vifenum ip_pkt_priorityfunction is_wilc1000function is_wilc3000
Annotated Snippet
struct txq_entry_t {
struct list_head list;
int type;
u8 q_num;
int ack_idx;
u8 *buffer;
int buffer_size;
void *priv;
int status;
struct wilc_vif *vif;
void (*tx_complete_func)(void *priv, int status);
};
struct txq_fw_recv_queue_stat {
u8 acm;
u8 count;
};
struct txq_handle {
struct txq_entry_t txq_head;
u16 count;
struct txq_fw_recv_queue_stat fw;
};
struct rxq_entry_t {
struct list_head list;
u8 *buffer;
int buffer_size;
};
/********************************************
*
* Host IF Structure
*
********************************************/
struct wilc;
struct wilc_hif_func {
int (*hif_init)(struct wilc *wilc, bool resume);
int (*hif_deinit)(struct wilc *wilc);
int (*hif_read_reg)(struct wilc *wilc, u32 addr, u32 *data);
int (*hif_write_reg)(struct wilc *wilc, u32 addr, u32 data);
int (*hif_block_rx)(struct wilc *wilc, u32 addr, u8 *buf, u32 size);
int (*hif_block_tx)(struct wilc *wilc, u32 addr, u8 *buf, u32 size);
int (*hif_read_int)(struct wilc *wilc, u32 *int_status);
int (*hif_clear_int_ext)(struct wilc *wilc, u32 val);
int (*hif_read_size)(struct wilc *wilc, u32 *size);
int (*hif_block_tx_ext)(struct wilc *wilc, u32 addr, u8 *buf, u32 size);
int (*hif_block_rx_ext)(struct wilc *wilc, u32 addr, u8 *buf, u32 size);
int (*hif_sync_ext)(struct wilc *wilc, int nint);
int (*enable_interrupt)(struct wilc *nic);
void (*disable_interrupt)(struct wilc *nic);
int (*hif_reset)(struct wilc *wilc);
bool (*hif_is_init)(struct wilc *wilc);
};
#define WILC_MAX_CFG_FRAME_SIZE 1468
struct tx_complete_data {
int size;
void *buff;
struct sk_buff *skb;
};
struct wilc_cfg_cmd_hdr {
u8 cmd_type;
u8 seq_no;
__le16 total_len;
__le32 driver_handler;
};
struct wilc_cfg_frame {
struct wilc_cfg_cmd_hdr hdr;
u8 frame[WILC_MAX_CFG_FRAME_SIZE];
};
struct wilc_cfg_rsp {
u8 type;
u8 seq_no;
};
struct wilc_vif;
static inline bool is_wilc1000(u32 id)
{
return (id & (~WILC_CHIP_REV_FIELD)) == WILC_1000_BASE_ID;
}
static inline bool is_wilc3000(u32 id)
{
return (id & (~WILC_CHIP_REV_FIELD)) == WILC_3000_BASE_ID;
Annotation
- Immediate include surface: `linux/types.h`, `linux/bitfield.h`.
- Detected declarations: `struct txq_entry_t`, `struct txq_fw_recv_queue_stat`, `struct txq_handle`, `struct rxq_entry_t`, `struct wilc`, `struct wilc_hif_func`, `struct tx_complete_data`, `struct wilc_cfg_cmd_hdr`, `struct wilc_cfg_frame`, `struct wilc_cfg_rsp`.
- 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.