drivers/net/ethernet/qlogic/qed/qed.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qed/qed.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/qlogic/qed/qed.h- Extension
.h- Size
- 24918 bytes
- Lines
- 1004
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/io.hlinux/delay.hlinux/firmware.hlinux/interrupt.hlinux/list.hlinux/mutex.hlinux/pci.hlinux/slab.hlinux/string.hlinux/workqueue.hlinux/zlib.hlinux/hashtable.hlinux/qed/qed_if.hqed_debug.hqed_hsi.hqed_dbg_hsi.hqed_mfw_hsi.h
Detected Declarations
struct qed_eth_cb_opsstruct qed_dev_infostruct qed_ptt_poolstruct qed_spqstruct qed_sb_infostruct qed_sb_attn_infostruct qed_cxt_mngrstruct qed_sb_sp_infostruct qed_ll2_infostruct qed_mcp_infostruct qed_llh_infostruct qed_rt_datastruct qed_tunn_update_typestruct qed_tunn_update_udp_portstruct qed_tunnel_infostruct qed_tunn_start_paramsstruct qed_tunn_update_paramsstruct qed_qm_iidsstruct qed_hw_infostruct qed_dmae_infostruct qed_wfq_datastruct qed_qm_infostruct qed_db_recovery_infostruct storm_statsstruct qed_storm_statsstruct qed_fw_datastruct qed_ufp_infostruct qed_nvm_image_infostruct qed_simd_fp_handlerstruct qed_hwfnstruct pci_paramsstruct qed_int_paramstruct qed_int_paramsstruct qed_dbg_featurestruct qed_devenum qed_coalescing_modeenum qed_nvm_cmdenum qed_mcp_protocol_typeenum qed_mfw_tlv_typeenum qed_tunn_modeenum qed_tunn_clssenum qed_pci_personalityenum qed_resourcesenum QED_FEATUREenum qed_dev_capenum qed_wol_supportenum qed_db_rec_execenum qed_mf_mode_bit
Annotated Snippet
struct qed_rt_data {
u32 *init_val;
bool *b_valid;
};
enum qed_tunn_mode {
QED_MODE_L2GENEVE_TUNN,
QED_MODE_IPGENEVE_TUNN,
QED_MODE_L2GRE_TUNN,
QED_MODE_IPGRE_TUNN,
QED_MODE_VXLAN_TUNN,
};
enum qed_tunn_clss {
QED_TUNN_CLSS_MAC_VLAN,
QED_TUNN_CLSS_MAC_VNI,
QED_TUNN_CLSS_INNER_MAC_VLAN,
QED_TUNN_CLSS_INNER_MAC_VNI,
QED_TUNN_CLSS_MAC_VLAN_DUAL_STAGE,
MAX_QED_TUNN_CLSS,
};
struct qed_tunn_update_type {
bool b_update_mode;
bool b_mode_enabled;
enum qed_tunn_clss tun_cls;
};
struct qed_tunn_update_udp_port {
bool b_update_port;
u16 port;
};
struct qed_tunnel_info {
struct qed_tunn_update_type vxlan;
struct qed_tunn_update_type l2_geneve;
struct qed_tunn_update_type ip_geneve;
struct qed_tunn_update_type l2_gre;
struct qed_tunn_update_type ip_gre;
struct qed_tunn_update_udp_port vxlan_port;
struct qed_tunn_update_udp_port geneve_port;
bool b_update_rx_cls;
bool b_update_tx_cls;
};
struct qed_tunn_start_params {
unsigned long tunn_mode;
u16 vxlan_udp_port;
u16 geneve_udp_port;
u8 update_vxlan_udp_port;
u8 update_geneve_udp_port;
u8 tunn_clss_vxlan;
u8 tunn_clss_l2geneve;
u8 tunn_clss_ipgeneve;
u8 tunn_clss_l2gre;
u8 tunn_clss_ipgre;
};
struct qed_tunn_update_params {
unsigned long tunn_mode_update_mask;
unsigned long tunn_mode;
u16 vxlan_udp_port;
u16 geneve_udp_port;
u8 update_rx_pf_clss;
u8 update_tx_pf_clss;
u8 update_vxlan_udp_port;
u8 update_geneve_udp_port;
u8 tunn_clss_vxlan;
u8 tunn_clss_l2geneve;
u8 tunn_clss_ipgeneve;
u8 tunn_clss_l2gre;
u8 tunn_clss_ipgre;
};
/* The PCI personality is not quite synonymous to protocol ID:
* 1. All personalities need CORE connections
* 2. The Ethernet personality may support also the RoCE/iWARP protocol
*/
enum qed_pci_personality {
QED_PCI_ETH,
QED_PCI_FCOE,
QED_PCI_ISCSI,
QED_PCI_NVMETCP,
QED_PCI_ETH_ROCE,
QED_PCI_ETH_IWARP,
QED_PCI_ETH_RDMA,
QED_PCI_DEFAULT, /* default in shmem */
};
Annotation
- Immediate include surface: `linux/types.h`, `linux/io.h`, `linux/delay.h`, `linux/firmware.h`, `linux/interrupt.h`, `linux/list.h`, `linux/mutex.h`, `linux/pci.h`.
- Detected declarations: `struct qed_eth_cb_ops`, `struct qed_dev_info`, `struct qed_ptt_pool`, `struct qed_spq`, `struct qed_sb_info`, `struct qed_sb_attn_info`, `struct qed_cxt_mngr`, `struct qed_sb_sp_info`, `struct qed_ll2_info`, `struct qed_mcp_info`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.