mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Fix mbrfs partition size and length calculation.
This commit is contained in:
parent
a6bb538bcf
commit
24d8725a3e
1 changed files with 4 additions and 4 deletions
|
@ -90,23 +90,23 @@ bool is_extended_partition(const struct partition* partition)
|
||||||
uint64_t partition_get_start(const struct partition* partition)
|
uint64_t partition_get_start(const struct partition* partition)
|
||||||
{
|
{
|
||||||
if ( !is_48bit_lba_partition(partition) )
|
if ( !is_48bit_lba_partition(partition) )
|
||||||
return partition->start_sector * 512;
|
return (uint64_t) partition->start_sector * 512;
|
||||||
const struct partition_lba48* partition_lba48 =
|
const struct partition_lba48* partition_lba48 =
|
||||||
(const struct partition_lba48*) partition;
|
(const struct partition_lba48*) partition;
|
||||||
uint64_t lower = partition_lba48->start_sector;
|
uint64_t lower = partition_lba48->start_sector;
|
||||||
uint64_t higher = partition_lba48->start_sector_high;
|
uint64_t higher = partition_lba48->start_sector_high;
|
||||||
return ((lower << 48) + higher) * 512;
|
return ((higher << 32) + lower) * 512;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t partition_get_length(const struct partition* partition)
|
uint64_t partition_get_length(const struct partition* partition)
|
||||||
{
|
{
|
||||||
if ( !is_48bit_lba_partition(partition) )
|
if ( !is_48bit_lba_partition(partition) )
|
||||||
return partition->total_sectors * 512;
|
return (uint64_t) partition->total_sectors * 512;
|
||||||
const struct partition_lba48* partition_lba48 =
|
const struct partition_lba48* partition_lba48 =
|
||||||
(const struct partition_lba48*) partition;
|
(const struct partition_lba48*) partition;
|
||||||
uint64_t lower = partition_lba48->total_sectors;
|
uint64_t lower = partition_lba48->total_sectors;
|
||||||
uint64_t higher = partition_lba48->total_sectors_high;
|
uint64_t higher = partition_lba48->total_sectors_high;
|
||||||
return ((lower << 48) + higher) * 512;
|
return ((higher << 32) + lower) * 512;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_partition_used(const struct partition* partition)
|
bool is_partition_used(const struct partition* partition)
|
||||||
|
|
Loading…
Add table
Reference in a new issue