[klibc] klibc-utils: Add recognition of suspend images to fstype

David Härdeman david at hardeman.nu
Sun Nov 12 15:08:30 PST 2006


Package: klibc-utils
Version: 1.4.30-1
Severity: normal
Tags: patch

Hi,

the attached patch adds swsusp, suspend2 and uswsusp image detection 
to fstype.

Signed-off-by: David Härdeman <david at hardeman.nu>

-- 
 fstype.c  |   15 +++++++++++++++
 swap_fs.h |    7 +++++++
 2 files changed, 22 insertions(+)

-------------- next part --------------
diff -ur ./klibc-1.4.30.orig/usr/kinit/fstype/fstype.c ./klibc-1.4.30/usr/kinit/fstype/fstype.c
--- ./klibc-1.4.30.orig/usr/kinit/fstype/fstype.c	2006-10-31 23:28:12.000000000 +0100
+++ ./klibc-1.4.30/usr/kinit/fstype/fstype.c	2006-11-12 23:57:42.000000000 +0100
@@ -202,6 +202,20 @@
 	return 0;
 }
 
+static int suspend_image(const void *buf, unsigned long long *blocks)
+{
+	const struct swap_super_block *ssb =
+	    (const struct swap_super_block *)buf;
+
+	if (!memcmp(ssb->magic, SUSP_MAGIC_1, SUSP_MAGIC_L) ||
+	    !memcmp(ssb->magic, SUSP_MAGIC_2, SUSP_MAGIC_L) ||
+	    !memcmp(ssb->magic, SUSP_MAGIC_U, SUSP_MAGIC_L)) {
+		*blocks = 0;
+		return 1;
+	}
+	return 0;
+}
+
 static int lvm2_image(const void *buf, unsigned long long *blocks)
 {
 	const struct lvm2_super_block *lsb;
@@ -271,6 +285,7 @@
 	{0, "lvm2", lvm2_image},
 	{1, "lvm2", lvm2_image},
 	{-1, "swap", swap_image},
+	{-1, "suspend", suspend_image},
 	{0, "", NULL}
 };
 
diff -ur ./klibc-1.4.30.orig/usr/kinit/fstype/swap_fs.h ./klibc-1.4.30/usr/kinit/fstype/swap_fs.h
--- ./klibc-1.4.30.orig/usr/kinit/fstype/swap_fs.h	2006-10-31 23:28:12.000000000 +0100
+++ ./klibc-1.4.30/usr/kinit/fstype/swap_fs.h	2006-11-12 23:54:23.000000000 +0100
@@ -6,6 +6,13 @@
 #define SWAP_RESERVED_L		(1024 - SWAP_MAGIC_L)
 #define SWAP_MAGIC_1		"SWAP-SPACE"
 #define SWAP_MAGIC_2		"SWAPSPACE2"
+
+/* Suspend signatures, located at same addr as swap magic */
+#define SUSP_MAGIC_L		9
+#define SUSP_MAGIC_1		"S1SUSPEND"
+#define SUSP_MAGIC_2		"S2SUSPEND"
+#define SUSP_MAGIC_U		"ULSUSPEND"
+
 /* The superblock is the last block in the first page */
 #define SWAP_OFFSET()		((getpagesize() - 1024) >> 10)
 


More information about the klibc mailing list