Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\dma\coherent.c Create Date:2022-07-28 10:33:50
Last Modify:2020-03-17 14:54:14 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__dma_alloc_from_coherent

Proto:static void *__dma_alloc_from_coherent(struct device *dev, struct dma_coherent_mem *mem, ssize_t size, dma_addr_t *dma_handle)

Type:void

Parameter:

TypeParameterName
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  If Value for the false possibility is greater at compile time(size > (size << PAGE_SHIFT determines the page size )) Then Go to 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  If Value for the false possibility is greater at compile time(pageno < 0) Then Go to err
147  dma_handle = dma_get_device_base(dev, mem) + (pageno << PAGE_SHIFT determines the page size )
148  ret = virt_base + (pageno << PAGE_SHIFT determines the page size )
149  spin_unlock_irqrestore( & spinlock, flags)
150  memset(ret, 0, size)
151  Return ret
152  err :
153  spin_unlock_irqrestore( & spinlock, flags)
154  Return NULL
Caller
NameDescribe
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