David Härdeman
2006-Nov-12 23:08 UTC
[klibc] klibc-utils: Add recognition of suspend images to fstype
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)