virtsnd_pcm_msg_send(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’Œ NAME

virtsnd_pcm_msg_send β€” bestie, this is the one that sends your asynchronous I/O messages ✨

So this page lives in the Kernel API Manual, section 9, and it's literally all about yeeting async I/O messages into the virtqueue πŸŽ€


🌸 SYNOPSIS

int virtsnd_pcm_msg_send (struct virtio_pcm_substream *vss , unsigned
long offset , unsigned long bytes );

That's the whole signature, no cap 🫢


πŸ’… ARGUMENTS

  • vss β€” the VirtIO PCM substream 🎡 like, the whole reason we're here.
  • offset β€” the starting position that has been updated πŸ‘€
  • bytes β€” how many bytes got updated, fr fr.

πŸ”₯ DESCRIPTION

okay so here's the vibe ✨ all the messages are organized in an ordered circular list β€” that part matters, don't forget it πŸŒ€

Every single time you call this function, all the currently non-enqueued messages get added to the virtqueue πŸ’« and to figure out which messages actually need to be added, the function uses offset and bytes. That's the whole trick, iykyk 🀫


🫢 CONTEXT

Any context πŸ’– but listen: it expects the tx/rx queue and the VirtIO substream spinlocks to be held by the caller β€” so like, hold those locks before you call it, bestie, or it's giving chaos πŸ˜­πŸ”’


⭐ RETURN

0 on success, -errno on failure πŸŽ€ iconic behavior honestly.


πŸ‘‘ SEE ALSO


and that's the page!! πŸ’œ this little gem ships out of ./sound/virtio, dated October 2026, and it's filed under virtsnd_pcm_msg_send(9) β€” go forth and enqueue your messages, main character πŸŒˆπŸ¦‹πŸ“

πŸ“¦ where this page comes from