Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | /* |
2 | * kernel/power/tuxonice_pageflags.h | |
3 | * | |
4 | * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) | |
5 | * | |
6 | * This file is released under the GPLv2. | |
7 | */ | |
8 | ||
9 | #ifndef KERNEL_POWER_TUXONICE_PAGEFLAGS_H | |
10 | #define KERNEL_POWER_TUXONICE_PAGEFLAGS_H | |
11 | ||
12 | extern struct memory_bitmap *pageset1_map; | |
13 | extern struct memory_bitmap *pageset1_copy_map; | |
14 | extern struct memory_bitmap *pageset2_map; | |
15 | extern struct memory_bitmap *page_resave_map; | |
16 | extern struct memory_bitmap *io_map; | |
17 | extern struct memory_bitmap *nosave_map; | |
18 | extern struct memory_bitmap *free_map; | |
19 | ||
20 | #define PagePageset1(page) \ | |
21 | (memory_bm_test_bit(pageset1_map, page_to_pfn(page))) | |
22 | #define SetPagePageset1(page) \ | |
23 | (memory_bm_set_bit(pageset1_map, page_to_pfn(page))) | |
24 | #define ClearPagePageset1(page) \ | |
25 | (memory_bm_clear_bit(pageset1_map, page_to_pfn(page))) | |
26 | ||
27 | #define PagePageset1Copy(page) \ | |
28 | (memory_bm_test_bit(pageset1_copy_map, page_to_pfn(page))) | |
29 | #define SetPagePageset1Copy(page) \ | |
30 | (memory_bm_set_bit(pageset1_copy_map, page_to_pfn(page))) | |
31 | #define ClearPagePageset1Copy(page) \ | |
32 | (memory_bm_clear_bit(pageset1_copy_map, page_to_pfn(page))) | |
33 | ||
34 | #define PagePageset2(page) \ | |
35 | (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) | |
36 | #define SetPagePageset2(page) \ | |
37 | (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) | |
38 | #define ClearPagePageset2(page) \ | |
39 | (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) | |
40 | ||
41 | #define PageWasRW(page) \ | |
42 | (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) | |
43 | #define SetPageWasRW(page) \ | |
44 | (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) | |
45 | #define ClearPageWasRW(page) \ | |
46 | (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) | |
47 | ||
48 | #define PageResave(page) (page_resave_map ? \ | |
49 | memory_bm_test_bit(page_resave_map, page_to_pfn(page)) : 0) | |
50 | #define SetPageResave(page) \ | |
51 | (memory_bm_set_bit(page_resave_map, page_to_pfn(page))) | |
52 | #define ClearPageResave(page) \ | |
53 | (memory_bm_clear_bit(page_resave_map, page_to_pfn(page))) | |
54 | ||
55 | #define PageNosave(page) (nosave_map ? \ | |
56 | memory_bm_test_bit(nosave_map, page_to_pfn(page)) : 0) | |
57 | #define SetPageNosave(page) \ | |
58 | (memory_bm_set_bit(nosave_map, page_to_pfn(page))) | |
59 | #define ClearPageNosave(page) \ | |
60 | (memory_bm_clear_bit(nosave_map, page_to_pfn(page))) | |
61 | ||
62 | #define PageNosaveFree(page) (free_map ? \ | |
63 | memory_bm_test_bit(free_map, page_to_pfn(page)) : 0) | |
64 | #define SetPageNosaveFree(page) \ | |
65 | (memory_bm_set_bit(free_map, page_to_pfn(page))) | |
66 | #define ClearPageNosaveFree(page) \ | |
67 | (memory_bm_clear_bit(free_map, page_to_pfn(page))) | |
68 | ||
69 | extern void save_pageflags(struct memory_bitmap *pagemap); | |
70 | extern int load_pageflags(struct memory_bitmap *pagemap); | |
71 | extern int toi_pageflags_space_needed(void); | |
72 | #endif |