drivers/net/ethernet/qlogic/qed/qed_cxt.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qed/qed_cxt.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/qlogic/qed/qed_cxt.h
Extension
.h
Size
8521 bytes
Lines
368
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct qed_cxt_info {
	void			*p_cxt;
	u32			iid;
	enum protocol_type	type;
};

#define MAX_TID_BLOCKS                  512
struct qed_tid_mem {
	u32 tid_size;
	u32 num_tids_per_block;
	u32 waste;
	u8 *blocks[MAX_TID_BLOCKS];	/* 4K */
};

/**
 * qed_cxt_get_cid_info(): Returns the context info for a specific cidi.
 *
 * @p_hwfn: HW device data.
 * @p_info: In/out.
 *
 * Return: Int.
 */
int qed_cxt_get_cid_info(struct qed_hwfn *p_hwfn,
			 struct qed_cxt_info *p_info);

/**
 * qed_cxt_get_tid_mem_info(): Returns the tid mem info.
 *
 * @p_hwfn: HW device data.
 * @p_info: in/out.
 *
 * Return: int.
 */
int qed_cxt_get_tid_mem_info(struct qed_hwfn *p_hwfn,
			     struct qed_tid_mem *p_info);

#define QED_CXT_TCP_ULP_TID_SEG	PROTOCOLID_TCP_ULP
#define QED_CXT_ROCE_TID_SEG	PROTOCOLID_ROCE
#define QED_CXT_FCOE_TID_SEG	PROTOCOLID_FCOE
enum qed_cxt_elem_type {
	QED_ELEM_CXT,
	QED_ELEM_SRQ,
	QED_ELEM_TASK,
	QED_ELEM_XRC_SRQ,
};

u32 qed_cxt_get_proto_cid_count(struct qed_hwfn *p_hwfn,
				enum protocol_type type, u32 *vf_cid);

/**
 * qed_cxt_set_pf_params(): Set the PF params for cxt init.
 *
 * @p_hwfn: HW device data.
 * @rdma_tasks: Requested maximum.
 *
 * Return: int.
 */
int qed_cxt_set_pf_params(struct qed_hwfn *p_hwfn, u32 rdma_tasks);

/**
 * qed_cxt_cfg_ilt_compute(): Compute ILT init parameters.
 *
 * @p_hwfn: HW device data.
 * @last_line: Last_line.
 *
 * Return: Int
 */
int qed_cxt_cfg_ilt_compute(struct qed_hwfn *p_hwfn, u32 *last_line);

/**
 * qed_cxt_cfg_ilt_compute_excess(): How many lines can be decreased.
 *
 * @p_hwfn: HW device data.
 * @used_lines: Used lines.
 *
 * Return: Int.
 */
u32 qed_cxt_cfg_ilt_compute_excess(struct qed_hwfn *p_hwfn, u32 used_lines);

/**
 * qed_cxt_mngr_alloc(): Allocate and init the context manager struct.
 *
 * @p_hwfn: HW device data.
 *
 * Return: Int.
 */
int qed_cxt_mngr_alloc(struct qed_hwfn *p_hwfn);

/**
 * qed_cxt_mngr_free() - Context manager free.

Annotation

Implementation Notes