Lines Matching full:base
50 uint64_t base; member
58 e820_element_alloc(uint64_t base, uint64_t end, enum e820_memory_type type) in e820_element_alloc() argument
67 element->base = base; in e820_element_alloc()
102 element->base, element->end, in e820_dump_table()
143 entry->base = element->base; in e820_get_fwcfg_item()
144 entry->length = element->end - element->base; in e820_get_fwcfg_item()
154 e820_add_entry(const uint64_t base, const uint64_t end, in e820_add_entry() argument
162 assert(end >= base); in e820_add_entry()
164 new_element = e820_element_alloc(base, end, type); in e820_add_entry()
171 * search for a range whose end is larger than the base parameter. in e820_add_entry()
174 if (element->end > base) { in e820_add_entry()
184 * base is larger than of any existing element. Add new system in e820_add_entry()
195 assert(end >= element->base); in e820_add_entry()
211 (base < element->base || end > element->end)) in e820_add_entry()
214 if (base == element->base && end == element->end) { in e820_add_entry()
226 } else if (base == element->base) { in e820_add_entry()
228 * New element at system memory base boundary. Add new in e820_add_entry()
229 * element before current and adjust the base of the old in e820_add_entry()
239 element->base = end; in e820_add_entry()
253 element->end = base; in e820_add_entry()
267 ram_element = e820_element_alloc(element->base, base, in e820_add_entry()
274 element->base = end; in e820_add_entry()
278 * If the previous element has the same type and ends at our base in e820_add_entry()
284 sib_element->end == new_element->base) { in e820_add_entry()
285 new_element->base = sib_element->base; in e820_add_entry()
297 sib_element->base == new_element->end) { in e820_add_entry()
308 e820_add_memory_hole(const uint64_t base, const uint64_t end) in e820_add_memory_hole() argument
313 assert(end >= base); in e820_add_memory_hole()
317 * search for an element which end is larger than the base parameter. in e820_add_memory_hole()
320 if (element->end > base) { in e820_add_memory_hole()
325 if (element == NULL || end <= element->base) { in e820_add_memory_hole()
333 if (base == element->base) { in e820_add_memory_hole()
335 * New hole at system memory base boundary. in e820_add_memory_hole()
342 element->base = end; in e820_add_memory_hole()
352 element->end = base; in e820_add_memory_hole()
363 ram_element = e820_element_alloc(element->base, base, in e820_add_memory_hole()
369 element->base = end; in e820_add_memory_hole()
382 uint64_t address, base, end; in e820_alloc_highest() local
385 base = roundup2(element->base, alignment); in e820_alloc_highest()
392 if (element->type != E820_TYPE_MEMORY || end < base || in e820_alloc_highest()
393 end - base < length || end - length == 0) { in e820_alloc_highest()
416 uint64_t base, end; in e820_alloc_lowest() local
419 base = MAX(min_address, roundup2(element->base, alignment)); in e820_alloc_lowest()
422 * If base == 0, we would allocate memory at address 0. This in e820_alloc_lowest()
426 if (element->type != E820_TYPE_MEMORY || end < base || in e820_alloc_lowest()
427 end - base < length || base == 0) { in e820_alloc_lowest()
431 if (e820_add_entry(base, base + length, type) != 0) { in e820_alloc_lowest()
435 return (base); in e820_alloc_lowest()