drivers/net/dsa/microchip/ksz9477.h

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

File Facts

System
Linux kernel
Corpus path
drivers/net/dsa/microchip/ksz9477.h
Extension
.h
Size
3789 bytes
Lines
97
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 ksz9477_acl_entry {
	u8 entry[KSZ9477_ACL_ENTRY_SIZE];
	unsigned long cookie;
	u32 prio;
};

struct ksz9477_acl_entries {
	struct ksz9477_acl_entry entries[KSZ9477_ACL_MAX_ENTRIES];
	int entries_count;
};

struct ksz9477_acl_priv {
	struct ksz9477_acl_entries acles;
};

void ksz9477_acl_remove_entries(struct ksz_device *dev, int port,
				struct ksz9477_acl_entries *acles,
				unsigned long cookie);
int ksz9477_acl_write_list(struct ksz_device *dev, int port);
int ksz9477_sort_acl_entries(struct ksz_device *dev, int port);
void ksz9477_acl_action_rule_cfg(u8 *entry, bool force_prio, u8 prio_val);
void ksz9477_acl_processing_rule_set_action(u8 *entry, u8 action_idx);
void ksz9477_acl_match_process_l2(struct ksz_device *dev, int port,
				  u16 ethtype, u8 *src_mac, u8 *dst_mac,
				  unsigned long cookie, u32 prio);

void ksz9477_phylink_mac_link_up(struct phylink_config *config,
				 struct phy_device *phydev,
				 unsigned int mode,
				 phy_interface_t interface,
				 int speed, int duplex, bool tx_pause,
				 bool rx_pause);

extern const struct ksz_dev_ops ksz9477_dev_ops;
extern const struct phylink_mac_ops ksz9477_phylink_mac_ops;
extern const struct dsa_switch_ops ksz9477_switch_ops;

#endif

Annotation

Implementation Notes