drivers/net/ethernet/huawei/hinic/hinic_hw_wqe.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/huawei/hinic/hinic_hw_wqe.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/huawei/hinic/hinic_hw_wqe.h
Extension
.h
Size
13202 bytes
Lines
431
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 hinic_cmdq_header {
	u32     header_info;
	u32     saved_data;
};

struct hinic_status {
	u32 status_info;
};

struct hinic_ctrl {
	u32 ctrl_info;
};

struct hinic_sge_resp {
	struct hinic_sge        sge;
	u32                     rsvd;
};

struct hinic_cmdq_completion {
	/* HW Format */
	union {
		struct hinic_sge_resp   sge_resp;
		u64                     direct_resp;
	};
};

struct hinic_scmd_bufdesc {
	u32     buf_len;
	u32     rsvd;
	u8      data[HINIC_SCMD_DATA_LEN];
};

struct hinic_lcmd_bufdesc {
	struct hinic_sge        sge;
	u32                     rsvd1;
	u64                     rsvd2;
	u64                     rsvd3;
};

struct hinic_cmdq_wqe_scmd {
	struct hinic_cmdq_header        header;
	u64                             rsvd;
	struct hinic_status             status;
	struct hinic_ctrl               ctrl;
	struct hinic_cmdq_completion    completion;
	struct hinic_scmd_bufdesc       buf_desc;
};

struct hinic_cmdq_wqe_lcmd {
	struct hinic_cmdq_header        header;
	struct hinic_status             status;
	struct hinic_ctrl               ctrl;
	struct hinic_cmdq_completion    completion;
	struct hinic_lcmd_bufdesc       buf_desc;
};

struct hinic_cmdq_direct_wqe {
	struct hinic_cmdq_wqe_scmd      wqe_scmd;
};

struct hinic_cmdq_wqe {
	/* HW Format */
	union {
		struct hinic_cmdq_direct_wqe    direct_wqe;
		struct hinic_cmdq_wqe_lcmd      wqe_lcmd;
	};
};

struct hinic_sq_ctrl {
	u32     ctrl_info;
	u32     queue_info;
};

struct hinic_sq_task {
	u32     pkt_info0;
	u32     pkt_info1;
	u32     pkt_info2;
	u32     ufo_v6_identify;
	u32     pkt_info4;
	u32     zero_pad;
};

struct hinic_sq_bufdesc {
	struct hinic_sge sge;
	u32     rsvd;
};

struct hinic_sq_wqe {
	struct hinic_sq_ctrl            ctrl;
	struct hinic_sq_task            task;

Annotation

Implementation Notes