1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a5d76b54SKAMEZAWA Hiroyuki #ifndef __LINUX_PAGEISOLATION_H
3a5d76b54SKAMEZAWA Hiroyuki #define __LINUX_PAGEISOLATION_H
4a5d76b54SKAMEZAWA Hiroyuki
5194159fbSMinchan Kim #ifdef CONFIG_MEMORY_ISOLATION
is_migrate_isolate_page(struct page * page)6194159fbSMinchan Kim static inline bool is_migrate_isolate_page(struct page *page)
7194159fbSMinchan Kim {
8194159fbSMinchan Kim return get_pageblock_migratetype(page) == MIGRATE_ISOLATE;
9194159fbSMinchan Kim }
is_migrate_isolate(int migratetype)10194159fbSMinchan Kim static inline bool is_migrate_isolate(int migratetype)
11194159fbSMinchan Kim {
12194159fbSMinchan Kim return migratetype == MIGRATE_ISOLATE;
13194159fbSMinchan Kim }
14194159fbSMinchan Kim #else
is_migrate_isolate_page(struct page * page)15194159fbSMinchan Kim static inline bool is_migrate_isolate_page(struct page *page)
16194159fbSMinchan Kim {
17194159fbSMinchan Kim return false;
18194159fbSMinchan Kim }
is_migrate_isolate(int migratetype)19194159fbSMinchan Kim static inline bool is_migrate_isolate(int migratetype)
20194159fbSMinchan Kim {
21194159fbSMinchan Kim return false;
22194159fbSMinchan Kim }
23194159fbSMinchan Kim #endif
24ee6f509cSMinchan Kim
25756d25beSDavid Hildenbrand #define MEMORY_OFFLINE 0x1
26d381c547SMichal Hocko #define REPORT_FAILURE 0x2
27d381c547SMichal Hocko
28ee6f509cSMinchan Kim void set_pageblock_migratetype(struct page *page, int migratetype);
29fd919a85SJohannes Weiner
30fd919a85SJohannes Weiner bool move_freepages_block_isolate(struct zone *zone, struct page *page,
31fd919a85SJohannes Weiner int migratetype);
32435b405cSMinchan Kim
33ce5df776SJohannes Weiner int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
34*b9e40605SDavid Hildenbrand int migratetype, int flags);
35a5d76b54SKAMEZAWA Hiroyuki
36ce5df776SJohannes Weiner void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
37b2c9e2fbSZi Yan int migratetype);
38a5d76b54SKAMEZAWA Hiroyuki
39b023f468SWen Congyang int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
40756d25beSDavid Hildenbrand int isol_flags);
41a5d76b54SKAMEZAWA Hiroyuki #endif
42