scmi_rx_callback(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– scmi_rx_callback(9) β€” bestie's guide to the receive callback πŸ’–

okay so we're in the Kernel API Manual today, and this page is literally all about scmi_rx_callback β€” the callback for receiving messages. it's short, it's sweet, it's giving "small function, big responsibilities." let's get into it πŸŽ€


✨ NAME ✨

scmi_rx_callback β€” callback for receiving messages

like, that's it. that's the whole job. it receives messages. icon behavior tbh πŸ‘‘


🌸 SYNOPSIS 🌸

void scmi_rx_callback (struct scmi_chan_info *cinfo , u32 msg_hdr , void
*priv );

three args, no return value (void, she gives nothing back and that's fine, we respect it πŸ’…). the line break in the middle of the synopsis is just how the page renders it β€” the signature is exactly the one above, no cap.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • cinfo β€” the SCMI channel info. this is your channel's whole little identity card, and yes she matters πŸ’–
  • msg_hdr β€” the message header. it's a u32 and it's literally the header of the message being received. that's the vibe.
  • priv β€” transport specific private data. every transport gets to shove its own little bag of secrets in here, and we do not ask questions πŸ™ˆ

⭐ DESCRIPTION ⭐

so what does she actually do? she processes one received message β€” just one β€” and routes it to the appropriate transfer information, then signals completion of the transfer. that's the whole glow-up arc: message comes in β†’ finds its transfer β†’ "we're done here, bestie" βœ…

no extra steps, no side quests. one message, one transfer, one completion signal. periodt.


πŸ”₯ NOTE πŸ”₯

bestie. listen. this function will be invoked in IRQ context, so it should be as optimal as possible. like, keep it tight, keep it lean, don't be doing anything extra in here. this is not the place for a little treat. this is the place for speed πŸ’€βš‘

fr fr, interrupt context does not play around, so optimal is the whole assignment.


πŸ‘‘ SEE ALSO πŸ‘‘

the obligatory link dump, and honestly there's so much here β€” the kernel file it lives in plus a whole friend group of structs and functions. all of them, exactly as listed, no skips:

kernel file:

  • ./drivers/firmware/arm_scmi/driver.c

structs:

  • struct scmi_xfers_info(9)
  • struct scmi_protocol_instance(9)
  • struct scmi_info(9)
  • struct scmi_iterator(9)

functions:


and that's the page!! mwah πŸ’‹ this little cutie lives in ./drivers/firmware/arm_scmi, and she was dated October 2026 β€” so mark your calendars, bestie, that's the version you're reading πŸ—“οΈπŸ’– go forth and keep your IRQ handler optimal!! slay 🌈✨

πŸ“¦ where this page comes from