STRUCT EF4_CHANNEL_TYPE(9)
β¨ struct ef4_channel_type(9) β¨
okay so bestie, this is from the Kernel API Manual, and it's literally the page about struct ef4_channel_type β the thing that keeps your traffic channels and your extra channels from getting their vibes mixed up π
πΈ NAME πΈ
struct ef4_channel_type β distinguishes traffic and extra channels π
π¦ SYNOPSIS π¦
struct ef4_channel_type {
void (*handle_no_channel)(struct ef4_nic *);
int (*pre_probe)(struct ef4_channel *);
void (*post_remove)(struct ef4_channel *);
void (*get_name)(struct ef4_channel *, char *buf, size_t len);
struct ef4_channel *(*copy)(const struct ef4_channel *);
bool (*receive_skb)(struct ef4_channel *, struct sk_buff *);
bool keep_eventq;
};
no cap, that's the whole struct β every field, exactly as it lives in the header π«Ά
π Members π
handle_no_channelβ this one handles the failure to allocate an extra channel π like when the allocation just says no and you gotta deal.pre_probeβ sets up extra state prior to initialisation β¨ the pre-game ritual, basically.post_removeβ tears down extra state after finalisation, if it was allocated. careful bestie: it may be called on channels that have not been probed π so don't go assuming setup already happened.get_nameβ generates the channel's name, which is what gets used for its IRQ handler π (writes intochar *bufwithsize_t len, iykyk).copyβ copies the channel state prior to reallocation. it may beNULLif reallocation is not supported π so vibe check before you call it.receive_skbβ handles an skb that's ready to be passed tonetif_receive_skbπ₯keep_eventqβ a flag for whether the event queue should be kept initialised while the device is stopped β
π SEE ALSO π
kernel file ./drivers/net/ethernet/sfc/falcon/net_driver.h, plus the whole friend group:
struct ef4_buffer(9)struct ef4_special_buffer(9)struct ef4_tx_buffer(9)struct ef4_tx_queue(9)struct ef4_rx_buffer(9)struct ef4_rx_page_state(9)struct ef4_rx_queue(9)struct ef4_channel(9)struct ef4_msi_context(9)struct ef4_link_state(9)struct ef4_phy_operations(9)enum ef4_phy_mode(9)struct ef4_hw_stat_desc(9)struct ef4_nic(9)struct ef4_nic_type(9)
π reminder thatpost_removecan land on channels that were never probed, andcopymight beNULLβ those are the two little gremlins to watch for, fr fr.
and that's the page, bestie! π§ sign-off time: this one comes from ./drivers/net/ethernet/sfc/falcon and the date on it is October 2026 β go off, October 2026 πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms