gpt4 book ai didi

linux-kernel - 如何从 cdev 获取设备

转载 作者:行者123 更新时间:2023-12-03 17:42:03 24 4
gpt4 key购买 nike

我正在编写一个内核模块,它将分配一些一致的内存并返回相应的虚拟地址和物理地址。

我将模块注册为 cdev , 用 dma_alloc_coherent() 分配空间我想使用 dma_common_mmap() 映射它.
dma_common_mmap()需要指向 struct device 的指针: 我怎么能得到它?

最佳答案

void *dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, int flag);

该函数处理缓冲区的分配和映射。前两个参数是设备结构和所需缓冲区的大小。
该函数在两个地方返回 DMA 映射的结果。该函数的返回值是缓冲区的内核虚拟地址,驱动程序可以使用该地址。
同时,相关的总线地址在 dma_handle 中返回。

关于linux-kernel - 如何从 cdev 获取设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com