aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/bootmem.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/bootmem.h')
-rw-r--r--include/linux/bootmem.h95
1 files changed, 49 insertions, 46 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index b2067e4a4486..31e9abb6d977 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -38,29 +38,30 @@ typedef struct bootmem_data {
38 struct list_head list; 38 struct list_head list;
39} bootmem_data_t; 39} bootmem_data_t;
40 40
41extern unsigned long bootmem_bootmap_pages (unsigned long); 41extern unsigned long bootmem_bootmap_pages(unsigned long);
42extern unsigned long init_bootmem (unsigned long addr, unsigned long memend); 42extern unsigned long init_bootmem(unsigned long addr, unsigned long memend);
43extern void free_bootmem (unsigned long addr, unsigned long size); 43extern void free_bootmem(unsigned long addr, unsigned long size);
44extern void * __alloc_bootmem (unsigned long size, 44extern void *__alloc_bootmem(unsigned long size,
45 unsigned long align, 45 unsigned long align,
46 unsigned long goal); 46 unsigned long goal);
47extern void * __alloc_bootmem_nopanic (unsigned long size, 47extern void *__alloc_bootmem_nopanic(unsigned long size,
48 unsigned long align, 48 unsigned long align,
49 unsigned long goal); 49 unsigned long goal);
50extern void * __alloc_bootmem_low(unsigned long size, 50extern void *__alloc_bootmem_low(unsigned long size,
51 unsigned long align,
52 unsigned long goal);
53extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
54 unsigned long size,
55 unsigned long align,
56 unsigned long goal);
57extern void *__alloc_bootmem_core(struct bootmem_data *bdata,
58 unsigned long size,
51 unsigned long align, 59 unsigned long align,
52 unsigned long goal); 60 unsigned long goal,
53extern void * __alloc_bootmem_low_node(pg_data_t *pgdat, 61 unsigned long limit);
54 unsigned long size, 62
55 unsigned long align,
56 unsigned long goal);
57extern void * __alloc_bootmem_core(struct bootmem_data *bdata,
58 unsigned long size,
59 unsigned long align,
60 unsigned long goal,
61 unsigned long limit);
62#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE 63#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
63extern void reserve_bootmem (unsigned long addr, unsigned long size); 64extern void reserve_bootmem(unsigned long addr, unsigned long size);
64#define alloc_bootmem(x) \ 65#define alloc_bootmem(x) \
65 __alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) 66 __alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
66#define alloc_bootmem_low(x) \ 67#define alloc_bootmem_low(x) \
@@ -70,22 +71,24 @@ extern void reserve_bootmem (unsigned long addr, unsigned long size);
70#define alloc_bootmem_low_pages(x) \ 71#define alloc_bootmem_low_pages(x) \
71 __alloc_bootmem_low(x, PAGE_SIZE, 0) 72 __alloc_bootmem_low(x, PAGE_SIZE, 0)
72#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ 73#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
73extern unsigned long free_all_bootmem (void); 74
74extern void * __alloc_bootmem_node (pg_data_t *pgdat, 75extern unsigned long free_all_bootmem(void);
75 unsigned long size, 76extern unsigned long free_all_bootmem_node(pg_data_t *pgdat);
76 unsigned long align, 77extern void *__alloc_bootmem_node(pg_data_t *pgdat,
77 unsigned long goal); 78 unsigned long size,
78extern unsigned long init_bootmem_node (pg_data_t *pgdat, 79 unsigned long align,
79 unsigned long freepfn, 80 unsigned long goal);
80 unsigned long startpfn, 81extern unsigned long init_bootmem_node(pg_data_t *pgdat,
81 unsigned long endpfn); 82 unsigned long freepfn,
82extern void reserve_bootmem_node (pg_data_t *pgdat, 83 unsigned long startpfn,
83 unsigned long physaddr, 84 unsigned long endpfn);
84 unsigned long size); 85extern void reserve_bootmem_node(pg_data_t *pgdat,
85extern void free_bootmem_node (pg_data_t *pgdat, 86 unsigned long physaddr,
86 unsigned long addr, 87 unsigned long size);
87 unsigned long size); 88extern void free_bootmem_node(pg_data_t *pgdat,
88extern unsigned long free_all_bootmem_node (pg_data_t *pgdat); 89 unsigned long addr,
90 unsigned long size);
91
89#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE 92#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
90#define alloc_bootmem_node(pgdat, x) \ 93#define alloc_bootmem_node(pgdat, x) \
91 __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) 94 __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
@@ -102,19 +105,19 @@ static inline void *alloc_remap(int nid, unsigned long size)
102{ 105{
103 return NULL; 106 return NULL;
104} 107}
105#endif 108#endif /* CONFIG_HAVE_ARCH_ALLOC_REMAP */
106 109
107extern unsigned long __meminitdata nr_kernel_pages; 110extern unsigned long __meminitdata nr_kernel_pages;
108extern unsigned long nr_all_pages; 111extern unsigned long nr_all_pages;
109 112
110extern void * alloc_large_system_hash(const char *tablename, 113extern void *alloc_large_system_hash(const char *tablename,
111 unsigned long bucketsize, 114 unsigned long bucketsize,
112 unsigned long numentries, 115 unsigned long numentries,
113 int scale, 116 int scale,
114 int flags, 117 int flags,
115 unsigned int *_hash_shift, 118 unsigned int *_hash_shift,
116 unsigned int *_hash_mask, 119 unsigned int *_hash_mask,
117 unsigned long limit); 120 unsigned long limit);
118 121
119#define HASH_HIGHMEM 0x00000001 /* Consider highmem? */ 122#define HASH_HIGHMEM 0x00000001 /* Consider highmem? */
120#define HASH_EARLY 0x00000002 /* Allocating during early boot? */ 123#define HASH_EARLY 0x00000002 /* Allocating during early boot? */