drivers/net/wireless/silabs/wfx/hif_api_general.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/silabs/wfx/hif_api_general.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/silabs/wfx/hif_api_general.h- Extension
.h- Size
- 7617 bytes
- Lines
- 253
- 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/if_ether.h
Detected Declarations
struct wfx_hif_msgstruct wfx_hif_ind_startupstruct wfx_hif_ind_wakeupstruct wfx_hif_req_configurationstruct wfx_hif_cnf_configurationstruct wfx_hif_req_control_gpiostruct wfx_hif_cnf_control_gpiostruct wfx_hif_rx_statsstruct wfx_hif_tx_power_loop_infostruct wfx_hif_ind_genericstruct wfx_hif_ind_errorstruct wfx_hif_ind_exceptionenum wfx_hif_general_requests_idsenum wfx_hif_general_confirmations_idsenum wfx_hif_general_indications_idsenum wfx_hif_api_rate_indexenum wfx_hif_gpio_modeenum wfx_hif_generic_indication_typeenum wfx_hif_errorenum wfx_hif_secure_link_state
Annotated Snippet
struct wfx_hif_msg {
__le16 len;
u8 id;
u8 reserved:1;
u8 interface:2;
u8 seqnum:3;
u8 encrypted:2;
u8 body[];
} __packed;
enum wfx_hif_general_requests_ids {
HIF_REQ_ID_CONFIGURATION = 0x09,
HIF_REQ_ID_CONTROL_GPIO = 0x26,
HIF_REQ_ID_SET_SL_MAC_KEY = 0x27,
HIF_REQ_ID_SL_EXCHANGE_PUB_KEYS = 0x28,
HIF_REQ_ID_SL_CONFIGURE = 0x29,
HIF_REQ_ID_PREVENT_ROLLBACK = 0x2a,
HIF_REQ_ID_PTA_SETTINGS = 0x2b,
HIF_REQ_ID_PTA_PRIORITY = 0x2c,
HIF_REQ_ID_PTA_STATE = 0x2d,
HIF_REQ_ID_SHUT_DOWN = 0x32,
};
enum wfx_hif_general_confirmations_ids {
HIF_CNF_ID_CONFIGURATION = 0x09,
HIF_CNF_ID_CONTROL_GPIO = 0x26,
HIF_CNF_ID_SET_SL_MAC_KEY = 0x27,
HIF_CNF_ID_SL_EXCHANGE_PUB_KEYS = 0x28,
HIF_CNF_ID_SL_CONFIGURE = 0x29,
HIF_CNF_ID_PREVENT_ROLLBACK = 0x2a,
HIF_CNF_ID_PTA_SETTINGS = 0x2b,
HIF_CNF_ID_PTA_PRIORITY = 0x2c,
HIF_CNF_ID_PTA_STATE = 0x2d,
HIF_CNF_ID_SHUT_DOWN = 0x32,
};
enum wfx_hif_general_indications_ids {
HIF_IND_ID_EXCEPTION = 0xe0,
HIF_IND_ID_STARTUP = 0xe1,
HIF_IND_ID_WAKEUP = 0xe2,
HIF_IND_ID_GENERIC = 0xe3,
HIF_IND_ID_ERROR = 0xe4,
HIF_IND_ID_SL_EXCHANGE_PUB_KEYS = 0xe5
};
#define HIF_STATUS_SUCCESS (cpu_to_le32(0x0000))
#define HIF_STATUS_FAIL (cpu_to_le32(0x0001))
#define HIF_STATUS_INVALID_PARAMETER (cpu_to_le32(0x0002))
#define HIF_STATUS_WARNING (cpu_to_le32(0x0003))
#define HIF_STATUS_UNKNOWN_REQUEST (cpu_to_le32(0x0004))
#define HIF_STATUS_RX_FAIL_DECRYPT (cpu_to_le32(0x0010))
#define HIF_STATUS_RX_FAIL_MIC (cpu_to_le32(0x0011))
#define HIF_STATUS_RX_FAIL_NO_KEY (cpu_to_le32(0x0012))
#define HIF_STATUS_TX_FAIL_RETRIES (cpu_to_le32(0x0013))
#define HIF_STATUS_TX_FAIL_TIMEOUT (cpu_to_le32(0x0014))
#define HIF_STATUS_TX_FAIL_REQUEUE (cpu_to_le32(0x0015))
#define HIF_STATUS_REFUSED (cpu_to_le32(0x0016))
#define HIF_STATUS_BUSY (cpu_to_le32(0x0017))
#define HIF_STATUS_SLK_SET_KEY_SUCCESS (cpu_to_le32(0x005A))
#define HIF_STATUS_SLK_SET_KEY_ALREADY_BURNED (cpu_to_le32(0x006B))
#define HIF_STATUS_SLK_SET_KEY_DISALLOWED_MODE (cpu_to_le32(0x007C))
#define HIF_STATUS_SLK_SET_KEY_UNKNOWN_MODE (cpu_to_le32(0x008D))
#define HIF_STATUS_SLK_NEGO_SUCCESS (cpu_to_le32(0x009E))
#define HIF_STATUS_SLK_NEGO_FAILED (cpu_to_le32(0x00AF))
#define HIF_STATUS_ROLLBACK_SUCCESS (cpu_to_le32(0x1234))
#define HIF_STATUS_ROLLBACK_FAIL (cpu_to_le32(0x1256))
enum wfx_hif_api_rate_index {
API_RATE_INDEX_B_1MBPS = 0,
API_RATE_INDEX_B_2MBPS = 1,
API_RATE_INDEX_B_5P5MBPS = 2,
API_RATE_INDEX_B_11MBPS = 3,
API_RATE_INDEX_PBCC_22MBPS = 4,
API_RATE_INDEX_PBCC_33MBPS = 5,
API_RATE_INDEX_G_6MBPS = 6,
API_RATE_INDEX_G_9MBPS = 7,
API_RATE_INDEX_G_12MBPS = 8,
API_RATE_INDEX_G_18MBPS = 9,
API_RATE_INDEX_G_24MBPS = 10,
API_RATE_INDEX_G_36MBPS = 11,
API_RATE_INDEX_G_48MBPS = 12,
API_RATE_INDEX_G_54MBPS = 13,
API_RATE_INDEX_N_6P5MBPS = 14,
API_RATE_INDEX_N_13MBPS = 15,
API_RATE_INDEX_N_19P5MBPS = 16,
API_RATE_INDEX_N_26MBPS = 17,
API_RATE_INDEX_N_39MBPS = 18,
API_RATE_INDEX_N_52MBPS = 19,
API_RATE_INDEX_N_58P5MBPS = 20,
API_RATE_INDEX_N_65MBPS = 21,
Annotation
- Immediate include surface: `linux/types.h`, `linux/if_ether.h`.
- Detected declarations: `struct wfx_hif_msg`, `struct wfx_hif_ind_startup`, `struct wfx_hif_ind_wakeup`, `struct wfx_hif_req_configuration`, `struct wfx_hif_cnf_configuration`, `struct wfx_hif_req_control_gpio`, `struct wfx_hif_cnf_control_gpio`, `struct wfx_hif_rx_stats`, `struct wfx_hif_tx_power_loop_info`, `struct wfx_hif_ind_generic`.
- 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.