drivers/net/ethernet/alibaba/eea/eea_net.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/alibaba/eea/eea_net.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/alibaba/eea/eea_net.h
Extension
.h
Size
3339 bytes
Lines
199
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 eea_net_tx {
	struct eea_net *enet;

	struct eea_ring *ering;

	struct eea_tx_meta *meta;
	struct eea_tx_meta *free;

	struct device *dma_dev;

	u32 index;

	char name[16];

	struct eea_tx_stats stats;
};

struct eea_rx_meta {
	struct eea_rx_meta *next;

	struct page *page;
	dma_addr_t dma;
	u32 offset;
	u32 sync_for_cpu;
	u32 frags;

	struct page *hdr_page;
	void *hdr_addr;
	dma_addr_t hdr_dma;

	u32 id;

	u32 truesize;
	u32 headroom;
	u32 tailroom;

	u32 len;

	bool in_use;
};

struct eea_net_rx_pkt_ctx {
	u16 idx;

	bool data_valid;
	bool do_drop;

	u32 recv_len;
	struct sk_buff *head_skb;
};

struct eea_net_rx {
	struct eea_net *enet;

	struct eea_ring *ering;

	struct eea_rx_meta *meta;
	struct eea_rx_meta *free;

	struct device *dma_dev;

	u32 index;

	u32 flags;

	u32 headroom;

	struct napi_struct *napi;

	struct eea_rx_stats stats;

	char name[16];

	struct eea_net_rx_pkt_ctx pkt;

	struct page_pool *pp;
};

struct eea_net_cfg {
	u32 rx_ring_depth;
	u32 tx_ring_depth;
	u32 rx_ring_num;
	u32 tx_ring_num;

	u8 rx_sq_desc_size;
	u8 rx_cq_desc_size;
	u8 tx_sq_desc_size;
	u8 tx_cq_desc_size;

	u32 split_hdr;

Annotation

Implementation Notes