From: Nigel Cunningham <nigel@suspend2.net>
To: linux-kernel@vger.kernel.org
Subject: [Suspend2][ 10/16] [Suspend2] Image exists proc entry.
Date: Tue, 27 Jun 2006 08:33:49 +1000 [thread overview]
Message-ID: <20060626223347.3832.49382.stgit@nigel.suspend2.net> (raw)
In-Reply-To: <20060626223314.3832.23435.stgit@nigel.suspend2.net>
Routines for the image_exists proc entry. Read to determine whether an
image exists at the place resume2= points to (-1 equals can't determine, 0
for no image, 1 for there is).
If an image exists, we also print the kernel version and suspend version
used to create the image on additional lines.
Echoing to the file invalidates any image that exists.
Signed-off-by: Nigel Cunningham <nigel@suspend2.net>
kernel/power/suspend.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 40f54f7..4eabb21 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -640,3 +640,54 @@ cleanup:
suspend_deactivate_storage(0);
}
+/* image_exists_read
+ *
+ * Return 0 or 1, depending on whether an image is found.
+ */
+static int image_exists_read(char *page, char **start, off_t off, int count,
+ int *eof, void *data)
+{
+ int len = 0;
+ char *result;
+
+ if (suspend_activate_storage(0))
+ return count;
+
+ if (!test_suspend_state(SUSPEND_RESUME_DEVICE_OK))
+ suspend_attempt_to_parse_resume_device();
+
+ if (!suspend_active_writer) {
+ len = sprintf(page, "-1\n");
+ } else {
+ result = get_have_image_data();
+ if (result) {
+ len = sprintf(page, "%s", result);
+ free_page((unsigned long) result);
+ }
+ }
+
+ *eof = 1;
+
+ suspend_deactivate_storage(0);
+
+ return len;
+}
+
+/* image_exists_write
+ *
+ * Invalidate an image if one exists.
+ */
+static int image_exists_write(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ if (suspend_activate_storage(0))
+ return count;
+
+ if (suspend_active_writer && suspend_active_writer->image_exists())
+ suspend_active_writer->invalidate_image();
+
+ suspend_deactivate_storage(0);
+
+ return count;
+}
+
--
Nigel Cunningham nigel at suspend2 dot net
next prev parent reply other threads:[~2006-06-26 22:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-26 22:33 [Suspend2][ 00/16] Suspend.c Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 01/16] [Suspend2] Suspend.c header Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 02/16] [Suspend2] Routines called when starting or finishing anything Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 03/16] [Suspend2] Save image Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 04/16] [Suspend2] Get debug info Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 05/16] [Suspend2] Allocate/free bitmaps Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 06/16] [Suspend2] Check if still keeping an existing image Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 07/16] [Suspend2] Suspend2 init/cleanup Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 08/16] [Suspend2] Can suspend? Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 09/16] [Suspend2] Top level routine for do_suspend Nigel Cunningham
2006-06-26 22:33 ` Nigel Cunningham [this message]
2006-06-26 22:33 ` [Suspend2][ 11/16] [Suspend2] General proc entries for suspend Nigel Cunningham
2006-06-26 22:33 ` [Suspend2][ 12/16] [Suspend2] Core load routine Nigel Cunningham
2006-06-26 22:34 ` [Suspend2][ 13/16] [Suspend2] do_resume routine Nigel Cunningham
2006-06-26 22:34 ` [Suspend2][ 14/16] [Suspend2] Try to suspend Nigel Cunningham
2006-06-26 22:34 ` [Suspend2][ 15/16] [Suspend2] __init routines Nigel Cunningham
2006-06-26 22:34 ` [Suspend2][ 16/16] [Suspend2] Suspend,c header file Nigel Cunningham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060626223347.3832.49382.stgit@nigel.suspend2.net \
--to=nigel@suspend2.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome