net/wireless/core.h
Source file repositories/reference/linux-study-clean/net/wireless/core.h
File Facts
- System
- Linux kernel
- Corpus path
net/wireless/core.h- Extension
.h- Size
- 21763 bytes
- Lines
- 657
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/list.hlinux/netdevice.hlinux/rbtree.hlinux/debugfs.hlinux/rfkill.hlinux/workqueue.hlinux/rtnetlink.hnet/genetlink.hnet/cfg80211.hreg.h
Detected Declarations
struct cfg80211_scan_request_intstruct cfg80211_registered_devicestruct cfg80211_internal_bssstruct cfg80211_eventstruct cfg80211_cached_keysstruct cfg80211_beacon_registrationstruct cfg80211_cqm_configstruct cfg80211_colocated_apenum bss_source_typeenum cfg80211_event_typefunction cfg80211_rdev_free_wowlanfunction cfg80211_assign_cookiefunction for_each_rdev_check_rtnlfunction cfg80211_hold_bssfunction cfg80211_unhold_bssfunction cfg80211_has_monitors_onlyfunction elapsed_jiffies_msecs
Annotated Snippet
struct cfg80211_scan_request_int {
struct cfg80211_scan_info info;
bool notified;
/* must be last - variable members */
struct cfg80211_scan_request req;
};
struct cfg80211_registered_device {
const struct cfg80211_ops *ops;
struct list_head list;
/* rfkill support */
struct rfkill_ops rfkill_ops;
struct work_struct rfkill_block;
/* ISO / IEC 3166 alpha2 for which this device is receiving
* country IEs on, this can help disregard country IEs from APs
* on the same alpha2 quickly. The alpha2 may differ from
* cfg80211_regdomain's alpha2 when an intersection has occurred.
* If the AP is reconfigured this can also be used to tell us if
* the country on the country IE changed. */
char country_ie_alpha2[2];
/*
* the driver requests the regulatory core to set this regulatory
* domain as the wiphy's. Only used for %REGULATORY_WIPHY_SELF_MANAGED
* devices using the regulatory_set_wiphy_regd() API
*/
const struct ieee80211_regdomain *requested_regd;
/* If a Country IE has been received this tells us the environment
* which its telling us its in. This defaults to ENVIRON_ANY */
enum environment_cap env;
/* wiphy index, internal only */
int wiphy_idx;
/* protected by RTNL */
int devlist_generation, wdev_id;
int opencount;
wait_queue_head_t dev_wait;
struct list_head beacon_registrations;
spinlock_t beacon_registrations_lock;
/* protected by RTNL only */
int num_running_ifaces;
int num_running_monitor_ifaces;
u64 cookie_counter;
/* BSSes/scanning */
spinlock_t bss_lock;
struct list_head bss_list;
struct rb_root bss_tree;
u32 bss_generation;
u32 bss_entries;
struct cfg80211_scan_request_int *scan_req; /* protected by RTNL */
struct cfg80211_scan_request_int *int_scan_req;
struct sk_buff *scan_msg;
struct list_head sched_scan_req_list;
time64_t suspend_at;
struct wiphy_work scan_done_wk;
struct genl_info *cur_cmd_info;
struct work_struct conn_work;
struct work_struct event_work;
struct delayed_work dfs_update_channels_wk;
struct wireless_dev *background_radar_wdev;
struct cfg80211_chan_def background_radar_chandef;
struct delayed_work background_cac_done_wk;
struct work_struct background_cac_abort_wk;
/* netlink port which started critical protocol (0 means not started) */
u32 crit_proto_nlportid;
struct cfg80211_coalesce *coalesce;
struct work_struct destroy_work;
struct wiphy_work sched_scan_stop_wk;
struct work_struct sched_scan_res_wk;
struct cfg80211_chan_def radar_chandef;
struct work_struct propagate_radar_detect_wk;
struct cfg80211_chan_def cac_done_chandef;
struct work_struct propagate_cac_done_wk;
Annotation
- Immediate include surface: `linux/list.h`, `linux/netdevice.h`, `linux/rbtree.h`, `linux/debugfs.h`, `linux/rfkill.h`, `linux/workqueue.h`, `linux/rtnetlink.h`, `net/genetlink.h`.
- Detected declarations: `struct cfg80211_scan_request_int`, `struct cfg80211_registered_device`, `struct cfg80211_internal_bss`, `struct cfg80211_event`, `struct cfg80211_cached_keys`, `struct cfg80211_beacon_registration`, `struct cfg80211_cqm_config`, `struct cfg80211_colocated_ap`, `enum bss_source_type`, `enum cfg80211_event_type`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: integration 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.