drivers/net/ethernet/intel/ice/devlink/port.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/ice/devlink/port.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/intel/ice/devlink/port.h
Extension
.h
Size
1854 bytes
Lines
59
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 ice_dynamic_port {
	u8 hw_addr[ETH_ALEN];
	u8 active: 1;
	u8 attached: 1;
	struct devlink_port devlink_port;
	struct ice_pf *pf;
	struct ice_vsi *vsi;
	unsigned long repr_id;
	u32 sfnum;
	/* Flavour-specific implementation data */
	union {
		struct ice_sf_dev *sf_dev;
	};
};

void ice_dealloc_all_dynamic_ports(struct ice_pf *pf);

int ice_devlink_create_pf_port(struct ice_pf *pf);
void ice_devlink_destroy_pf_port(struct ice_pf *pf);
int ice_devlink_create_vf_port(struct ice_vf *vf);
void ice_devlink_destroy_vf_port(struct ice_vf *vf);
int ice_devlink_create_sf_port(struct ice_dynamic_port *dyn_port);
void ice_devlink_destroy_sf_port(struct ice_dynamic_port *dyn_port);
int ice_devlink_create_sf_dev_port(struct ice_sf_dev *sf_dev);
void ice_devlink_destroy_sf_dev_port(struct ice_sf_dev *sf_dev);

#define ice_devlink_port_to_dyn(port) \
	container_of(port, struct ice_dynamic_port, devlink_port)

int
ice_devlink_port_new(struct devlink *devlink,
		     const struct devlink_port_new_attrs *new_attr,
		     struct netlink_ext_ack *extack,
		     struct devlink_port **devlink_port);
#endif /* _DEVLINK_PORT_H_ */

Annotation

Implementation Notes