Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | /* |
2 | * kernel/power/tuxonice_pagedir.h | |
3 | * | |
4 | * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) | |
5 | * | |
6 | * This file is released under the GPLv2. | |
7 | * | |
8 | * Declarations for routines for handling pagesets. | |
9 | */ | |
10 | ||
11 | #ifndef KERNEL_POWER_PAGEDIR_H | |
12 | #define KERNEL_POWER_PAGEDIR_H | |
13 | ||
14 | /* Pagedir | |
15 | * | |
16 | * Contains the metadata for a set of pages saved in the image. | |
17 | */ | |
18 | ||
19 | struct pagedir { | |
20 | int id; | |
21 | unsigned long size; | |
22 | #ifdef CONFIG_HIGHMEM | |
23 | unsigned long size_high; | |
24 | #endif | |
25 | }; | |
26 | ||
27 | #ifdef CONFIG_HIGHMEM | |
28 | #define get_highmem_size(pagedir) (pagedir.size_high) | |
29 | #define set_highmem_size(pagedir, sz) do { pagedir.size_high = sz; } while (0) | |
30 | #define inc_highmem_size(pagedir) do { pagedir.size_high++; } while (0) | |
31 | #define get_lowmem_size(pagedir) (pagedir.size - pagedir.size_high) | |
32 | #else | |
33 | #define get_highmem_size(pagedir) (0) | |
34 | #define set_highmem_size(pagedir, sz) do { } while (0) | |
35 | #define inc_highmem_size(pagedir) do { } while (0) | |
36 | #define get_lowmem_size(pagedir) (pagedir.size) | |
37 | #endif | |
38 | ||
39 | extern struct pagedir pagedir1, pagedir2; | |
40 | ||
41 | extern void toi_copy_pageset1(void); | |
42 | ||
43 | extern int toi_get_pageset1_load_addresses(void); | |
44 | ||
45 | extern unsigned long __toi_get_nonconflicting_page(void); | |
46 | struct page *___toi_get_nonconflicting_page(int can_be_highmem); | |
47 | ||
48 | extern void toi_reset_alt_image_pageset2_pfn(void); | |
49 | extern int add_boot_kernel_data_pbe(void); | |
50 | #endif |