Function report | 
Source Code:mm\vmalloc.c | 
Create Date:2022-07-28 15:00:17 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:__vmalloc_area_node
Proto:static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask, pgprot_t prot, int node)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct vm_struct * | area | |
| gfp_t | gfp_mask | |
| pgprot_t | prot | |
| int | node | 
| 2454 | highmem_mask = If gfp_mask & (GFP_DMA | GFP_DMA32) Then 0 Else __GFP_HIGHMEM | 
| 2459 | array_size = nr_pages * size of * | 
| 2462 | If array_size > PAGE_SIZE Then | 
| 2463 | pages = __vmalloc_node(array_size, 1, nested_gfp | highmem_mask, PAGE_KERNEL, node, caller) | 
| 2465 | Else | 
| 2466 | pages = kmalloc_node(array_size, nested_gfp, node) | 
| 2469 | If Not pages Then | 
| 2472 | Return NULL | 
| 2481 | If node == NUMA_NO_NODE Then page = alloc_page(alloc_mask | highmem_mask) | 
| 2483 | Else 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. | 
| 2486 | If Value for the false possibility is greater at compile time(!page) Then | 
| 2493 | If gfpflags_allow_blocking(gfp_mask) Then cond_resched() | 
| 2496 | atomic_long_add(nr_pages, & nr_vmalloc_pages) | 
| 2498 | If map_vm_area(area, prot, pages) Then Go to fail | 
| 2500 | Return addr | 
| 2502 | fail : | 
| 2503 | warn_alloc(gfp_mask, NULL, "vmalloc: allocation failure, allocated %ld of %ld bytes", (nr_pages * PAGE_SIZE), size) | 
| 2507 | Return NULL | 
| Name | Describe | 
|---|---|
| __vmalloc_node_range | __vmalloc_node_range - allocate virtually contiguous memory*@size: allocation size*@align: desired alignment*@start: vm area range start*@end: vm area range end*@gfp_mask: flags for the page level allocator*@prot: protection mask for the allocated 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  |