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 |
