drivers/net/wireless/ath/ath6kl/main.c
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath6kl/main.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath6kl/main.c- Extension
.c- Size
- 35120 bytes
- Lines
- 1312
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern 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 an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
core.hhif-ops.hcfg80211.htarget.hdebug.h
Detected Declarations
function Copyrightfunction ath6kl_add_new_stafunction ath6kl_sta_cleanupfunction ath6kl_remove_stafunction ath6kl_ac2_endpoint_idfunction ath6kl_cookie_initfunction ath6kl_cookie_cleanupfunction ath6kl_free_cookiefunction ath6kl_diag_read32function ath6kl_diag_write32function ath6kl_diag_readfunction ath6kl_diag_writefunction ath6kl_read_fwlogsfunction ath6kl_install_static_wep_keysfunction ath6kl_connect_ap_mode_bssfunction ath6kl_connect_ap_mode_stafunction disconnect_timer_handlerfunction ath6kl_disconnectfunction ath6kl_ready_eventfunction ath6kl_scan_complete_evtfunction ath6kl_commit_ch_switchfunction ath6kl_check_ch_switchfunction ath6kl_connect_eventfunction ath6kl_tkip_micerr_eventfunction ath6kl_update_target_statsfunction ath6kl_add_le32function ath6kl_tgt_stats_eventfunction ath6kl_wakeup_eventfunction ath6kl_txpwr_rx_evtfunction ath6kl_pspoll_eventfunction ath6kl_dtimexpiry_eventfunction ath6kl_disconnect_eventfunction ath6kl_openfunction ath6kl_closefunction ath6kl_set_featuresfunction ath6kl_set_multicast_listfunction netdev_for_each_mc_addrfunction netdev_for_each_mc_addrfunction list_for_each_entryfunction init_netdev
Annotated Snippet
static const struct net_device_ops ath6kl_netdev_ops = {
.ndo_open = ath6kl_open,
.ndo_stop = ath6kl_close,
.ndo_start_xmit = ath6kl_data_tx,
.ndo_set_features = ath6kl_set_features,
.ndo_set_rx_mode = ath6kl_set_multicast_list,
};
void init_netdev(struct net_device *dev)
{
struct ath6kl *ar = ath6kl_priv(dev);
dev->netdev_ops = &ath6kl_netdev_ops;
dev->needs_free_netdev = true;
dev->watchdog_timeo = ATH6KL_TX_TIMEOUT;
dev->needed_headroom = ETH_HLEN;
dev->needed_headroom += roundup(sizeof(struct ath6kl_llc_snap_hdr) +
sizeof(struct wmi_data_hdr) +
HTC_HDR_LENGTH +
WMI_MAX_TX_META_SZ +
ATH6KL_HTC_ALIGN_BYTES, 4);
if (!test_bit(ATH6KL_FW_CAPABILITY_NO_IP_CHECKSUM,
ar->fw_capabilities))
dev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM;
return;
}
Annotation
- Immediate include surface: `core.h`, `hif-ops.h`, `cfg80211.h`, `target.h`, `debug.h`.
- Detected declarations: `function Copyright`, `function ath6kl_add_new_sta`, `function ath6kl_sta_cleanup`, `function ath6kl_remove_sta`, `function ath6kl_ac2_endpoint_id`, `function ath6kl_cookie_init`, `function ath6kl_cookie_cleanup`, `function ath6kl_free_cookie`, `function ath6kl_diag_read32`, `function ath6kl_diag_write32`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: pattern implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.