该函数用于将一个DMA缓冲区(dma_buf)映射到一个设备(device)上,以便设备可以直接访问该缓冲区。 下面是dma_buf_map_attachment函数的一般用法: c struct dma_buf_attachment *attachment; struct sg_table *sgt; int ret; /* 创建DMA缓冲区附件 */ attachment = dma_buf_attach(dmabuf, device); if (IS_...
将importer device与dma buf关联起来的结构,dma_buf_attach中将dma_buf与device关联起来返回dma_buf_attachment。 struct dma_buf_attachment { struct dma_buf *dmabuf; struct device *dev; struct list_head node; struct sg_table *sgt; // vaddr 对应sglist enum dma_data_direction dir; void *priv; /...
dma_buf_unmap_attachment(struct dma_buf_attachment *, struct sg_table *); 该函数是dma_buf->ops->unmap_dma_buf()的封装,对使用该接口的对象隐藏"dma_buf->ops->"。 在dma_buf_ops结构中,unmap_dma_buf定义成 void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *); unmap_...
要解决这个问题,我们首先需要确认dma_buf_unmap_attachment函数所属的命名空间,并检查代码中是否有正确导入该命名空间。 1. 确认dma_buf_unmap_attachment函数所属的命名空间 根据提供的参考信息,dma_buf_unmap_attachment函数是dma_buf模块的一部分,它定义在内核的头文件dma_buf.h中。因此,该函数属于dma_buf命名空间...
dma-buf 由浅入深(三) —— map attachment dma-buf 由浅入深(四) —— mmap dma-buf 由浅入深(五) —— File dma-buf 由浅入深(六) —— begin / end cpu_access dma-buf 由浅入深(七) —— alloc page 版本 dma-buf 由浅入深(八) —— ION 简化版 ...
需要一种机制来访问组成该缓冲区的scatterlist,以便将其映射到自己的地址空间中,以便访问相同的内存区域。这个接口由struct dma_buf_attachment提供。 dma-buf缓冲区共享框架的任何导出者或用户必须在各自的Kconfigs中具有“select DMA_SHARED_BUFFER”。 用户空间接口注意事项 ...
dma_buf.h中的dma_buf_attach()API时,实际最终调用的就是 我们实现的ops中的int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *)方法;调用dma_buf_map_attachment() API 实际就是调用ops中的struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enmu dma_...
mutex_unlock(&client->lock);dma_buf_put(dmabuf);returnhandle; } 开发者ID:fulmix,项目名称:fulmix.Kernel,代码行数:35,代码来源:ion.c 示例2: sprd_ion_get_gsp_addr ▲点赞 5▼ intsprd_ion_get_gsp_addr(struct ion_addr_data *data){intret =0;structdma_buf*dmabuf;struction_buffer*buffer...
dma_buf_attachment可以理解为是消费者对象。struct dma_buf_attachment { struct dma_buf *dmabuf;struct device *dev;struct list_head node;void *priv;};其中 dmabuf为该消费者附着的共享缓冲区 dev为设备信息 node为连接其他消费者的节点 priv为消费者私有数据 这两个数据结构的关系如下所⽰。
dma-buf 由浅入深(三) —— map attachment dma-buf 由浅入深(四) —— mmap dma-buf 由浅入深(五) —— File dma-buf 由浅入深(六) —— begin / end cpu_access dma-buf 由浅入深(七) —— alloc page 版本 dma-buf 由浅入深(八) —— ION 简化版 ...