disk: Replace code that calculates the log of sector size with grub_log2ull()
Signed-off-by: Glenn Washburn <development@efficientek.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
a79c567f6b
commit
351c9c2fd0
@ -181,10 +181,7 @@ grub_ata_identify (struct grub_ata *dev)
|
|||||||
if (secsize & (secsize - 1) || !secsize
|
if (secsize & (secsize - 1) || !secsize
|
||||||
|| secsize > 1048576)
|
|| secsize > 1048576)
|
||||||
secsize = 256;
|
secsize = 256;
|
||||||
for (dev->log_sector_size = 0;
|
dev->log_sector_size = grub_log2ull (secsize) + 1;
|
||||||
(1U << dev->log_sector_size) < secsize;
|
|
||||||
dev->log_sector_size++);
|
|
||||||
dev->log_sector_size++;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
dev->log_sector_size = 9;
|
dev->log_sector_size = 9;
|
||||||
|
|||||||
@ -523,9 +523,7 @@ grub_efidisk_open (const char *name, struct grub_disk *disk)
|
|||||||
if (m->block_size & (m->block_size - 1) || !m->block_size)
|
if (m->block_size & (m->block_size - 1) || !m->block_size)
|
||||||
return grub_error (GRUB_ERR_IO, "invalid sector size %d",
|
return grub_error (GRUB_ERR_IO, "invalid sector size %d",
|
||||||
m->block_size);
|
m->block_size);
|
||||||
for (disk->log_sector_size = 0;
|
disk->log_sector_size = grub_log2ull (m->block_size);
|
||||||
(1U << disk->log_sector_size) < m->block_size;
|
|
||||||
disk->log_sector_size++);
|
|
||||||
disk->data = d;
|
disk->data = d;
|
||||||
|
|
||||||
grub_dprintf ("efidisk", "opening %s succeeded\n", name);
|
grub_dprintf ("efidisk", "opening %s succeeded\n", name);
|
||||||
|
|||||||
@ -380,9 +380,7 @@ geli_scan (grub_disk_t disk, grub_cryptomount_args_t cargs)
|
|||||||
newdev->hash = GRUB_MD_SHA512;
|
newdev->hash = GRUB_MD_SHA512;
|
||||||
newdev->iv_hash = GRUB_MD_SHA256;
|
newdev->iv_hash = GRUB_MD_SHA256;
|
||||||
|
|
||||||
for (newdev->log_sector_size = 0;
|
newdev->log_sector_size = grub_log2ull (grub_le_to_cpu32 (header.sector_size));
|
||||||
(1U << newdev->log_sector_size) < grub_le_to_cpu32 (header.sector_size);
|
|
||||||
newdev->log_sector_size++);
|
|
||||||
|
|
||||||
if (grub_le_to_cpu32 (header.version) >= 5)
|
if (grub_le_to_cpu32 (header.version) >= 5)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -388,11 +388,7 @@ grub_biosdisk_open (const char *name, grub_disk_t disk)
|
|||||||
&& !(drp->bytes_per_sector & (drp->bytes_per_sector - 1))
|
&& !(drp->bytes_per_sector & (drp->bytes_per_sector - 1))
|
||||||
&& drp->bytes_per_sector >= 512
|
&& drp->bytes_per_sector >= 512
|
||||||
&& drp->bytes_per_sector <= 16384)
|
&& drp->bytes_per_sector <= 16384)
|
||||||
{
|
disk->log_sector_size = grub_log2ull (drp->bytes_per_sector);
|
||||||
for (disk->log_sector_size = 0;
|
|
||||||
(1 << disk->log_sector_size) < drp->bytes_per_sector;
|
|
||||||
disk->log_sector_size++);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1023,11 +1023,7 @@ grub_obdisk_open (const char *name, grub_disk_t disk)
|
|||||||
dev->num_blocks = GRUB_DISK_SIZE_UNKNOWN;
|
dev->num_blocks = GRUB_DISK_SIZE_UNKNOWN;
|
||||||
|
|
||||||
if (dev->block_size != 0)
|
if (dev->block_size != 0)
|
||||||
{
|
dev->log_sector_size = grub_log2ull (dev->block_size);
|
||||||
for (dev->log_sector_size = 0;
|
|
||||||
(1U << dev->log_sector_size) < dev->block_size;
|
|
||||||
dev->log_sector_size++);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
dev->log_sector_size = 9;
|
dev->log_sector_size = 9;
|
||||||
|
|
||||||
|
|||||||
@ -516,11 +516,7 @@ grub_ofdisk_open (const char *name, grub_disk_t disk)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
if (block_size != 0)
|
if (block_size != 0)
|
||||||
{
|
disk->log_sector_size = grub_log2ull (block_size);
|
||||||
for (disk->log_sector_size = 0;
|
|
||||||
(1U << disk->log_sector_size) < block_size;
|
|
||||||
disk->log_sector_size++);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
disk->log_sector_size = 9;
|
disk->log_sector_size = 9;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -620,9 +620,7 @@ grub_scsi_open (const char *name, grub_disk_t disk)
|
|||||||
grub_free (scsi);
|
grub_free (scsi);
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
for (disk->log_sector_size = 0;
|
disk->log_sector_size = grub_log2ull (scsi->blocksize);
|
||||||
(1U << disk->log_sector_size) < scsi->blocksize;
|
|
||||||
disk->log_sector_size++);
|
|
||||||
|
|
||||||
grub_dprintf ("scsi", "last_block=%" PRIuGRUB_UINT64_T ", blocksize=%u\n",
|
grub_dprintf ("scsi", "last_block=%" PRIuGRUB_UINT64_T ", blocksize=%u\n",
|
||||||
scsi->last_block, scsi->blocksize);
|
scsi->last_block, scsi->blocksize);
|
||||||
|
|||||||
@ -186,9 +186,7 @@ uboot_disk_open (const char *name, struct grub_disk *disk)
|
|||||||
if (d->block_size == 0)
|
if (d->block_size == 0)
|
||||||
return grub_error (GRUB_ERR_IO, "no block size");
|
return grub_error (GRUB_ERR_IO, "no block size");
|
||||||
|
|
||||||
for (disk->log_sector_size = 0;
|
disk->log_sector_size = grub_log2ull (d->block_size);
|
||||||
(1U << disk->log_sector_size) < d->block_size;
|
|
||||||
disk->log_sector_size++);
|
|
||||||
|
|
||||||
grub_dprintf ("ubootdisk", "(%s) blocksize=%d, log_sector_size=%d\n",
|
grub_dprintf ("ubootdisk", "(%s) blocksize=%d, log_sector_size=%d\n",
|
||||||
disk->name, d->block_size, disk->log_sector_size);
|
disk->name, d->block_size, disk->log_sector_size);
|
||||||
|
|||||||
@ -113,9 +113,7 @@ grub_virtdisk_open (const char *name, grub_disk_t disk)
|
|||||||
|| secsize > GRUB_XEN_PAGE_SIZE)
|
|| secsize > GRUB_XEN_PAGE_SIZE)
|
||||||
return grub_error (GRUB_ERR_IO, "unsupported sector size %d", secsize);
|
return grub_error (GRUB_ERR_IO, "unsupported sector size %d", secsize);
|
||||||
|
|
||||||
for (disk->log_sector_size = 0;
|
disk->log_sector_size = grub_log2ull (secsize);
|
||||||
(1U << disk->log_sector_size) < secsize; disk->log_sector_size++);
|
|
||||||
|
|
||||||
disk->total_sectors >>= disk->log_sector_size - 9;
|
disk->total_sectors >>= disk->log_sector_size - 9;
|
||||||
|
|
||||||
return GRUB_ERR_NONE;
|
return GRUB_ERR_NONE;
|
||||||
|
|||||||
@ -58,9 +58,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
|
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -116,9 +116,7 @@ grub_util_get_fd_size_volume (grub_util_fd_t fd __attribute__ ((unused)),
|
|||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -114,9 +114,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
sector_size = label.d_secsize;
|
sector_size = label.d_secsize;
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -61,9 +61,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
return -1;
|
return -1;
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -147,9 +147,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
|
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -83,9 +83,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
|
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -57,9 +57,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
|
|||||||
|
|
||||||
if (sector_size & (sector_size - 1) || !sector_size)
|
if (sector_size & (sector_size - 1) || !sector_size)
|
||||||
return -1;
|
return -1;
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (sector_size);
|
||||||
(1 << log_sector_size) < sector_size;
|
|
||||||
log_sector_size++);
|
|
||||||
|
|
||||||
if (log_secsize)
|
if (log_secsize)
|
||||||
*log_secsize = log_sector_size;
|
*log_secsize = log_sector_size;
|
||||||
|
|||||||
@ -185,9 +185,7 @@ grub_util_get_fd_size (grub_util_fd_t hd, const char *name_in,
|
|||||||
size = g.Cylinders.QuadPart;
|
size = g.Cylinders.QuadPart;
|
||||||
size *= g.TracksPerCylinder * g.SectorsPerTrack * g.BytesPerSector;
|
size *= g.TracksPerCylinder * g.SectorsPerTrack * g.BytesPerSector;
|
||||||
|
|
||||||
for (log_sector_size = 0;
|
log_sector_size = grub_log2ull (g.BytesPerSector);
|
||||||
(1 << log_sector_size) < g.BytesPerSector;
|
|
||||||
log_sector_size++);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user