Lines Matching refs:e820

37 struct e820map e820;  variable
50 for (i = 0; i < e820.nr_map; i++) { in e820_all_mapped()
51 struct e820entry *ei = &e820.map[i]; in e820_all_mapped()
78 unsigned int x = e820.nr_map; in add_memory_region()
80 if (x == ARRAY_SIZE(e820.map)) { in add_memory_region()
85 e820.map[x].addr = start; in add_memory_region()
86 e820.map[x].size = size; in add_memory_region()
87 e820.map[x].type = type; in add_memory_region()
88 e820.nr_map++; in add_memory_region()
349 for (i = 0; i < e820.nr_map; i++) { in find_max_pfn()
352 if (e820.map[i].type != E820_RAM) in find_max_pfn()
354 start = PFN_UP(e820.map[i].addr); in find_max_pfn()
355 end = PFN_DOWN(e820.map[i].addr + e820.map[i].size); in find_max_pfn()
374 for ( i = 0; i < e820.nr_map; i++ ) in clip_to_limit()
375 if ( (e820.map[i].type == E820_RAM) && in clip_to_limit()
376 ((e820.map[i].addr + e820.map[i].size) > limit) ) in clip_to_limit()
380 if ( i == e820.nr_map ) in clip_to_limit()
384 uint64_t, old_limit, e820.map[i].addr + e820.map[i].size); in clip_to_limit()
387 if ( e820_change_range_type(&e820, max(e820.map[i].addr, limit), in clip_to_limit()
388 e820.map[i].addr + e820.map[i].size, in clip_to_limit()
396 if ( e820.map[i].addr < limit ) in clip_to_limit()
398 e820.map[i].size = limit - e820.map[i].addr; in clip_to_limit()
402 memmove(&e820.map[i], &e820.map[i+1], in clip_to_limit()
403 (e820.nr_map - i - 1) * sizeof(struct e820entry)); in clip_to_limit()
404 e820.nr_map--; in clip_to_limit()
499 reserve_e820_ram(&e820, base, base + len) ) in reserve_dmi_region()
519 for ( i = size = 0; (i < e820.nr_map) && (size <= opt_availmem); i++ ) in machine_specific_memory_setup()
520 if ( e820.map[i].type == E820_RAM ) in machine_specific_memory_setup()
521 size += e820.map[i].size; in machine_specific_memory_setup()
524 e820.map[i-1].addr + e820.map[i-1].size - (size-opt_availmem), in machine_specific_memory_setup()
547 struct e820map *e820, uint64_t s, uint64_t e, uint32_t type) in e820_add_range() argument
551 for ( i = 0; i < e820->nr_map; ++i ) in e820_add_range()
553 uint64_t rs = e820->map[i].addr; in e820_add_range()
554 uint64_t re = rs + e820->map[i].size; in e820_add_range()
556 if ( rs == e && e820->map[i].type == type ) in e820_add_range()
558 e820->map[i].addr = s; in e820_add_range()
562 if ( re == s && e820->map[i].type == type && in e820_add_range()
563 (i + 1 == e820->nr_map || e820->map[i + 1].addr >= e) ) in e820_add_range()
565 e820->map[i].size += e - s; in e820_add_range()
576 if ( e820->nr_map >= ARRAY_SIZE(e820->map) ) in e820_add_range()
583 memmove(e820->map + i + 1, e820->map + i, in e820_add_range()
584 (e820->nr_map - i) * sizeof(*e820->map)); in e820_add_range()
586 e820->nr_map++; in e820_add_range()
587 e820->map[i].addr = s; in e820_add_range()
588 e820->map[i].size = e - s; in e820_add_range()
589 e820->map[i].type = type; in e820_add_range()
595 struct e820map *e820, uint64_t s, uint64_t e, in e820_change_range_type() argument
601 for ( i = 0; i < e820->nr_map; i++ ) in e820_change_range_type()
604 rs = e820->map[i].addr; in e820_change_range_type()
605 re = rs + e820->map[i].size; in e820_change_range_type()
610 if ( (i == e820->nr_map) || (e820->map[i].type != orig_type) ) in e820_change_range_type()
615 e820->map[i].type = new_type; in e820_change_range_type()
619 if ( (e820->nr_map + 1) > ARRAY_SIZE(e820->map) ) in e820_change_range_type()
622 memmove(&e820->map[i+1], &e820->map[i], in e820_change_range_type()
623 (e820->nr_map-i) * sizeof(e820->map[0])); in e820_change_range_type()
624 e820->nr_map++; in e820_change_range_type()
628 e820->map[i].size = e - s; in e820_change_range_type()
629 e820->map[i].type = new_type; in e820_change_range_type()
630 e820->map[i+1].addr = e; in e820_change_range_type()
631 e820->map[i+1].size = re - e; in e820_change_range_type()
635 e820->map[i].size = s - rs; in e820_change_range_type()
636 e820->map[i+1].addr = s; in e820_change_range_type()
637 e820->map[i+1].size = e - s; in e820_change_range_type()
638 e820->map[i+1].type = new_type; in e820_change_range_type()
643 if ( (e820->nr_map + 2) > ARRAY_SIZE(e820->map) ) in e820_change_range_type()
646 memmove(&e820->map[i+2], &e820->map[i], in e820_change_range_type()
647 (e820->nr_map-i) * sizeof(e820->map[0])); in e820_change_range_type()
648 e820->nr_map += 2; in e820_change_range_type()
650 e820->map[i].size = s - rs; in e820_change_range_type()
651 e820->map[i+1].addr = s; in e820_change_range_type()
652 e820->map[i+1].size = e - s; in e820_change_range_type()
653 e820->map[i+1].type = new_type; in e820_change_range_type()
654 e820->map[i+2].addr = e; in e820_change_range_type()
655 e820->map[i+2].size = re - e; in e820_change_range_type()
659 for ( i = 0; i < (e820->nr_map - 1); i++ ) in e820_change_range_type()
661 if ( (e820->map[i].type != e820->map[i+1].type) || in e820_change_range_type()
662 ((e820->map[i].addr + e820->map[i].size) != e820->map[i+1].addr) ) in e820_change_range_type()
664 e820->map[i].size += e820->map[i+1].size; in e820_change_range_type()
665 memmove(&e820->map[i+1], &e820->map[i+2], in e820_change_range_type()
666 (e820->nr_map-i-2) * sizeof(e820->map[0])); in e820_change_range_type()
667 e820->nr_map--; in e820_change_range_type()
680 int __init reserve_e820_ram(struct e820map *e820, uint64_t s, uint64_t e) in reserve_e820_ram() argument
682 return e820_change_range_type(e820, s, e, E820_RAM, E820_RESERVED); in reserve_e820_ram()
696 hypervisor_e820_fixup(&e820); in init_e820()
699 print_e820_memory_map(e820.map, e820.nr_map); in init_e820()