git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: make pci device driver loading passive, pci bus scanner will not load them...
[lunaix-os.git]
/
lunaix-os
/
kernel
/
block
/
blkpart_gpt.c
diff --git
a/lunaix-os/kernel/block/blkpart_gpt.c
b/lunaix-os/kernel/block/blkpart_gpt.c
index 85c87e7e51e5a973d99fb08d60587e0c6f2eac12..033fa0abe90fa222aa11121b9748ed7002a12f3e 100644
(file)
--- a/
lunaix-os/kernel/block/blkpart_gpt.c
+++ b/
lunaix-os/kernel/block/blkpart_gpt.c
@@
-8,7
+8,7
@@
#include <lib/crc.h>
#define GPT_BLKSIZE 512
#include <lib/crc.h>
#define GPT_BLKSIZE 512
-#define LBA2OFF(lba) ((lba)
*
GPT_BLKSIZE)
+#define LBA2OFF(lba) ((lba)
*
GPT_BLKSIZE)
#define ENT_PER_BLK (GPT_BLKSIZE / sizeof(struct gpt_entry))
#define GPTSIG_LO 0x20494645UL
#define ENT_PER_BLK (GPT_BLKSIZE / sizeof(struct gpt_entry))
#define GPTSIG_LO 0x20494645UL
@@
-31,7
+31,7
@@
blkpart_parse(struct device* master, struct gpt_header* header)
for (size_t i = 0; i < header->ents_len; i++) {
if (!(i % ENT_PER_BLK)) {
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;
master, ents_parial, LBA2OFF(ent_lba++), GPT_BLKSIZE);
if (errno < 0) {
goto done;
@@
-46,10
+46,11
@@
blkpart_parse(struct device* master, struct gpt_header* header)
}
// Convert UEFI's 512B LB representation into local LBA range.
}
// 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;
u64_t elba_local = (ent->end_lba * GPT_BLKSIZE) / (u64_t)bdev->blk_size;
- kprintf("%s: guid part#%d: %d..%d
\n
",
+ kprintf("%s: guid part#%d: %d..%d",
bdev->bdev_id,
i,
(u32_t)slba_local,
bdev->bdev_id,
i,
(u32_t)slba_local,
@@
-69,7
+70,8
@@
blkpart_probegpt(struct device* master)
int errno;
struct gpt_header* gpt_hdr = (struct gpt_header*)valloc(GPT_BLKSIZE);
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;
}
goto done;
}
@@
-81,7
+83,7
@@
blkpart_probegpt(struct device* master)
u32_t crc = gpt_hdr->hdr_cksum;
gpt_hdr->hdr_cksum = 0;
if (crc32b((void*)gpt_hdr, sizeof(*gpt_hdr)) != crc) {
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\n
");
+
WARN("checksum failed
");
// FUTURE check the backup header
return EINVAL;
}
// FUTURE check the backup header
return EINVAL;
}