1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #ifndef _MM_INTERNAL_H 3 #define _MM_INTERNAL_H 4 5 /* 6 * Enable memblock_dbg() messages 7 */ 8 #ifdef MEMBLOCK_DEBUG 9 static int memblock_debug = 1; 10 #endif 11 12 #define pr_warn_ratelimited(fmt, ...) printf(fmt, ##__VA_ARGS__) 13 14 #define K(x) ((x) << (PAGE_SHIFT-10)) 15 16 bool mirrored_kernelcore = false; 17 18 struct page {}; 19 static inline void *page_address(struct page *page) 20 { 21 BUG(); 22 return page; 23 } 24 25 static inline struct page *virt_to_page(void *virt) 26 { 27 BUG(); 28 return virt; 29 } 30 31 void memblock_free_pages(unsigned long pfn, unsigned int order) 32 { 33 } 34 35 static inline void accept_memory(phys_addr_t start, unsigned long size) 36 { 37 } 38 39 unsigned long free_reserved_area(void *start, void *end, int poison, const char *s); 40 void free_reserved_page(struct page *page); 41 42 static inline bool deferred_pages_enabled(void) 43 { 44 return false; 45 } 46 47 #define for_each_valid_pfn(pfn, start_pfn, end_pfn) \ 48 for ((pfn) = (start_pfn); (pfn) < (end_pfn); (pfn)++) 49 50 static inline void *kasan_reset_tag(const void *addr) 51 { 52 return (void *)addr; 53 } 54 55 static inline bool __is_kernel(unsigned long addr) 56 { 57 return false; 58 } 59 60 #define for_each_valid_pfn(pfn, start_pfn, end_pfn) \ 61 for ((pfn) = (start_pfn); (pfn) < (end_pfn); (pfn)++) 62 63 static inline void init_deferred_page(unsigned long pfn, int nid) 64 { 65 } 66 67 #define __SetPageReserved(p) ((void)(p)) 68 69 #endif 70