aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/power.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/power/power.h')
-rw-r--r--kernel/power/power.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/kernel/power/power.h b/kernel/power/power.h
index ea7132ed029b..089c84bed895 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -41,8 +41,8 @@ extern struct pbe *pagedir_nosave;
41 41
42/* Preferred image size in bytes (default 500 MB) */ 42/* Preferred image size in bytes (default 500 MB) */
43extern unsigned long image_size; 43extern unsigned long image_size;
44
45extern int in_suspend; 44extern int in_suspend;
45extern dev_t swsusp_resume_device;
46 46
47extern asmlinkage int swsusp_arch_suspend(void); 47extern asmlinkage int swsusp_arch_suspend(void);
48extern asmlinkage int swsusp_arch_resume(void); 48extern asmlinkage int swsusp_arch_resume(void);
@@ -65,3 +65,32 @@ struct snapshot_handle {
65extern int snapshot_read_next(struct snapshot_handle *handle, size_t count); 65extern int snapshot_read_next(struct snapshot_handle *handle, size_t count);
66extern int snapshot_write_next(struct snapshot_handle *handle, size_t count); 66extern int snapshot_write_next(struct snapshot_handle *handle, size_t count);
67int snapshot_image_loaded(struct snapshot_handle *handle); 67int snapshot_image_loaded(struct snapshot_handle *handle);
68
69/**
70 * The bitmap is used for tracing allocated swap pages
71 *
72 * The entire bitmap consists of a number of bitmap_page
73 * structures linked with the help of the .next member.
74 * Thus each page can be allocated individually, so we only
75 * need to make 0-order memory allocations to create
76 * the bitmap.
77 */
78
79#define BITMAP_PAGE_SIZE (PAGE_SIZE - sizeof(void *))
80#define BITMAP_PAGE_CHUNKS (BITMAP_PAGE_SIZE / sizeof(long))
81#define BITS_PER_CHUNK (sizeof(long) * 8)
82#define BITMAP_PAGE_BITS (BITMAP_PAGE_CHUNKS * BITS_PER_CHUNK)
83
84struct bitmap_page {
85 unsigned long chunks[BITMAP_PAGE_CHUNKS];
86 struct bitmap_page *next;
87};
88
89extern void free_bitmap(struct bitmap_page *bitmap);
90extern struct bitmap_page *alloc_bitmap(unsigned int nr_bits);
91extern unsigned long alloc_swap_page(int swap, struct bitmap_page *bitmap);
92extern void free_all_swap_pages(int swap, struct bitmap_page *bitmap);
93
94extern int swsusp_shrink_memory(void);
95extern int swsusp_suspend(void);
96extern int swsusp_resume(void);