参照元†
- void *buf_priv
- unsigned long flags
返り値†
static struct dma_buf *vb2_vmalloc_get_dmabuf(void *buf_priv, unsigned long flags)
{
        struct vb2_vmalloc_buf *buf = buf_priv;
        struct dma_buf *dbuf;
        DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
        exp_info.ops = &vb2_vmalloc_dmabuf_ops;
        exp_info.size = buf->size;
        exp_info.flags = flags;
        exp_info.priv = buf;
        if (WARN_ON(!buf->vaddr))
                return NULL;
        dbuf = dma_buf_export(&exp_info);
        if (IS_ERR(dbuf))
                return NULL;
        /* dmabuf keeps reference to vb2 buffer */
        atomic_inc(&buf->refcount);
        return dbuf;
}
コメント†