50 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __LINUX_PAGEISOLATION_H3#define __LINUX_PAGEISOLATION_H4 5#ifdef CONFIG_MEMORY_ISOLATION6static inline bool has_isolate_pageblock(struct zone *zone)7{8 return zone->nr_isolate_pageblock;9}10static inline bool is_migrate_isolate_page(struct page *page)11{12 return get_pageblock_migratetype(page) == MIGRATE_ISOLATE;13}14static inline bool is_migrate_isolate(int migratetype)15{16 return migratetype == MIGRATE_ISOLATE;17}18#else19static inline bool has_isolate_pageblock(struct zone *zone)20{21 return false;22}23static inline bool is_migrate_isolate_page(struct page *page)24{25 return false;26}27static inline bool is_migrate_isolate(int migratetype)28{29 return false;30}31#endif32 33#define MEMORY_OFFLINE 0x134#define REPORT_FAILURE 0x235 36void set_pageblock_migratetype(struct page *page, int migratetype);37 38bool move_freepages_block_isolate(struct zone *zone, struct page *page,39 int migratetype);40 41int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,42 int migratetype, int flags, gfp_t gfp_flags);43 44void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,45 int migratetype);46 47int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,48 int isol_flags);49#endif50