diff options
Diffstat (limited to 'kernel/power/power.h')
| -rw-r--r-- | kernel/power/power.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/kernel/power/power.h b/kernel/power/power.h index 95fbf2dd3fe3..195dc4611764 100644 --- a/kernel/power/power.h +++ b/kernel/power/power.h | |||
| @@ -11,14 +11,32 @@ struct swsusp_info { | |||
| 11 | unsigned long size; | 11 | unsigned long size; |
| 12 | } __attribute__((aligned(PAGE_SIZE))); | 12 | } __attribute__((aligned(PAGE_SIZE))); |
| 13 | 13 | ||
| 14 | #ifdef CONFIG_HIBERNATION | ||
| 15 | #ifdef CONFIG_ARCH_HIBERNATION_HEADER | ||
| 16 | /* Maximum size of architecture specific data in a hibernation header */ | ||
| 17 | #define MAX_ARCH_HEADER_SIZE (sizeof(struct new_utsname) + 4) | ||
| 14 | 18 | ||
| 19 | extern int arch_hibernation_header_save(void *addr, unsigned int max_size); | ||
| 20 | extern int arch_hibernation_header_restore(void *addr); | ||
| 21 | |||
| 22 | static inline int init_header_complete(struct swsusp_info *info) | ||
| 23 | { | ||
| 24 | return arch_hibernation_header_save(info, MAX_ARCH_HEADER_SIZE); | ||
| 25 | } | ||
| 26 | |||
| 27 | static inline char *check_image_kernel(struct swsusp_info *info) | ||
| 28 | { | ||
| 29 | return arch_hibernation_header_restore(info) ? | ||
| 30 | "architecture specific data" : NULL; | ||
| 31 | } | ||
| 32 | #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ | ||
| 15 | 33 | ||
| 16 | #ifdef CONFIG_HIBERNATION | ||
| 17 | /* | 34 | /* |
| 18 | * Keep some memory free so that I/O operations can succeed without paging | 35 | * Keep some memory free so that I/O operations can succeed without paging |
| 19 | * [Might this be more than 4 MB?] | 36 | * [Might this be more than 4 MB?] |
| 20 | */ | 37 | */ |
| 21 | #define PAGES_FOR_IO ((4096 * 1024) >> PAGE_SHIFT) | 38 | #define PAGES_FOR_IO ((4096 * 1024) >> PAGE_SHIFT) |
| 39 | |||
| 22 | /* | 40 | /* |
| 23 | * Keep 1 MB of memory free so that device drivers can allocate some pages in | 41 | * Keep 1 MB of memory free so that device drivers can allocate some pages in |
| 24 | * their .suspend() routines without breaking the suspend to disk. | 42 | * their .suspend() routines without breaking the suspend to disk. |
| @@ -165,7 +183,6 @@ extern int swsusp_swap_in_use(void); | |||
| 165 | extern int swsusp_check(void); | 183 | extern int swsusp_check(void); |
| 166 | extern int swsusp_shrink_memory(void); | 184 | extern int swsusp_shrink_memory(void); |
| 167 | extern void swsusp_free(void); | 185 | extern void swsusp_free(void); |
| 168 | extern int swsusp_suspend(void); | ||
| 169 | extern int swsusp_resume(void); | 186 | extern int swsusp_resume(void); |
| 170 | extern int swsusp_read(unsigned int *flags_p); | 187 | extern int swsusp_read(unsigned int *flags_p); |
| 171 | extern int swsusp_write(unsigned int flags); | 188 | extern int swsusp_write(unsigned int flags); |
