drivers/net/ethernet/intel/ice/ice_eswitch.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/ice/ice_eswitch.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/intel/ice/ice_eswitch.h- Extension
.h- Size
- 2867 bytes
- Lines
- 101
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
net/devlink.hdevlink/port.h
Detected Declarations
function ice_eswitch_detach_vffunction ice_eswitch_attach_sffunction ice_eswitch_stop_all_tx_queuesfunction ice_eswitch_mode_setfunction ice_is_eswitch_mode_switchdevfunction ice_eswitch_port_start_xmitfunction ice_eswitch_get_targetfunction ice_eswitch_cfg_vsifunction ice_eswitch_decfg_vsi
Annotated Snippet
static inline void ice_eswitch_stop_all_tx_queues(struct ice_pf *pf) { }
static inline void
ice_eswitch_set_target_vsi(struct sk_buff *skb,
struct ice_tx_offload_params *off) { }
static inline void
ice_eswitch_update_repr(unsigned long *repr_id, struct ice_vsi *vsi) { }
static inline int ice_eswitch_mode_get(struct devlink *devlink, u16 *mode)
{
return DEVLINK_ESWITCH_MODE_LEGACY;
}
static inline int
ice_eswitch_mode_set(struct devlink *devlink, u16 mode,
struct netlink_ext_ack *extack)
{
return -EOPNOTSUPP;
}
static inline bool ice_is_eswitch_mode_switchdev(struct ice_pf *pf)
{
return false;
}
static inline netdev_tx_t
ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev)
{
return NETDEV_TX_BUSY;
}
static inline struct net_device *
ice_eswitch_get_target(struct ice_rx_ring *rx_ring,
union ice_32b_rx_flex_desc *rx_desc)
{
return rx_ring->netdev;
}
static inline int ice_eswitch_cfg_vsi(struct ice_vsi *vsi, const u8 *mac)
{
return -EOPNOTSUPP;
}
static inline void ice_eswitch_decfg_vsi(struct ice_vsi *vsi, const u8 *mac) { }
#endif /* CONFIG_ICE_SWITCHDEV */
#endif /* _ICE_ESWITCH_H_ */
Annotation
- Immediate include surface: `net/devlink.h`, `devlink/port.h`.
- Detected declarations: `function ice_eswitch_detach_vf`, `function ice_eswitch_attach_sf`, `function ice_eswitch_stop_all_tx_queues`, `function ice_eswitch_mode_set`, `function ice_is_eswitch_mode_switchdev`, `function ice_eswitch_port_start_xmit`, `function ice_eswitch_get_target`, `function ice_eswitch_cfg_vsi`, `function ice_eswitch_decfg_vsi`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.