virtsnd_pcm_msg_complete(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– virtsnd_pcm_msg_complete(9) ๐Ÿ’–

okay bestie, welcome to the Kernel API Manual page for virtsnd_pcm_msg_complete(9). This one is short, lowkey iconic, and very โ€œknow what it does and move on,โ€ so letโ€™s get into it. ๐Ÿซถโœจ

โœจ NAME โœจ

  • virtsnd_pcm_msg_complete โ€” Complete an I/O message. Thatโ€™s the whole assignment, and it ate. ๐Ÿ’…

๐ŸŒธ SYNOPSIS ๐ŸŒธ

void virtsnd_pcm_msg_complete (struct virtio_pcm_msg *msg , size_t
       written_bytes );

๐ŸŽ€ ARGUMENTS ๐ŸŽ€

  • msg โ€” the I/O message. like, the message in question, bestie. ๐Ÿ’Œ
  • written_bytes โ€” the number of bytes written to the message. no cap. ๐Ÿ”ข

๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

okay so completion of the message means the elapsed period. Thatโ€™s the literal vibe. If transmission is allowed, then each completed message is immediately placed back at the end of the queue. Immediately. Back of the queue. not me being obsessed with queue behavior, but here we are. ๐Ÿ”ฅ

For the playback substream, written_bytes is equal to sizeof(msg->status). periodt. ๐ŸŽง

For the capture substream, written_bytes is equal to sizeof(msg->status) plus the number of captured bytes. Thatโ€™s the math, and itโ€™s giving exact. ๐Ÿงฎโœจ

๐Ÿšจ CONTEXT ๐Ÿšจ

๐Ÿšจ Interrupt context alert ๐Ÿšจ โ€” this runs in interrupt context. It takes and releases the VirtIO substream spinlock. So like, respect the context, bestie. ๐Ÿ’…

๐Ÿ”— SEE ALSO ๐Ÿ”—

okay bestie, go read these too โ€” theyโ€™re all part of the same little kernel friend group:

mwah ๐Ÿ’‹ โ€” source/version: ./sound/virtio, date: October 2026, page: virtsnd_pcm_msg_complete(9). byeee ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from