28 lines
712 B
C
28 lines
712 B
C
#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;
|
|
}
|
|
}
|