drivers/infiniband/hw/ionic/ionic_lif_cfg.h

Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/ionic/ionic_lif_cfg.h

File Facts

System
Linux kernel
Corpus path
drivers/infiniband/hw/ionic/ionic_lif_cfg.h
Extension
.h
Size
1333 bytes
Lines
67
Domain
Driver Families
Bucket
drivers/infiniband
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ionic_lif_cfg {
	struct device *hwdev;
	struct ionic_lif *lif;

	int lif_index;
	int lif_hw_index;

	u32 dbid;
	int dbid_count;
	u64 __iomem *dbpage;
	struct ionic_intr __iomem *intr_ctrl;
	phys_addr_t db_phys;

	u64 page_size_supported;
	u32 npts_per_lif;
	u32 nmrs_per_lif;
	u32 nahs_per_lif;

	u32 aq_base;
	u32 cq_base;
	u32 eq_base;

	int aq_count;
	int eq_count;
	int cq_count;
	int qp_count;

	u16 stats_type;
	u8 aq_qtype;
	u8 sq_qtype;
	u8 rq_qtype;
	u8 cq_qtype;
	u8 eq_qtype;

	u8 udma_count;
	u8 udma_qgrp_shift;

	u8 rdma_version;
	u8 qp_opcodes;
	u8 admin_opcodes;

	u8 max_stride;
	bool sq_expdb;
	bool rq_expdb;
	u8 expdb_mask;
};

void ionic_fill_lif_cfg(struct ionic_lif *lif, struct ionic_lif_cfg *cfg);
struct net_device *ionic_lif_netdev(struct ionic_lif *lif);
void ionic_lif_fw_version(struct ionic_lif *lif, char *str, size_t len);
u8 ionic_lif_asic_rev(struct ionic_lif *lif);

#endif /* _IONIC_LIF_CFG_H_ */

Annotation

Implementation Notes