voiddma_pool_free(structdma_pool *pool,void*vaddr, dma_addr_t addr); 功能:释放之前分配的DMA缓冲区。 参数: pool:DMA内存池的指针。 vaddr:要释放的DMA缓冲区的虚拟地址。 addr:DMA地址,通常是dma_pool_alloc()返回的地址。 返回值:无。voiddma_pool_destroy(structdma_pool *pool); 功能:销毁之前...
2 *dma_pool_alloc- 从dma poll获得一块一致性内存 3 * @pool: 产生内存块的dma pool 4 * @mem_flags: GFP_* bitmask 5 * @handle: 返回内存块的dma地址 6 */ 7 void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, 8 dma_addr_t *handle) 9 10 /** 11 *dma_pool_free- ...
与dma_alloc_coherent()一样,这将返回两个值:CPU可用的地址和池设备可用的DMA地址。 void dma_pool_free(structdma_pool *pool,void*vaddr, dma_addr_taddr) 将内存放回池中。池是传递给dma_pool_alloc()的内容;CPU(vaddr)和DMA地址是该例程分配的内存被释放时返回的内容。 void dma_pool_destroy(structd...
[ 656.175800] BUG: unable to handle kernel NULL pointer dereference at (null) [ 656.183656] IP: [<ffffffff8880f13b>] dma_pool_alloc+0x1ab/0x280 [ 656.189596] PGD 0 [ 656.191638] Oops: 0000 [#1] SMP [..] [ 656.307084] CPU: 18 PID: 17160 Comm: kworker/18:2 Kdump: loaded Tainted...
程序清单 2-3 dma_pool_create接口实现 void*dma_pool_create(LW_OBJECT_HANDLE *ulId,void*dev,size_tsize,size_talign,size_tboundary){ PVOID pucDMAPool =NULL; pucDMAPool =API_VmmDmaAllocAlign(size, align);if(pucDMAPool ==NULL) {returnNULL; ...
dma_pool_free(pool, cpu_addr, dma_handle); 其中pool 是您传递给 dma_pool_alloc() 的内容,而 cpu_addr 和 dma_handle 是 dma_pool_alloc() 返回的值。该函数可以在中断上下文中调用。通过调用来销毁 dma_pool: dma_pool_destroy(pool);
dma_pool_create(const char *name, struct device *dev, size_t size, size_t align, size_t alloc); create( )函数为设备初始化DMA一致性内存的内存池。它必须要在可睡眠上下文调用。 name为内存池的名字(就像struct kmem_cache name一样)。dev及size就如dma_alloc_coherent()参数一样。align为设备硬件需...
void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, dma_addr_t *handle) { unsigned long flags; struct dma_page *page; size_t offset; void *retval; might_sleep_if(gfpflags_allow_blocking(mem_flags)); spin_lock_irqsave(&pool->lock, flags); list_for_each_entry(page, &...
dma_alloc_coherent分配一片DMA一致性的内存区域 dma_free_coherent释放一片DMA一致性内存 dma_pool_create创建一片DMA内存池 dma_pool_alloc从DMA内存池中分配一块DMA内存 dma_pool_free释放DMA内存到DMA内存池中 dma_pool_destroy销毁DMA内存池 2.1 一致性内存相关接口介绍及替换 ...
dma_pool_free(pool,cpu_addr,dma_handle); 其中pool 是传递给 dma_pool_alloc() 的内容,cpu_addr 和 dma_handle 是 dma_pool_alloc() 返回的值。 该函数可以在中断上下文中调用 销毁dma_pool: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...