函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\dma\coherent.c Create Date:2022-07-27 11:33:40
Last Modify:2020-03-17 14:54:14 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__dma_alloc_from_coherent

函数原型:static void *__dma_alloc_from_coherent(struct device *dev, struct dma_coherent_mem *mem, ssize_t size, dma_addr_t *dma_handle)

返回类型:void

参数:

类型参数名称
struct device *dev
struct dma_coherent_mem *mem
ssize_tsize
dma_addr_t *dma_handle
130  order等于get_order - Determine the allocation order of a memory size*@size: The size for which to get the order* Determine the allocation order of a particular sized block of memory
135  spin_lock_irqsave( & spinlock, flags)
137  如果此条件成立可能性小(为编译器优化)(size > (size << PAGE_SHIFT determines the page size ))则转到:err
140  pageno等于map_find_free_region - find a contiguous aligned mem region*@bitmap: array of unsigned longs corresponding to the bitmap*@bits: number of bits in the bitmap*@order: region size (log base 2 of number of bits) to find* Find a region of free (zero) bits in a
141  如果此条件成立可能性小(为编译器优化)(pageno < 0)则转到:err
147  dma_handle等于dma_get_device_base(dev, mem)加pageno左移PAGE_SHIFT determines the page size 位的值
148  ret等于virt_basepageno左移PAGE_SHIFT determines the page size 位的值
149  spin_unlock_irqrestore( & spinlock, flags)
150  memset(ret, 0, size)
151  返回:ret
152  err :
153  spin_unlock_irqrestore( & spinlock, flags)
154  返回:NULL
调用者
名称描述
dma_alloc_from_dev_coherentdma_alloc_from_dev_coherent() - allocate memory from device coherent pool*@dev: device from which we allocate memory*@size: size of requested memory area*@dma_handle: This will be filled with the correct dma handle*@ret: This pointer will be filled with
dma_alloc_from_global_coherent