virtqueue_add_outbuf(9)
π virtqueue_add_outbuf(9) β kernel API manual, bestie edition β¨
πΈ NAME πΈ
virtqueue_add_outbuf β expose output buffers to other end, and honestly? iconic.
β¨ SYNOPSIS β¨
int virtqueue_add_outbuf (struct virtqueue *vq , struct scatterlist *sg
, unsigned int num , void *data , gfp_t gfp );
π ARGUMENTS π
vqβ thestruct virtqueuewe're talking about, periodt.sgβ scatterlist (must be well-formed and terminated!), no cap.numβ the number of entries insgreadable by other side.dataβ the token identifying the buffer.gfpβ how to do memory allocations (if necessary).
π DESCRIPTION π
okay so bestie, here's the tea: the caller must ensure we don't call this with other virtqueue operations at the same time (except where noted, iykyk). That's the vibe check.
β οΈ no cap, this is important: don't run this concurrently with other virtqueue ops unless the docs say it's fine.
It returns zero or a negative error (ie. ENOSPC, ENOMEM, EIO). So if you get a negative number, it's giving "no space", "no memory", or "I/O error" energy. π
π¦ SEE ALSO π¦
bestie, peep the kernel file ./drivers/virtio/virtio_ring.c and then these iconic functions:
virtqueue_add_sgs(9)virtqueue_add_outbuf_premapped(9)virtqueue_add_inbuf(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)
signing off from ./drivers/virtio β October 2026, virtqueue_add_outbuf(9) out! πβ¨π«Ά
π¦ 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