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

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

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/huawei/hinic/hinic_tx.h
Extension
.h
Size
1209 bytes
Lines
55
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_txq_stats {
	u64     pkts;
	u64     bytes;
	u64     tx_busy;
	u64     tx_wake;
	u64     tx_dropped;
	u64	big_frags_pkts;

	struct u64_stats_sync   syncp;
};

struct hinic_txq {
	struct net_device       *netdev;
	struct hinic_sq         *sq;

	struct hinic_txq_stats  txq_stats;

	int                     max_sges;
	struct hinic_sge        *sges;
	struct hinic_sge        *free_sges;

	char                    *irq_name;
	struct napi_struct      napi;
};

void hinic_txq_get_stats(struct hinic_txq *txq, struct hinic_txq_stats *stats);

netdev_tx_t hinic_lb_xmit_frame(struct sk_buff *skb, struct net_device *netdev);

netdev_tx_t hinic_xmit_frame(struct sk_buff *skb, struct net_device *netdev);

int hinic_init_txq(struct hinic_txq *txq, struct hinic_sq *sq,
		   struct net_device *netdev);

void hinic_clean_txq(struct hinic_txq *txq);

#endif

Annotation

Implementation Notes