#include <lunaix/status.h>
#include <lunaix/syslog.h>
+#include <sys/muldiv64.h>
+
#include <lib/crc.h>
#define GPT_BLKSIZE 512
}
// Convert UEFI's 512B LB representation into local LBA range.
- u64_t slba_local =
- (ent->start_lba * GPT_BLKSIZE) / (u64_t)bdev->blk_size;
- u64_t elba_local = (ent->end_lba * GPT_BLKSIZE) / (u64_t)bdev->blk_size;
+ u64_t slba_local = udiv64(ent->start_lba * GPT_BLKSIZE, bdev->blk_size);
+ u64_t elba_local = udiv64(ent->end_lba * GPT_BLKSIZE, bdev->blk_size);
kprintf("%s: guid part#%d: %d..%d",
bdev->bdev_id,
u32_t crc = gpt_hdr->hdr_cksum;
gpt_hdr->hdr_cksum = 0;
if (crc32b((void*)gpt_hdr, sizeof(*gpt_hdr)) != crc) {
- kprintf(KWARN "checksum failed");
+ WARN("checksum failed");
// FUTURE check the backup header
return EINVAL;
}