diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/bootmem.h | 7 | ||||
| -rw-r--r-- | include/linux/mm.h | 5 | ||||
| -rw-r--r-- | include/linux/mmzone.h | 2 |
3 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index b10ec49ee2dd..266ab9291232 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
| @@ -23,6 +23,7 @@ extern unsigned long max_pfn; | |||
| 23 | extern unsigned long saved_max_pfn; | 23 | extern unsigned long saved_max_pfn; |
| 24 | #endif | 24 | #endif |
| 25 | 25 | ||
| 26 | #ifndef CONFIG_NO_BOOTMEM | ||
| 26 | /* | 27 | /* |
| 27 | * node_bootmem_map is a map pointer - the bits represent all physical | 28 | * node_bootmem_map is a map pointer - the bits represent all physical |
| 28 | * memory pages (including holes) on the node. | 29 | * memory pages (including holes) on the node. |
| @@ -37,6 +38,7 @@ typedef struct bootmem_data { | |||
| 37 | } bootmem_data_t; | 38 | } bootmem_data_t; |
| 38 | 39 | ||
| 39 | extern bootmem_data_t bootmem_node_data[]; | 40 | extern bootmem_data_t bootmem_node_data[]; |
| 41 | #endif | ||
| 40 | 42 | ||
| 41 | extern unsigned long bootmem_bootmap_pages(unsigned long); | 43 | extern unsigned long bootmem_bootmap_pages(unsigned long); |
| 42 | 44 | ||
| @@ -46,6 +48,7 @@ extern unsigned long init_bootmem_node(pg_data_t *pgdat, | |||
| 46 | unsigned long endpfn); | 48 | unsigned long endpfn); |
| 47 | extern unsigned long init_bootmem(unsigned long addr, unsigned long memend); | 49 | extern unsigned long init_bootmem(unsigned long addr, unsigned long memend); |
| 48 | 50 | ||
| 51 | unsigned long free_all_memory_core_early(int nodeid); | ||
| 49 | extern unsigned long free_all_bootmem_node(pg_data_t *pgdat); | 52 | extern unsigned long free_all_bootmem_node(pg_data_t *pgdat); |
| 50 | extern unsigned long free_all_bootmem(void); | 53 | extern unsigned long free_all_bootmem(void); |
| 51 | 54 | ||
| @@ -84,6 +87,10 @@ extern void *__alloc_bootmem_node(pg_data_t *pgdat, | |||
| 84 | unsigned long size, | 87 | unsigned long size, |
| 85 | unsigned long align, | 88 | unsigned long align, |
| 86 | unsigned long goal); | 89 | unsigned long goal); |
| 90 | void *__alloc_bootmem_node_high(pg_data_t *pgdat, | ||
| 91 | unsigned long size, | ||
| 92 | unsigned long align, | ||
| 93 | unsigned long goal); | ||
| 87 | extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat, | 94 | extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat, |
| 88 | unsigned long size, | 95 | unsigned long size, |
| 89 | unsigned long align, | 96 | unsigned long align, |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 8b2fa8593c61..f2c5b3cee8a1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/prio_tree.h> | 12 | #include <linux/prio_tree.h> |
| 13 | #include <linux/debug_locks.h> | 13 | #include <linux/debug_locks.h> |
| 14 | #include <linux/mm_types.h> | 14 | #include <linux/mm_types.h> |
| 15 | #include <linux/range.h> | ||
| 15 | 16 | ||
| 16 | struct mempolicy; | 17 | struct mempolicy; |
| 17 | struct anon_vma; | 18 | struct anon_vma; |
| @@ -1049,6 +1050,10 @@ extern void get_pfn_range_for_nid(unsigned int nid, | |||
| 1049 | extern unsigned long find_min_pfn_with_active_regions(void); | 1050 | extern unsigned long find_min_pfn_with_active_regions(void); |
| 1050 | extern void free_bootmem_with_active_regions(int nid, | 1051 | extern void free_bootmem_with_active_regions(int nid, |
| 1051 | unsigned long max_low_pfn); | 1052 | unsigned long max_low_pfn); |
| 1053 | int add_from_early_node_map(struct range *range, int az, | ||
| 1054 | int nr_range, int nid); | ||
| 1055 | void *__alloc_memory_core_early(int nodeid, u64 size, u64 align, | ||
| 1056 | u64 goal, u64 limit); | ||
| 1052 | typedef int (*work_fn_t)(unsigned long, unsigned long, void *); | 1057 | typedef int (*work_fn_t)(unsigned long, unsigned long, void *); |
| 1053 | extern void work_with_active_regions(int nid, work_fn_t work_fn, void *data); | 1058 | extern void work_with_active_regions(int nid, work_fn_t work_fn, void *data); |
| 1054 | extern void sparse_memory_present_with_active_regions(int nid); | 1059 | extern void sparse_memory_present_with_active_regions(int nid); |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 30fe668c2542..eae8387b6007 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -620,7 +620,9 @@ typedef struct pglist_data { | |||
| 620 | struct page_cgroup *node_page_cgroup; | 620 | struct page_cgroup *node_page_cgroup; |
| 621 | #endif | 621 | #endif |
| 622 | #endif | 622 | #endif |
| 623 | #ifndef CONFIG_NO_BOOTMEM | ||
| 623 | struct bootmem_data *bdata; | 624 | struct bootmem_data *bdata; |
| 625 | #endif | ||
| 624 | #ifdef CONFIG_MEMORY_HOTPLUG | 626 | #ifdef CONFIG_MEMORY_HOTPLUG |
| 625 | /* | 627 | /* |
| 626 | * Must be held any time you expect node_start_pfn, node_present_pages | 628 | * Must be held any time you expect node_start_pfn, node_present_pages |
