include/linux/mlx4/device.h
Source file repositories/reference/linux-study-clean/include/linux/mlx4/device.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mlx4/device.h- Extension
.h- Size
- 43182 bytes
- Lines
- 1608
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- 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/auxiliary_bus.hlinux/if_ether.hlinux/pci.hlinux/completion.hlinux/radix-tree.hlinux/cpu_rmap.hlinux/crash_dump.hlinux/refcount.hlinux/timecounter.h
Detected Declarations
struct mlx4_rate_limit_capsstruct mlx4_phys_capsstruct mlx4_spec_qpsstruct mlx4_capsstruct mlx4_buf_liststruct mlx4_bufstruct mlx4_mttstruct mlx4_db_pgdirstruct mlx4_ib_user_db_pagestruct mlx4_dbstruct mlx4_hwq_resourcesstruct mlx4_mrstruct mlx4_mwstruct mlx4_uarstruct mlx4_bfstruct mlx4_cqstruct mlx4_qpstruct mlx4_srqstruct mlx4_avstruct mlx4_eth_avstruct mlx4_counterstruct mlx4_quotasstruct mlx4_vf_devstruct mlx4_fw_crdumpstruct mlx4_dev_persistentstruct mlx4_devstruct mlx4_adevstruct mlx4_clock_paramsstruct mlx4_eqestruct mlx4_init_port_paramstruct mlx4_mad_ifcstruct mlx4_spec_ethstruct mlx4_spec_tcp_udpstruct mlx4_spec_ipv4struct mlx4_spec_ibstruct mlx4_spec_vxlanstruct mlx4_spec_liststruct mlx4_net_trans_rulestruct mlx4_net_trans_rule_hw_ctrlstruct mlx4_net_trans_rule_hw_ibstruct mlx4_net_trans_rule_hw_ethstruct mlx4_net_trans_rule_hw_tcp_udpstruct mlx4_net_trans_rule_hw_ipv4struct mlx4_net_trans_rule_hw_vxlanstruct _rule_hwstruct mlx4_active_portsstruct mlx4_slaves_pportstruct mlx4_mpt_entry
Annotated Snippet
struct mlx4_rate_limit_caps {
u16 num_rates; /* Number of different rates */
u8 min_unit;
u16 min_val;
u8 max_unit;
u16 max_val;
};
static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
{
return (major << 32) | (minor << 16) | subminor;
}
struct mlx4_phys_caps {
u32 gid_phys_table_len[MLX4_MAX_PORTS + 1];
u32 pkey_phys_table_len[MLX4_MAX_PORTS + 1];
u32 num_phys_eqs;
u32 base_sqpn;
u32 base_proxy_sqpn;
u32 base_tunnel_sqpn;
};
struct mlx4_spec_qps {
u32 qp0_qkey;
u32 qp0_proxy;
u32 qp0_tunnel;
u32 qp1_proxy;
u32 qp1_tunnel;
};
struct mlx4_caps {
u64 fw_ver;
u32 function;
int num_ports;
int vl_cap[MLX4_MAX_PORTS + 1];
int ib_mtu_cap[MLX4_MAX_PORTS + 1];
__be32 ib_port_def_cap[MLX4_MAX_PORTS + 1];
u64 def_mac[MLX4_MAX_PORTS + 1];
int eth_mtu_cap[MLX4_MAX_PORTS + 1];
int gid_table_len[MLX4_MAX_PORTS + 1];
int pkey_table_len[MLX4_MAX_PORTS + 1];
int trans_type[MLX4_MAX_PORTS + 1];
int vendor_oui[MLX4_MAX_PORTS + 1];
int wavelength[MLX4_MAX_PORTS + 1];
u64 trans_code[MLX4_MAX_PORTS + 1];
int local_ca_ack_delay;
int num_uars;
u32 uar_page_size;
int bf_reg_size;
int bf_regs_per_page;
int max_sq_sg;
int max_rq_sg;
int num_qps;
int max_wqes;
int max_sq_desc_sz;
int max_rq_desc_sz;
int max_qp_init_rdma;
int max_qp_dest_rdma;
int max_tc_eth;
struct mlx4_spec_qps *spec_qps;
int num_srqs;
int max_srq_wqes;
int max_srq_sge;
int reserved_srqs;
int num_cqs;
int max_cqes;
int reserved_cqs;
int num_sys_eqs;
int num_eqs;
int reserved_eqs;
int num_comp_vectors;
int num_mpts;
int num_mtts;
int fmr_reserved_mtts;
int reserved_mtts;
int reserved_mrws;
int reserved_uars;
int num_mgms;
int num_amgms;
int reserved_mcgs;
int num_qp_per_mgm;
int steering_mode;
int dmfs_high_steer_mode;
int fs_log_max_ucast_qp_range_size;
int num_pds;
int reserved_pds;
int max_xrcds;
int reserved_xrcds;
int mtt_entry_sz;
u32 max_msg_sz;
Annotation
- Immediate include surface: `linux/auxiliary_bus.h`, `linux/if_ether.h`, `linux/pci.h`, `linux/completion.h`, `linux/radix-tree.h`, `linux/cpu_rmap.h`, `linux/crash_dump.h`, `linux/refcount.h`.
- Detected declarations: `struct mlx4_rate_limit_caps`, `struct mlx4_phys_caps`, `struct mlx4_spec_qps`, `struct mlx4_caps`, `struct mlx4_buf_list`, `struct mlx4_buf`, `struct mlx4_mtt`, `struct mlx4_db_pgdir`, `struct mlx4_ib_user_db_page`, `struct mlx4_db`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.