virtqueue_add_inbuf(9)
β¨ virtqueue_add_inbuf β¨
okay so this is a Kernel API Manual moment and we're about to expose input buffers to the other end, bestie π
πΈ SYNOPSIS πΈ
int virtqueue_add_inbuf (struct virtqueue *vq , struct scatterlist *sg ,
unsigned int num , void *data , gfp_t gfp );
π ARGUMENTS π
vqβ thestruct virtqueuewe're talking about. literally the main character here πsgβ scatterlist. and bestie, it must be well-formed and terminated! no cap, this is not a drill πnumβ the number of entries insgwritable by other side. count 'em fr frdataβ the token identifying the buffer. it's giving name tag at a party π«Άgfpβ how to do memory allocations (if necessary). y'know, the whole allocation vibe check π
π¦ DESCRIPTION π¦
okay so here's the tea: caller must ensure we don't call this with other virtqueue operations at the same time (except where noted). like, one thing at a time, periodt. don't be messy π
it returns zero or a negative error (ie. ENOSPC, ENOMEM, EIO). so like, zero is slay, negative is π
ngl this is one of those functions you just gotta respect the concurrency rules on. no exceptions bestie β¨
π§ SEE ALSO π§
kernel file ./drivers/virtio/virtio_ring.c and all these iconic siblings:
virtqueue_add_sgs(9)virtqueue_add_outbuf(9)virtqueue_add_outbuf_premapped(9)virtqueue_add_inbuf_cache_clean(9)virtqueue_add_inbuf_ctx(9)virtqueue_add_inbuf_premapped(9)virtqueue_dma_dev(9)virtqueue_kick_prepare(9)virtqueue_notify(9)virtqueue_kick(9)virtqueue_get_buf_ctx(9)virtqueue_disable_cb(9)virtqueue_enable_cb_prepare(9)virtqueue_poll(9)virtqueue_enable_cb(9)virtqueue_enable_cb_delayed(9)virtqueue_detach_unused_buf(9)vring_interrupt(9)virtqueue_resize(9)virtqueue_reset(9)virtqueue_get_vring_size(9)virtqueue_map_alloc_coherent(9)virtqueue_map_free_coherent(9)virtqueue_map_page_attrs(9)virtqueue_unmap_page_attrs(9)virtqueue_map_single_attrs(9)virtqueue_unmap_single_attrs(9)virtqueue_map_mapping_error(9)virtqueue_map_need_sync(9)virtqueue_map_sync_single_range_for_cpu(9)virtqueue_map_sync_single_range_for_device(9)
and that's the whole vibe, bestie π this page came from ./drivers/virtio and it's dated October 2026 β go forth and expose those buffers responsibly, mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms