1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __LINUX_PAGEISOLATION_H 3 #define __LINUX_PAGEISOLATION_H 4 5 #ifdef CONFIG_MEMORY_ISOLATION 6 static inline bool is_migrate_isolate_page(struct page *page) 7 { 8 return get_pageblock_migratetype(page) == MIGRATE_ISOLATE; 9 } 10 static inline bool is_migrate_isolate(int migratetype) 11 { 12 return migratetype == MIGRATE_ISOLATE; 13 } 14 #else 15 static inline bool is_migrate_isolate_page(struct page *page) 16 { 17 return false; 18 } 19 static inline bool is_migrate_isolate(int migratetype) 20 { 21 return false; 22 } 23 #endif 24 25 #define MEMORY_OFFLINE 0x1 26 #define REPORT_FAILURE 0x2 27 28 void set_pageblock_migratetype(struct page *page, int migratetype); 29 30 bool move_freepages_block_isolate(struct zone *zone, struct page *page, 31 int migratetype); 32 33 int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn, 34 int migratetype, int flags); 35 36 void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn, 37 int migratetype); 38 39 int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn, 40 int isol_flags); 41 #endif 42