Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
a5d76b54 KH |
2 | #ifndef __LINUX_PAGEISOLATION_H |
3 | #define __LINUX_PAGEISOLATION_H | |
4 | ||
194159fb | 5 | #ifdef CONFIG_MEMORY_ISOLATION |
ad53f92e JK |
6 | static inline bool has_isolate_pageblock(struct zone *zone) |
7 | { | |
8 | return zone->nr_isolate_pageblock; | |
9 | } | |
194159fb MK |
10 | static inline bool is_migrate_isolate_page(struct page *page) |
11 | { | |
12 | return get_pageblock_migratetype(page) == MIGRATE_ISOLATE; | |
13 | } | |
14 | static inline bool is_migrate_isolate(int migratetype) | |
15 | { | |
16 | return migratetype == MIGRATE_ISOLATE; | |
17 | } | |
18 | #else | |
ad53f92e JK |
19 | static inline bool has_isolate_pageblock(struct zone *zone) |
20 | { | |
21 | return false; | |
22 | } | |
194159fb MK |
23 | static inline bool is_migrate_isolate_page(struct page *page) |
24 | { | |
25 | return false; | |
26 | } | |
27 | static inline bool is_migrate_isolate(int migratetype) | |
28 | { | |
29 | return false; | |
30 | } | |
31 | #endif | |
ee6f509c | 32 | |
756d25be | 33 | #define MEMORY_OFFLINE 0x1 |
d381c547 MH |
34 | #define REPORT_FAILURE 0x2 |
35 | ||
ee6f509c MK |
36 | void set_pageblock_migratetype(struct page *page, int migratetype); |
37 | int move_freepages_block(struct zone *zone, struct page *page, | |
02aa0cdd | 38 | int migratetype, int *num_movable); |
435b405c | 39 | |
ce5df776 JW |
40 | int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn, |
41 | int migratetype, int flags, gfp_t gfp_flags); | |
42 | ||
43 | void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn, | |
44 | int migratetype); | |
45 | ||
b023f468 | 46 | int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn, |
756d25be | 47 | int isol_flags); |
a5d76b54 | 48 | #endif |