virtqueue_map_single_attrs(9)
β¨ virtqueue_map_single_attrs β¨
okay so bestie, welcome to the virtqueue_map_single_attrs(9) page from the Kernel API Manual π
this is the one about mapping DMA for _vq and honestly? kind of iconic of it.
πΈ NAME πΈ
virtqueue_map_single_attrs β map DMA for _vq π¦
π SYNOPSIS π
dma_addr_t virtqueue_map_single_attrs (const struct virtqueue *_vq ,
void *ptr , size_t size , enum dma_data_direction dir , unsigned long
attrs );
π ARGUMENTS π
_vqβ thestruct virtqueuewe're talking about. like, the vq in question, the main character πptrβ the pointer of the buffer to do dma π«Άsizeβ the size of the buffer to do dma. yes, it matters, don't skip it πdirβ DMA direction π§attrsβ DMA Attrs β¨
π₯ DESCRIPTION π₯
So the caller calls this to do dma mapping in advance. that's the whole vibe. the DMA address can then be passed to this _vq when it is in pre-mapped mode. periodt π
It returns the mapped address. and bestie, the caller should check that by virtqueue_map_mapping_error β do not just assume it worked, that's not the move π
π¦ SEE ALSO π¦
Kernel file ./drivers/virtio/virtio_ring.c, plus the whole friend group π
virtqueue_add_sgs(9)virtqueue_add_outbuf(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_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)
aaaand that's the page!! π brought to you by the fine folks over at source ./drivers/virtio, dated October 2026, and yes she's literally called virtqueue_map_single_attrs(9) β iykyk π go map some DMA, bestie, you got this πβ¨
π¦ 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