| Function report | 
| Source Code: mm\memblock.c | Create Date:2022-07-28 15:09:52 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:memblock_double_array
Proto:static int __attribute__((__section__(".meminit.text"))) __attribute__((__cold__)) __attribute__((__no_instrument_function__))memblock_double_array(struct memblock_type *type, phys_addr_t new_area_start, phys_addr_t new_area_size)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct memblock_type * | type | |
| phys_addr_t | new_area_start | |
| phys_addr_t | new_area_size | 
| 416 | use_slab = slab_is_available() | 
| 422 | If Not memblock_can_resize Then Return -1 | 
| 426 | old_size = max * sizeof(structmemblock_region) | 
| 436 | If type == memory Then in_slab = memblock_memory_in_slab | 
| 438 | Else in_slab = memblock_reserved_in_slab | 
| 442 | If use_slab Then | 
| 445 | Else | 
| 447 | If type != reserved Then new_area_start = new_area_size = 0 | 
| 450 | addr = memblock_find_in_range(new_area_start + new_area_size, current_limit, new_alloc_size, PAGE_SIZE) | 
| 460 | If Not addr Then | 
| 463 | Return -1 | 
| 475 | No 3D Now!(new_array, regions, old_size) | 
| 479 | max <<= 1 | 
| 484 | Else if old_array != memblock_memory_init_regions && old_array != memblock_reserved_init_regions Then memblock_free(__pa(old_array), old_alloc_size) | 
| 492 | If Not use_slab Then BUG_ON(memblock_reserve(addr, new_alloc_size)) | 
| 498 | Return 0 | 
| Name | Describe | 
|---|---|
| memblock_add_range | |
| memblock_isolate_range | 
| 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 |