diff options
Diffstat (limited to 'mm/internal.h')
-rw-r--r-- | mm/internal.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/mm/internal.h b/mm/internal.h index 0034e947e4bc..1f43f7416972 100644 --- a/mm/internal.h +++ b/mm/internal.h | |||
@@ -13,6 +13,11 @@ | |||
13 | 13 | ||
14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
15 | 15 | ||
16 | void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma, | ||
17 | unsigned long floor, unsigned long ceiling); | ||
18 | |||
19 | extern void prep_compound_page(struct page *page, unsigned long order); | ||
20 | |||
16 | static inline void set_page_count(struct page *page, int v) | 21 | static inline void set_page_count(struct page *page, int v) |
17 | { | 22 | { |
18 | atomic_set(&page->_count, v); | 23 | atomic_set(&page->_count, v); |
@@ -59,4 +64,60 @@ static inline unsigned long page_order(struct page *page) | |||
59 | #define __paginginit __init | 64 | #define __paginginit __init |
60 | #endif | 65 | #endif |
61 | 66 | ||
67 | /* Memory initialisation debug and verification */ | ||
68 | enum mminit_level { | ||
69 | MMINIT_WARNING, | ||
70 | MMINIT_VERIFY, | ||
71 | MMINIT_TRACE | ||
72 | }; | ||
73 | |||
74 | #ifdef CONFIG_DEBUG_MEMORY_INIT | ||
75 | |||
76 | extern int mminit_loglevel; | ||
77 | |||
78 | #define mminit_dprintk(level, prefix, fmt, arg...) \ | ||
79 | do { \ | ||
80 | if (level < mminit_loglevel) { \ | ||
81 | printk(level <= MMINIT_WARNING ? KERN_WARNING : KERN_DEBUG); \ | ||
82 | printk(KERN_CONT "mminit::" prefix " " fmt, ##arg); \ | ||
83 | } \ | ||
84 | } while (0) | ||
85 | |||
86 | extern void mminit_verify_pageflags_layout(void); | ||
87 | extern void mminit_verify_page_links(struct page *page, | ||
88 | enum zone_type zone, unsigned long nid, unsigned long pfn); | ||
89 | extern void mminit_verify_zonelist(void); | ||
90 | |||
91 | #else | ||
92 | |||
93 | static inline void mminit_dprintk(enum mminit_level level, | ||
94 | const char *prefix, const char *fmt, ...) | ||
95 | { | ||
96 | } | ||
97 | |||
98 | static inline void mminit_verify_pageflags_layout(void) | ||
99 | { | ||
100 | } | ||
101 | |||
102 | static inline void mminit_verify_page_links(struct page *page, | ||
103 | enum zone_type zone, unsigned long nid, unsigned long pfn) | ||
104 | { | ||
105 | } | ||
106 | |||
107 | static inline void mminit_verify_zonelist(void) | ||
108 | { | ||
109 | } | ||
110 | #endif /* CONFIG_DEBUG_MEMORY_INIT */ | ||
111 | |||
112 | /* mminit_validate_memmodel_limits is independent of CONFIG_DEBUG_MEMORY_INIT */ | ||
113 | #if defined(CONFIG_SPARSEMEM) | ||
114 | extern void mminit_validate_memmodel_limits(unsigned long *start_pfn, | ||
115 | unsigned long *end_pfn); | ||
116 | #else | ||
117 | static inline void mminit_validate_memmodel_limits(unsigned long *start_pfn, | ||
118 | unsigned long *end_pfn) | ||
119 | { | ||
120 | } | ||
121 | #endif /* CONFIG_SPARSEMEM */ | ||
122 | |||
62 | #endif | 123 | #endif |