drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
Source file repositories/reference/linux-study-clean/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c- Extension
.c- Size
- 74055 bytes
- Lines
- 2541
- 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.
- 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
linux/slab.hlinux/netdevice.hlinux/etherdevice.hlinux/rtnetlink.hnet/cfg80211.hbrcmu_wifi.hbrcmu_utils.hdefs.hcore.hdebug.hfwil.hfwil_types.hp2p.hcfg80211.hfeature.h
Detected Declarations
struct brcmf_p2p_disc_st_lestruct brcmf_p2p_scan_lestruct brcmf_p2p_pub_act_framestruct brcmf_p2p_action_framestruct brcmf_p2psd_gas_pub_act_framestruct brcmf_config_af_paramsenum brcmf_p2p_disc_statefunction brcmf_p2p_is_pub_actionfunction brcmf_p2p_is_p2p_actionfunction brcmf_p2p_is_gas_actionfunction brcmf_p2p_print_actframefunction brcmf_p2p_print_actframefunction brcmf_p2p_generate_bss_macfunction brcmf_p2p_scan_is_p2p_requestfunction brcmf_p2p_set_discover_statefunction brcmf_p2p_deinit_discoveryfunction brcmf_p2p_enable_discoveryfunction brcmf_p2p_escanfunction brcmf_p2p_run_escanfunction brcmf_p2p_find_listen_channelfunction brcmf_p2p_scan_prepfunction brcmf_p2p_discover_listenfunction brcmf_p2p_remain_on_channelfunction brcmf_p2p_notify_listen_completefunction brcmf_p2p_cancel_remain_on_channelfunction brcmf_p2p_act_frm_searchfunction brcmf_p2p_afx_handlerfunction brcmf_p2p_af_searching_channelfunction brcmf_p2p_scan_finding_common_channelfunction brcmf_p2p_abort_action_framefunction brcmf_p2p_stop_wait_next_action_framefunction brcmf_p2p_gon_req_collisionfunction brcmf_p2p_notify_action_frame_rxfunction brcmf_p2p_notify_action_tx_completefunction brcmf_p2p_tx_action_framefunction brcmf_p2p_pub_af_txfunction brcmf_p2p_check_dwell_overflowfunction brcmf_p2p_send_action_framefunction IS_P2P_SOCIAL_CHANNELfunction test_bitfunction brcmf_p2p_notify_rx_mgmt_p2p_probereqfunction brcmf_p2p_get_current_chanspecfunction brcmf_p2p_ifchangefunction brcmf_p2p_request_p2p_iffunction brcmf_p2p_disable_p2p_iffunction brcmf_p2p_release_p2p_iffunction brcmf_p2p_create_p2pdevfunction brcmf_p2p_get_conn_idx
Annotated Snippet
struct brcmf_p2p_disc_st_le {
u8 state;
__le16 chspec;
__le16 dwell;
};
/**
* enum brcmf_p2p_disc_state - P2P discovery state values
*
* @WL_P2P_DISC_ST_SCAN: P2P discovery with wildcard SSID and P2P IE.
* @WL_P2P_DISC_ST_LISTEN: P2P discovery off-channel for specified time.
* @WL_P2P_DISC_ST_SEARCH: P2P discovery with P2P wildcard SSID and P2P IE.
*/
enum brcmf_p2p_disc_state {
WL_P2P_DISC_ST_SCAN,
WL_P2P_DISC_ST_LISTEN,
WL_P2P_DISC_ST_SEARCH
};
/**
* struct brcmf_p2p_scan_le - P2P specific scan request.
*
* @type: type of scan method requested (values: 'E' or 'S').
* @reserved: reserved (ignored).
* @eparams: parameters used for type 'E'.
* @sparams: parameters used for type 'S'.
*/
struct brcmf_p2p_scan_le {
u8 type;
u8 reserved[3];
union {
struct brcmf_escan_params_le eparams;
struct brcmf_scan_params_le sparams;
};
};
/**
* struct brcmf_p2p_pub_act_frame - WiFi P2P Public Action Frame
*
* @category: P2P_PUB_AF_CATEGORY
* @action: P2P_PUB_AF_ACTION
* @oui: P2P_OUI
* @oui_type: OUI type - P2P_VER
* @subtype: OUI subtype - P2P_TYPE_*
* @dialog_token: nonzero, identifies req/rsp transaction
* @elts: Variable length information elements.
*/
struct brcmf_p2p_pub_act_frame {
u8 category;
u8 action;
u8 oui[3];
u8 oui_type;
u8 subtype;
u8 dialog_token;
u8 elts[];
};
/**
* struct brcmf_p2p_action_frame - WiFi P2P Action Frame
*
* @category: P2P_AF_CATEGORY
* @oui: OUI - P2P_OUI
* @type: OUI Type - P2P_VER
* @subtype: OUI Subtype - P2P_AF_*
* @dialog_token: nonzero, identifies req/resp tranaction
* @elts: Variable length information elements.
*/
struct brcmf_p2p_action_frame {
u8 category;
u8 oui[3];
u8 type;
u8 subtype;
u8 dialog_token;
u8 elts[];
};
/**
* struct brcmf_p2psd_gas_pub_act_frame - Wi-Fi GAS Public Action Frame
*
* @category: 0x04 Public Action Frame
* @action: 0x6c Advertisement Protocol
* @dialog_token: nonzero, identifies req/rsp transaction
* @query_data: Query Data. SD gas ireq SD gas iresp
*/
struct brcmf_p2psd_gas_pub_act_frame {
u8 category;
u8 action;
u8 dialog_token;
u8 query_data[];
};
Annotation
- Immediate include surface: `linux/slab.h`, `linux/netdevice.h`, `linux/etherdevice.h`, `linux/rtnetlink.h`, `net/cfg80211.h`, `brcmu_wifi.h`, `brcmu_utils.h`, `defs.h`.
- Detected declarations: `struct brcmf_p2p_disc_st_le`, `struct brcmf_p2p_scan_le`, `struct brcmf_p2p_pub_act_frame`, `struct brcmf_p2p_action_frame`, `struct brcmf_p2psd_gas_pub_act_frame`, `struct brcmf_config_af_params`, `enum brcmf_p2p_disc_state`, `function brcmf_p2p_is_pub_action`, `function brcmf_p2p_is_p2p_action`, `function brcmf_p2p_is_gas_action`.
- 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.
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.