![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <assert.h>
#include <stdlib.h>
#include <commonlib/helpers.h>
#include <console/console.h>
#include <memrange.h>
Go to the source code of this file.
Data Structures | |
struct | collect_context |
Typedefs | |
typedef void(* | range_action_t) (struct memranges *ranges, resource_t begin, resource_t end, unsigned long tag) |
typedef void(* range_action_t) (struct memranges *ranges, resource_t begin, resource_t end, unsigned long tag) |
Definition at line 207 of file memrange.c.
|
static |
Definition at line 31 of file memrange.c.
References ENV_PAYLOAD_LOADER, memranges::free_list, malloc(), NULL, and range_entry_unlink().
Referenced by range_list_add().
Definition at line 248 of file memrange.c.
References resource::base, collect_context::filter, memranges_insert(), NULL, collect_context::ranges, resource::size, and collect_context::tag.
Referenced by memranges_add_resources_filter().
|
static |
Definition at line 211 of file memrange.c.
References memranges::align, ALIGN_DOWN, ALIGN_UP, base, and POWER_OF_2.
Referenced by memranges_create_hole(), and memranges_insert().
void memranges_add_resources | ( | struct memranges * | ranges, |
unsigned long | mask, | ||
unsigned long | match, | ||
unsigned long | tag | ||
) |
Definition at line 276 of file memrange.c.
References mask, memranges_add_resources_filter(), NULL, collect_context::ranges, and collect_context::tag.
Referenced by bootmem_init(), get_physical_address_space(), and memranges_init_with_alignment().
void memranges_add_resources_filter | ( | struct memranges * | ranges, |
unsigned long | mask, | ||
unsigned long | match, | ||
unsigned long | tag, | ||
memrange_filter_t | filter | ||
) |
Definition at line 259 of file memrange.c.
References collect_ranges(), collect_context::filter, IORESOURCE_MEM, mask, collect_context::ranges, search_global_resources(), and collect_context::tag.
Referenced by get_physical_address_space(), and memranges_add_resources().
Definition at line 306 of file memrange.c.
References memranges::align, range_entry::begin, range_entry::end, memranges::entries, memranges_each_entry, memranges_init_empty_with_alignment(), range_entry::next, NULL, range_list_add(), and range_entry::tag.
Referenced by bootmem_init().
void memranges_create_hole | ( | struct memranges * | ranges, |
resource_t | base, | ||
resource_t | size | ||
) |
Definition at line 230 of file memrange.c.
References base, do_action(), and remove_memranges().
Referenced by constrain_domain_resources(), memranges_steal(), and update_constraints().
void memranges_fill_holes_up_to | ( | struct memranges * | ranges, |
resource_t | limit, | ||
unsigned long | tag | ||
) |
Definition at line 329 of file memrange.c.
References range_entry::begin, range_entry::end, memranges::entries, merge_neighbor_entries(), range_entry::next, NULL, range_entry_end(), range_list_add(), and range_entry::tag.
Referenced by get_physical_address_space().
|
static |
Definition at line 381 of file memrange.c.
References ALIGN_UP, base, range_entry::begin, range_entry::end, memranges_each_entry, NULL, POWER_OF_2, and range_entry::tag.
Referenced by memranges_steal().
void memranges_init_empty_with_alignment | ( | struct memranges * | ranges, |
struct range_entry * | to_free, | ||
size_t | num_free, | ||
unsigned char | align | ||
) |
Definition at line 283 of file memrange.c.
References memranges::align, memranges::entries, memranges::free_list, NULL, range_entry_link(), and collect_context::ranges.
Referenced by initialize_bridge_memranges(), initialize_domain_memranges(), memranges_clone(), and memranges_init_with_alignment().
void memranges_init_with_alignment | ( | struct memranges * | ranges, |
unsigned long | mask, | ||
unsigned long | match, | ||
unsigned long | tag, | ||
unsigned char | align | ||
) |
Definition at line 297 of file memrange.c.
References mask, memranges_add_resources(), memranges_init_empty_with_alignment(), NULL, collect_context::ranges, and collect_context::tag.
void memranges_insert | ( | struct memranges * | ranges, |
resource_t | base, | ||
resource_t | size, | ||
unsigned long | tag | ||
) |
Definition at line 236 of file memrange.c.
References base, do_action(), and merge_add_memranges().
Referenced by bootmem_add_range(), clear_memory(), collect_ranges(), initialize_bridge_memranges(), initialize_domain_io_resource_memranges(), initialize_domain_mem_resource_memranges(), mtrr_use_temp_range(), and walk_memory_table().
struct range_entry* memranges_next_entry | ( | struct memranges * | ranges, |
const struct range_entry * | r | ||
) |
Definition at line 373 of file memrange.c.
References range_entry::next.
Referenced by calc_var_mtrrs_with_hole().
bool memranges_steal | ( | struct memranges * | ranges, |
resource_t | limit, | ||
resource_t | size, | ||
unsigned char | align, | ||
unsigned long | tag, | ||
resource_t * | stolen_base | ||
) |
Definition at line 416 of file memrange.c.
References ALIGN_UP, base, range_entry::begin, memranges_create_hole(), memranges_find_entry(), NULL, POWER_OF_2, and range_entry::tag.
Referenced by allocate_child_resources().
Definition at line 321 of file memrange.c.
References memranges::entries, NULL, and range_entry_unlink_and_free().
Referenced by cleanup_resource_ranges(), clear_memory(), fit_update_memory(), and mtrr_use_temp_range().
void memranges_update_tag | ( | struct memranges * | ranges, |
unsigned long | old_tag, | ||
unsigned long | new_tag | ||
) |
Definition at line 194 of file memrange.c.
References memranges_each_entry, merge_neighbor_entries(), range_entry_tag(), and range_entry_update_tag().
Referenced by calc_var_mtrrs().
|
static |
Definition at line 160 of file memrange.c.
References range_entry::begin, range_entry::end, memranges::entries, merge_neighbor_entries(), range_entry::next, NULL, range_list_add(), remove_memranges(), and range_entry::tag.
Referenced by memranges_insert().
Definition at line 64 of file memrange.c.
References range_entry::begin, range_entry::end, memranges::entries, range_entry::next, NULL, range_entry_unlink_and_free(), and range_entry::tag.
Referenced by memranges_fill_holes_up_to(), memranges_update_tag(), and merge_add_memranges().
|
inlinestatic |
Definition at line 9 of file memrange.c.
References range_entry::next.
Referenced by memranges_init_empty_with_alignment(), range_entry_unlink_and_free(), and range_list_add().
|
inlinestatic |
Definition at line 16 of file memrange.c.
References range_entry::next, and NULL.
Referenced by alloc_range(), and range_entry_unlink_and_free().
|
inlinestatic |
Definition at line 23 of file memrange.c.
References memranges::free_list, range_entry_link(), and range_entry_unlink().
Referenced by memranges_teardown(), merge_neighbor_entries(), and remove_memranges().
|
inlinestatic |
Definition at line 46 of file memrange.c.
References alloc_range(), range_entry::begin, BIOS_ERR, range_entry::end, NULL, printk, range_entry_link(), and range_entry::tag.
Referenced by memranges_clone(), memranges_fill_holes_up_to(), merge_add_memranges(), and remove_memranges().
|
static |
Definition at line 94 of file memrange.c.
References range_entry::begin, range_entry::end, memranges::entries, range_entry::next, NULL, range_entry_unlink_and_free(), range_list_add(), and range_entry::tag.
Referenced by memranges_create_hole(), and merge_add_memranges().