#include <stdlib.h> #include <string.h> #include <disk/swsusp.h> #include <disk/read.h> #include <disk/geom.h> /** * swsusp_check - check if a (swap) partition contains the swsusp signature * @drive_info: driveinfo struct describing the disk containing the partition * @ptab; Partition table of the partition **/ int swsusp_check(struct driveinfo *drive_info, struct part_entry *ptab) { struct swsusp_header header_p; int offset; int found; /* Read first page of the swap device */ offset = ptab->start_lba; if (read_sectors(drive_info, &header_p, offset, PAGE_SIZE / SECTOR) == -1) { return -1; } else { found = !memcmp(SWSUSP_SIG, header_p.sig, 10); return found; } }