|
@@ -61,6 +61,7 @@ extern int memblock_debug;
|
|
|
#ifdef CONFIG_ARCH_DISCARD_MEMBLOCK
|
|
|
#define __init_memblock __meminit
|
|
|
#define __initdata_memblock __meminitdata
|
|
|
+void memblock_discard(void);
|
|
|
#else
|
|
|
#define __init_memblock
|
|
|
#define __initdata_memblock
|
|
@@ -74,8 +75,6 @@ phys_addr_t memblock_find_in_range_node(phys_addr_t size, phys_addr_t align,
|
|
|
int nid, ulong flags);
|
|
|
phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end,
|
|
|
phys_addr_t size, phys_addr_t align);
|
|
|
-phys_addr_t get_allocated_memblock_reserved_regions_info(phys_addr_t *addr);
|
|
|
-phys_addr_t get_allocated_memblock_memory_regions_info(phys_addr_t *addr);
|
|
|
void memblock_allow_resize(void);
|
|
|
int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid);
|
|
|
int memblock_add(phys_addr_t base, phys_addr_t size);
|
|
@@ -110,6 +109,9 @@ void __next_mem_range_rev(u64 *idx, int nid, ulong flags,
|
|
|
void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start,
|
|
|
phys_addr_t *out_end);
|
|
|
|
|
|
+void __memblock_free_early(phys_addr_t base, phys_addr_t size);
|
|
|
+void __memblock_free_late(phys_addr_t base, phys_addr_t size);
|
|
|
+
|
|
|
/**
|
|
|
* for_each_mem_range - iterate through memblock areas from type_a and not
|
|
|
* included in type_b. Or just type_a if type_b is NULL.
|