• Home
  • Raw
  • Download

Lines Matching refs:type

69 memblock_type_name(struct memblock_type *type)  in memblock_type_name()  argument
71 if (type == &memblock.memory) in memblock_type_name()
73 else if (type == &memblock.reserved) in memblock_type_name()
94 bool __init_memblock memblock_overlaps_region(struct memblock_type *type, in memblock_overlaps_region() argument
99 for (i = 0; i < type->cnt; i++) in memblock_overlaps_region()
100 if (memblock_addrs_overlap(base, size, type->regions[i].base, in memblock_overlaps_region()
101 type->regions[i].size)) in memblock_overlaps_region()
103 return i < type->cnt; in memblock_overlaps_region()
281 static void __init_memblock memblock_remove_region(struct memblock_type *type, unsigned long r) in memblock_remove_region() argument
283 type->total_size -= type->regions[r].size; in memblock_remove_region()
284 memmove(&type->regions[r], &type->regions[r + 1], in memblock_remove_region()
285 (type->cnt - (r + 1)) * sizeof(type->regions[r])); in memblock_remove_region()
286 type->cnt--; in memblock_remove_region()
289 if (type->cnt == 0) { in memblock_remove_region()
290 WARN_ON(type->total_size != 0); in memblock_remove_region()
291 type->cnt = 1; in memblock_remove_region()
292 type->regions[0].base = 0; in memblock_remove_region()
293 type->regions[0].size = 0; in memblock_remove_region()
294 type->regions[0].flags = 0; in memblock_remove_region()
295 memblock_set_region_node(&type->regions[0], MAX_NUMNODES); in memblock_remove_region()
338 static int __init_memblock memblock_double_array(struct memblock_type *type, in memblock_double_array() argument
355 old_size = type->max * sizeof(struct memblock_region); in memblock_double_array()
365 if (type == &memblock.memory) in memblock_double_array()
386 if (type != &memblock.reserved) in memblock_double_array()
401 memblock_type_name(type), type->max, type->max * 2); in memblock_double_array()
406 memblock_type_name(type), type->max * 2, (u64)addr, in memblock_double_array()
414 memcpy(new_array, type->regions, old_size); in memblock_double_array()
415 memset(new_array + type->max, 0, old_size); in memblock_double_array()
416 old_array = type->regions; in memblock_double_array()
417 type->regions = new_array; in memblock_double_array()
418 type->max <<= 1; in memblock_double_array()
446 static void __init_memblock memblock_merge_regions(struct memblock_type *type) in memblock_merge_regions() argument
451 while (i < type->cnt - 1) { in memblock_merge_regions()
452 struct memblock_region *this = &type->regions[i]; in memblock_merge_regions()
453 struct memblock_region *next = &type->regions[i + 1]; in memblock_merge_regions()
466 memmove(next, next + 1, (type->cnt - (i + 2)) * sizeof(*next)); in memblock_merge_regions()
467 type->cnt--; in memblock_merge_regions()
483 static void __init_memblock memblock_insert_region(struct memblock_type *type, in memblock_insert_region() argument
488 struct memblock_region *rgn = &type->regions[idx]; in memblock_insert_region()
490 BUG_ON(type->cnt >= type->max); in memblock_insert_region()
491 memmove(rgn + 1, rgn, (type->cnt - idx) * sizeof(*rgn)); in memblock_insert_region()
496 type->cnt++; in memblock_insert_region()
497 type->total_size += size; in memblock_insert_region()
516 int __init_memblock memblock_add_range(struct memblock_type *type, in memblock_add_range() argument
530 if (type->regions[0].size == 0) { in memblock_add_range()
531 WARN_ON(type->cnt != 1 || type->total_size); in memblock_add_range()
532 type->regions[0].base = base; in memblock_add_range()
533 type->regions[0].size = size; in memblock_add_range()
534 type->regions[0].flags = flags; in memblock_add_range()
535 memblock_set_region_node(&type->regions[0], nid); in memblock_add_range()
536 type->total_size = size; in memblock_add_range()
548 for_each_memblock_type(type, rgn) { in memblock_add_range()
567 memblock_insert_region(type, idx++, base, in memblock_add_range()
579 memblock_insert_region(type, idx, base, end - base, in memblock_add_range()
591 while (type->cnt + nr_new > type->max) in memblock_add_range()
592 if (memblock_double_array(type, obase, size) < 0) in memblock_add_range()
597 memblock_merge_regions(type); in memblock_add_range()
634 static int __init_memblock memblock_isolate_range(struct memblock_type *type, in memblock_isolate_range() argument
648 while (type->cnt + 2 > type->max) in memblock_isolate_range()
649 if (memblock_double_array(type, base, size) < 0) in memblock_isolate_range()
652 for_each_memblock_type(type, rgn) { in memblock_isolate_range()
668 type->total_size -= base - rbase; in memblock_isolate_range()
669 memblock_insert_region(type, idx, rbase, base - rbase, in memblock_isolate_range()
679 type->total_size -= end - rbase; in memblock_isolate_range()
680 memblock_insert_region(type, idx--, rbase, end - rbase, in memblock_isolate_range()
694 static int __init_memblock memblock_remove_range(struct memblock_type *type, in memblock_remove_range() argument
700 ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn); in memblock_remove_range()
705 memblock_remove_region(type, i); in memblock_remove_range()
745 struct memblock_type *type = &memblock.memory; in memblock_setclr_flag() local
748 ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn); in memblock_setclr_flag()
754 memblock_set_region_flags(&type->regions[i], flag); in memblock_setclr_flag()
756 memblock_clear_region_flags(&type->regions[i], flag); in memblock_setclr_flag()
758 memblock_merge_regions(type); in memblock_setclr_flag()
824 struct memblock_type *type = &memblock.reserved; in __next_reserved_mem_region() local
826 if (*idx < type->cnt) { in __next_reserved_mem_region()
827 struct memblock_region *r = &type->regions[*idx]; in __next_reserved_mem_region()
1080 struct memblock_type *type = &memblock.memory; in __next_mem_pfn_range() local
1083 while (++*idx < type->cnt) { in __next_mem_pfn_range()
1084 r = &type->regions[*idx]; in __next_mem_pfn_range()
1091 if (*idx >= type->cnt) { in __next_mem_pfn_range()
1118 struct memblock_type *type, int nid) in memblock_set_node() argument
1123 ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn); in memblock_set_node()
1128 memblock_set_region_node(&type->regions[i], nid); in memblock_set_node()
1130 memblock_merge_regions(type); in memblock_set_node()
1515 struct memblock_type *type = &memblock.memory; in memblock_mem_limit_remove_map() local
1528 ret = memblock_isolate_range(type, max_addr, (phys_addr_t)ULLONG_MAX, in memblock_mem_limit_remove_map()
1535 if (!memblock_is_nomap(&type->regions[i])) in memblock_mem_limit_remove_map()
1536 memblock_remove_region(type, i); in memblock_mem_limit_remove_map()
1543 static int __init_memblock memblock_search(struct memblock_type *type, phys_addr_t addr) in memblock_search() argument
1545 unsigned int left = 0, right = type->cnt; in memblock_search()
1550 if (addr < type->regions[mid].base) in memblock_search()
1552 else if (addr >= (type->regions[mid].base + in memblock_search()
1553 type->regions[mid].size)) in memblock_search()
1584 struct memblock_type *type = &memblock.memory; in memblock_search_pfn_nid() local
1585 int mid = memblock_search(type, PFN_PHYS(pfn)); in memblock_search_pfn_nid()
1590 *start_pfn = PFN_DOWN(type->regions[mid].base); in memblock_search_pfn_nid()
1591 *end_pfn = PFN_DOWN(type->regions[mid].base + type->regions[mid].size); in memblock_search_pfn_nid()
1593 return type->regions[mid].nid; in memblock_search_pfn_nid()
1670 static void __init_memblock memblock_dump(struct memblock_type *type, char *name) in memblock_dump() argument
1677 pr_info(" %s.cnt = 0x%lx\n", name, type->cnt); in memblock_dump()
1679 for_each_memblock_type(type, rgn) { in memblock_dump()
1746 struct memblock_type *type = m->private; in memblock_debug_show() local
1750 for (i = 0; i < type->cnt; i++) { in memblock_debug_show()
1751 reg = &type->regions[i]; in memblock_debug_show()