Function report |
Source Code:kernel\dma\direct.c |
Create Date:2022-07-28 10:33:05 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__dma_direct_alloc_pages
Proto:struct page *__dma_direct_alloc_pages(struct device *dev, size_t size, gfp_t gfp, unsigned long attrs)
Type:struct page
Parameter:
Type | Parameter | Name |
---|---|---|
struct device * | dev | |
size_t | size | |
gfp_t | gfp | |
unsigned long | attrs |
94 | node = dev_to_node(dev) |
102 | gfp &= ~__GFP_ZERO |
103 | gfp |= __dma_direct_optimal_gfp_mask(dev, Like dma_mask, but for alloc_coherent mappings as not all hardware supports 64 bit addresses for consistent allocations such descriptors. , & phys_limit) |
106 | If page && Not dma_coherent_ok(dev, Change "struct page" to physical address.(page), size) Then |
107 | dma_free_contiguous(dev, page, alloc_size) |
108 | page = NULL |
110 | again : |
111 | If Not page Then page = Allocate pages, preferring the node given as nid. When nid == NUMA_NO_NODE,* prefer the current CPU's closest node. Otherwise node must be valid and* online. |
113 | If page && Not dma_coherent_ok(dev, Change "struct page" to physical address.(page), size) Then |
114 | dma_free_contiguous(dev, page, size) |
115 | page = NULL |
117 | If IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_ZONE_DMA32) && phys_limit < DMA_BIT_MASK(64) && Not (gfp & (GFP_DMA32 | GFP_DMA)) Then |
130 | Return page |
Name | Describe |
---|---|
dma_direct_alloc_pages |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |