diff options
Diffstat (limited to 'include/linux/suspend.h')
-rw-r--r-- | include/linux/suspend.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h new file mode 100644 index 000000000000..2bf0d5fabcdb --- /dev/null +++ b/include/linux/suspend.h | |||
@@ -0,0 +1,75 @@ | |||
1 | #ifndef _LINUX_SWSUSP_H | ||
2 | #define _LINUX_SWSUSP_H | ||
3 | |||
4 | #if defined(CONFIG_X86) || defined(CONFIG_FRV) || defined(CONFIG_PPC32) | ||
5 | #include <asm/suspend.h> | ||
6 | #endif | ||
7 | #include <linux/swap.h> | ||
8 | #include <linux/notifier.h> | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/pm.h> | ||
12 | |||
13 | /* page backup entry */ | ||
14 | typedef struct pbe { | ||
15 | unsigned long address; /* address of the copy */ | ||
16 | unsigned long orig_address; /* original address of page */ | ||
17 | swp_entry_t swap_address; | ||
18 | |||
19 | struct pbe *next; /* also used as scratch space at | ||
20 | * end of page (see link, diskpage) | ||
21 | */ | ||
22 | } suspend_pagedir_t; | ||
23 | |||
24 | #define for_each_pbe(pbe, pblist) \ | ||
25 | for (pbe = pblist ; pbe ; pbe = pbe->next) | ||
26 | |||
27 | #define PBES_PER_PAGE (PAGE_SIZE/sizeof(struct pbe)) | ||
28 | #define PB_PAGE_SKIP (PBES_PER_PAGE-1) | ||
29 | |||
30 | #define for_each_pb_page(pbe, pblist) \ | ||
31 | for (pbe = pblist ; pbe ; pbe = (pbe+PB_PAGE_SKIP)->next) | ||
32 | |||
33 | |||
34 | #define SWAP_FILENAME_MAXLENGTH 32 | ||
35 | |||
36 | |||
37 | extern dev_t swsusp_resume_device; | ||
38 | |||
39 | /* mm/vmscan.c */ | ||
40 | extern int shrink_mem(void); | ||
41 | |||
42 | /* mm/page_alloc.c */ | ||
43 | extern void drain_local_pages(void); | ||
44 | extern void mark_free_pages(struct zone *zone); | ||
45 | |||
46 | #ifdef CONFIG_PM | ||
47 | /* kernel/power/swsusp.c */ | ||
48 | extern int software_suspend(void); | ||
49 | |||
50 | extern int pm_prepare_console(void); | ||
51 | extern void pm_restore_console(void); | ||
52 | |||
53 | #else | ||
54 | static inline int software_suspend(void) | ||
55 | { | ||
56 | printk("Warning: fake suspend called\n"); | ||
57 | return -EPERM; | ||
58 | } | ||
59 | #endif | ||
60 | |||
61 | #ifdef CONFIG_SMP | ||
62 | extern void disable_nonboot_cpus(void); | ||
63 | extern void enable_nonboot_cpus(void); | ||
64 | #else | ||
65 | static inline void disable_nonboot_cpus(void) {} | ||
66 | static inline void enable_nonboot_cpus(void) {} | ||
67 | #endif | ||
68 | |||
69 | void save_processor_state(void); | ||
70 | void restore_processor_state(void); | ||
71 | struct saved_context; | ||
72 | void __save_processor_state(struct saved_context *ctxt); | ||
73 | void __restore_processor_state(struct saved_context *ctxt); | ||
74 | |||
75 | #endif /* _LINUX_SWSUSP_H */ | ||