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

Posted 高桐@BILL

tags:

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

    前面解释了使用dma_buf所涉及的几个重要的结构体,今天我们来介绍下dma_buf使用的具体示例。

mock_dmabuf_exp.c示例

   1 #include <linux/dma-buf.h>
  2 #include <linux/module.h>
  3 #include <linux/slab.h>
  4
  5 struct dma_buf *dmabuf_of_exporter;//EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。
  6
  7 EXPORT_SYMBOL(dmabuf_of_exporter);
  8/* mock_dmabuf定义了共享dma_buf对象中,相应的导出器特有的私有数据部分。*/

  9 struct mock_dmabuf
 10     int npages;
 11     struct page *pages[];
 12 ;
 13
 14 static struct mock_dmabuf *to_mock(struct dma_buf *buf)
 15
 16     return buf->priv;
 17
 18
 19 static struct sg_table *mock_map_dma_buf(struct dma_buf_attachment *attachment,
 20                      enum dma_data_direction dir)
 21
 22     pr_info("mock_

以上是关于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内存调试一)