drivers/net/dsa/yt921x.h

Source file repositories/reference/linux-study-clean/drivers/net/dsa/yt921x.h

File Facts

System
Linux kernel
Corpus path
drivers/net/dsa/yt921x.h
Extension
.h
Size
43730 bytes
Lines
978
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 yt921x_mib {
	u64 rx_broadcast;
	u64 rx_pause;
	u64 rx_multicast;
	u64 rx_crc_errors;

	u64 rx_alignment_errors;
	u64 rx_undersize_errors;
	u64 rx_fragment_errors;
	u64 rx_64byte;

	u64 rx_65_127byte;
	u64 rx_128_255byte;
	u64 rx_256_511byte;
	u64 rx_512_1023byte;

	u64 rx_1024_1518byte;
	u64 rx_jumbo;
	u64 rx_good_bytes;

	u64 rx_bad_bytes;
	u64 rx_oversize_errors;

	u64 rx_dropped;
	u64 tx_broadcast;
	u64 tx_pause;
	u64 tx_multicast;

	u64 tx_undersize_errors;
	u64 tx_64byte;
	u64 tx_65_127byte;
	u64 tx_128_255byte;

	u64 tx_256_511byte;
	u64 tx_512_1023byte;
	u64 tx_1024_1518byte;
	u64 tx_jumbo;

	u64 tx_good_bytes;
	u64 tx_collisions;

	u64 tx_aborted_errors;
	u64 tx_multiple_collisions;
	u64 tx_single_collisions;
	u64 tx_good;

	u64 tx_deferred;
	u64 tx_late_collisions;
	u64 rx_oam;
	u64 tx_oam;
};

struct yt921x_acl_entry {
	u32 key[2];
	u32 mask[2];
};

struct yt921x_acl_rule {
	unsigned long tag;
	enum tc_setup_type type;

	u32 action[3];
	bool sw_assisted;

	u8 mask;
	struct yt921x_acl_entry entries[YT921X_ACL_ENT_PER_BLK];
};

struct yt921x_acl_blk {
	struct yt921x_acl_rule *rules[YT921X_ACL_ENT_PER_BLK];
};

struct yt921x_port {
	unsigned char index;

	bool hairpin;
	bool isolated;

	struct delayed_work mib_read;
	struct yt921x_mib mib;
	u64 rx_frames;
	u64 tx_frames;
};

struct yt921x_reg_ops {
	int (*read)(void *context, u32 reg, u32 *valp);
	int (*write)(void *context, u32 reg, u32 val);
};

struct yt921x_priv {

Annotation

Implementation Notes