libie_ctlq_recv(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– libie_ctlq_recv (9) β€” Kernel API Manual πŸ’–

okay so bestie, welcome to the manual page for libie_ctlq_recv(9) from the Kernel API Manual β€” yes it's a real kernel function and yes it's lowkey iconic. it receives control queue messages, and we're gonna go through it together, no cap 🫢


✨ NAME ✨

libie_ctlq_recv β€” receive control queue messages πŸ“¬


🌸 SYNOPSIS 🌸

u32 libie_ctlq_recv (struct libie_ctlq_info *ctlq , struct
libie_ctlq_msg *msg , u32 num_q_msg );

like, that's the whole signature, and it returns a u32, slay πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • ctlq β€” the control queue that needs to be processed for receive. this is your main character, the queue we're pulling messages out of πŸ’–
  • msg β€” an array of received control queue messages on this q. heads up bestie: this needs to be pre-allocated by the caller for as many messages as requested. we're not allocating anything for you, so come prepared πŸ™ˆ
  • num_q_msg β€” the number of messages that can be stored in the msg buffer. quick vibe check: this must be no greater than the number of posted buffers. don't be out here being greedy 🧚

πŸ¦‹ DESCRIPTION πŸ¦‹

so the caller is expected to return buffers via libie_ctlq_release_rx_buf. like, that's the deal, bestie β€” you take the buffers, you give them back 🫢

and this next part is important, so listen up: the caller must make sure that calls to libie_ctlq_post_rx_buffs and libie_ctlq_recv for each queue are either serialized or used under ctlq->lock. no cap, this is a real requirement, not a suggestion πŸ’€


⭐ RETURN ⭐

it returns the number of messages received β€” that's it, that's the whole return value, and honestly? we love a simple, predictable return 🌈


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/net/ethernet/intel/libie/controlq.c

and the whole friend group, in original order, go off besties πŸ‘‘:


πŸ“ friendly reminder before you go: pre-allocate that msg array, respect the buffer count, and please please please serialize your libie_ctlq_post_rx_buffs / libie_ctlq_recv calls or hold ctlq->lock. your future self will thank you πŸ’œ

and that's a wrap, bestie! this page came from ./drivers/net/ethernet/intel/l... (the path got cut off, not by me, i would never 😭) and it's dated October 2026 β€” so go forth, receive those messages, and remember: buffers always come back home 🧚✨ bye-bye! πŸŽ€

πŸ“¦ where this page comes from