drivers/net/ethernet/meta/fbnic/fbnic_mac.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/meta/fbnic/fbnic_mac.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
Extension
.h
Size
5205 bytes
Lines
150
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 fbnic_mac {
	void (*init_regs)(struct fbnic_dev *fbd);

	int (*get_link_event)(struct fbnic_dev *fbd);
	bool (*get_link)(struct fbnic_dev *fbd, u8 aui, u8 fec);

	void (*prepare)(struct fbnic_dev *fbd, u8 aui, u8 fec);

	void (*get_fec_stats)(struct fbnic_dev *fbd, bool reset,
			      struct fbnic_fec_stats *fec_stats);
	void (*get_pcs_stats)(struct fbnic_dev *fbd, bool reset,
			      struct fbnic_pcs_stats *pcs_stats);
	void (*get_eth_mac_stats)(struct fbnic_dev *fbd, bool reset,
				  struct fbnic_eth_mac_stats *mac_stats);
	void (*get_pause_stats)(struct fbnic_dev *fbd, bool reset,
				struct fbnic_pause_stats *pause_stats);
	void (*get_eth_ctrl_stats)(struct fbnic_dev *fbd, bool reset,
				   struct fbnic_eth_ctrl_stats *ctrl_stats);
	void (*get_rmon_stats)(struct fbnic_dev *fbd, bool reset,
			       struct fbnic_rmon_stats *rmon_stats);

	void (*link_down)(struct fbnic_dev *fbd);
	void (*link_up)(struct fbnic_dev *fbd, bool tx_pause, bool rx_pause);

	int (*get_sensor)(struct fbnic_dev *fbd, int id, long *val);
};

int fbnic_mac_init(struct fbnic_dev *fbd);
void fbnic_mac_get_fw_settings(struct fbnic_dev *fbd, u8 *aui, u8 *fec);
int fbnic_mac_ps_protect_to_config(struct fbnic_dev *fbd, u16 timeout);
void fbnic_mac_ps_protect_handler(struct fbnic_dev *fbd);
bool fbnic_mac_check_tx_pause(struct fbnic_dev *fbd);
#endif /* _FBNIC_MAC_H_ */

Annotation

Implementation Notes