Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)相关的知识,希望对你有一定的参考价值。

    前面解释了使用dma_buf所涉及的几个重要的结构体以及导出器的示例,我们再来介绍下导入器具体示例。

mock_dmabuf_imp.c示例

#include <linux/device.h>
#include <linux/dma-buf.h>
#include <linux/module.h>
#include <linux/slab.h>

extern struct dma_buf *dmabuf_of_exporter;

static int mock_importer(struct dma_buf *dmabuf)

    struct dma_buf_attachment *attachment;
    struct sg_table *table;
    struct device *dev;

    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
    dev_set_name(dev, "bill");

    attachment = dma_buf_attach(dmabuf, dev);//模拟一个importer,并附加设备到dma_buf缓冲区上,返回的attachment(dma_buf_attachment )中保存着附加信息。
    table = dma_buf_map_attachment(attachment, DMA_BIDIRECTIONAL);//映射附件(dma_buf_attachment )࿰

以上是关于Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 三)

Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)

Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)

Linux内存从0到1学习笔记(8.12 dma-buf导出器和导入器使用示例 四)

Linux内存从0到1学习笔记(8.13 dma内存调试一)

Linux内存从0到1学习笔记(8.13 dma内存调试一)