X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2804ceee4ce65d49e9d52d0ed817317c0ac9efdc..0f73e6cc9945f9b4a074bb62b9708d1751fa3723:/lunaix-os/kernel/block/blkpart_gpt.c?ds=sidebyside diff --git a/lunaix-os/kernel/block/blkpart_gpt.c b/lunaix-os/kernel/block/blkpart_gpt.c index 22bb48b..3eee277 100644 --- a/lunaix-os/kernel/block/blkpart_gpt.c +++ b/lunaix-os/kernel/block/blkpart_gpt.c @@ -25,13 +25,13 @@ blkpart_parse(struct device* master, struct gpt_header* header) if (!bdev) return ENODEV; - int errno; + int errno = 0; u32_t ent_lba = (u32_t)header->ents_lba; struct gpt_entry* ents_parial = (struct gpt_entry*)valloc(GPT_BLKSIZE); for (size_t i = 0; i < header->ents_len; i++) { if (!(i % ENT_PER_BLK)) { - errno = master->read( + errno = master->ops.read( master, ents_parial, LBA2OFF(ent_lba++), GPT_BLKSIZE); if (errno < 0) { goto done; @@ -46,7 +46,8 @@ blkpart_parse(struct device* master, struct gpt_header* header) } // Convert UEFI's 512B LB representation into local LBA range. - u64_t slba_local = (ent->start_lba * GPT_BLKSIZE) / bdev->blk_size; + 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; kprintf("%s: guid part#%d: %d..%d\n", @@ -69,7 +70,8 @@ blkpart_probegpt(struct device* master) int errno; struct gpt_header* gpt_hdr = (struct gpt_header*)valloc(GPT_BLKSIZE); - if ((errno = master->read(master, gpt_hdr, LBA2OFF(1), LBA2OFF(1))) < 0) { + if ((errno = master->ops.read(master, gpt_hdr, LBA2OFF(1), LBA2OFF(1))) < + 0) { goto done; }