xcan_start_xmit(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… xcan_start_xmit(9) β€” the Kernel API Manual glow-up

okay so bestie, welcome to xcan_start_xmit, section 9 of the Kernel API Manual (yes the whole manual name, we're being official today πŸŽ€). This is the lil function that gets your CAN frames out the door. Let's go ✨


🌸 NAME 🌸

xcan_start_xmit β€” literally just starts the transmission. that's it. that's the whole job. iconic brevity πŸ’…


✨ SYNOPSIS ✨

netdev_tx_t xcan_start_xmit (struct sk_buff *skb , struct net_device
       *ndev );

two args, one return, zero drama (mostly). keep scrolling for the deets 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • skb β€” the sk_buff pointer holding the data that's about to get Txed. this is the actual payload bestie, the whole reason we're here πŸ’Œ
  • ndev β€” pointer to the net_device structure. your network device's whole personality lives in there 🌈

πŸ¦‹ DESCRIPTION πŸ¦‹

so this function gets invoked from the upper layers to initiate transmission. like, the layers above are basically tapping xcan_start_xmit on the shoulder going "hey. hey bestie. send this." and it's on. no cap, that's the entire vibe check πŸ”₯


πŸ‘‘ RETURN πŸ‘‘

  • NETDEV_TX_OK β€” success slay πŸ’–
  • NETDEV_TX_BUSY β€” the tx queue is full 😭 come back later
fr fr keep an eye on that NETDEV_TX_BUSY, it means "not right now" not "never" β€” the queue's just crowded 🫢

⭐ SEE ALSO ⭐

the whole friend group 🧚, all hanging out in the kernel file ./drivers/net/can/xilinx_can.c:


okay that's the whole page bestie, go forth and transmit πŸš€

sign-off szn: this page lives under ./drivers/net/can and it's stamped October 2026. iykyk πŸ’œπŸŽ€πŸ’…

πŸ“¦ where this page comes from