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导出器和导入器使用示例 四)