diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2006-03-23 05:59:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-23 10:38:07 -0500 |
commit | f577eb30afdc68233f25d4d82b04102129262365 (patch) | |
tree | 25d3c2fa8dfbf42fd0d4776a36166736fcc1446a /kernel/power/disk.c | |
parent | 2b322ce210aec74ae0d02938d3a01e29fe079469 (diff) |
[PATCH] swsusp: low level interface
Introduce the low level interface that can be used for handling the
snapshot of the system memory by the in-kernel swap-writing/reading code of
swsusp and the userland interface code (to be introduced shortly).
Also change the way in which swsusp records the allocated swap pages and,
consequently, simplifies the in-kernel swap-writing/reading code (this is
necessary for the userland interface too). To this end, it introduces two
helper functions in mm/swapfile.c, so that the swsusp code does not refer
directly to the swap internals.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/power/disk.c')
-rw-r--r-- | kernel/power/disk.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index 0b43847dc980..4eb464b71347 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
@@ -26,9 +26,9 @@ extern suspend_disk_method_t pm_disk_mode; | |||
26 | 26 | ||
27 | extern int swsusp_shrink_memory(void); | 27 | extern int swsusp_shrink_memory(void); |
28 | extern int swsusp_suspend(void); | 28 | extern int swsusp_suspend(void); |
29 | extern int swsusp_write(struct pbe *pblist, unsigned int nr_pages); | 29 | extern int swsusp_write(void); |
30 | extern int swsusp_check(void); | 30 | extern int swsusp_check(void); |
31 | extern int swsusp_read(struct pbe **pblist_ptr); | 31 | extern int swsusp_read(void); |
32 | extern void swsusp_close(void); | 32 | extern void swsusp_close(void); |
33 | extern int swsusp_resume(void); | 33 | extern int swsusp_resume(void); |
34 | 34 | ||
@@ -70,10 +70,6 @@ static void power_down(suspend_disk_method_t mode) | |||
70 | while(1); | 70 | while(1); |
71 | } | 71 | } |
72 | 72 | ||
73 | |||
74 | static int in_suspend __nosavedata = 0; | ||
75 | |||
76 | |||
77 | static inline void platform_finish(void) | 73 | static inline void platform_finish(void) |
78 | { | 74 | { |
79 | if (pm_disk_mode == PM_DISK_PLATFORM) { | 75 | if (pm_disk_mode == PM_DISK_PLATFORM) { |
@@ -145,7 +141,7 @@ int pm_suspend_disk(void) | |||
145 | if (in_suspend) { | 141 | if (in_suspend) { |
146 | device_resume(); | 142 | device_resume(); |
147 | pr_debug("PM: writing image.\n"); | 143 | pr_debug("PM: writing image.\n"); |
148 | error = swsusp_write(pagedir_nosave, nr_copy_pages); | 144 | error = swsusp_write(); |
149 | if (!error) | 145 | if (!error) |
150 | power_down(pm_disk_mode); | 146 | power_down(pm_disk_mode); |
151 | else { | 147 | else { |
@@ -216,7 +212,7 @@ static int software_resume(void) | |||
216 | 212 | ||
217 | pr_debug("PM: Reading swsusp image.\n"); | 213 | pr_debug("PM: Reading swsusp image.\n"); |
218 | 214 | ||
219 | if ((error = swsusp_read(&pagedir_nosave))) { | 215 | if ((error = swsusp_read())) { |
220 | swsusp_free(); | 216 | swsusp_free(); |
221 | goto Thaw; | 217 | goto Thaw; |
222 | } | 218 | } |