if (m->disk && m->disk->id == disk->id
&& m->disk->dev->id == disk->dev->id
&& m->part_start == grub_partition_get_start (disk->partition)
- && m->part_size == grub_disk_get_size (disk))
+ && m->part_size == grub_disk_native_sectors (disk))
return 0;
}
grub_dprintf ("diskfilter", "Inserting %s (+%lld,%lld) into %s (%s)\n", disk->name,
(unsigned long long) grub_partition_get_start (disk->partition),
- (unsigned long long) grub_disk_get_size (disk),
+ (unsigned long long) grub_disk_native_sectors (disk),
array->name, diskfilter->name);
#ifdef GRUB_UTIL
grub_util_info ("Inserting %s (+%" GRUB_HOST_PRIuLONG_LONG ",%"
GRUB_HOST_PRIuLONG_LONG ") into %s (%s)\n", disk->name,
(unsigned long long) grub_partition_get_start (disk->partition),
- (unsigned long long) grub_disk_get_size (disk),
+ (unsigned long long) grub_disk_native_sectors (disk),
array->name, diskfilter->name);
array->driver = diskfilter;
#endif
struct grub_diskfilter_lv *lv;
/* FIXME: Check whether the update time of the superblocks are
the same. */
- if (pv->disk && grub_disk_get_size (disk) >= pv->part_size)
+ if (pv->disk && grub_disk_native_sectors (disk) >= pv->part_size)
return GRUB_ERR_NONE;
pv->disk = grub_disk_open (disk->name);
if (!pv->disk)
raid device, we shouldn't change it. */
pv->start_sector -= pv->part_start;
pv->part_start = grub_partition_get_start (disk->partition);
- pv->part_size = grub_disk_get_size (disk);
+ pv->part_size = grub_disk_native_sectors (disk);
#ifdef GRUB_UTIL
{
if (pv->disk && pv->disk->id == disk->id
&& pv->disk->dev->id == disk->dev->id
&& pv->part_start == grub_partition_get_start (disk->partition)
- && pv->part_size == grub_disk_get_size (disk))
+ && pv->part_size == grub_disk_native_sectors (disk))
{
if (vg_out)
*vg_out = vg;
/* Skip partition. */
return NULL;
- sector = grub_disk_get_size (disk);
+ sector = grub_disk_native_sectors (disk);
if (sector == GRUB_DISK_SIZE_UNKNOWN)
/* Not raid. */
return NULL;
if (ctx.hd->partition_start == 0
&& (ctx.hd->partition_size << (parent->log_sector_size
- GRUB_DISK_SECTOR_BITS))
- == grub_disk_get_size (parent))
+ == grub_disk_native_sectors (parent))
{
dev_name = grub_strdup (parent->name);
}
if (2 * GRUB_MD_SHA256->mdlen + 1 > GRUB_CRYPTODISK_MAX_UUID_LENGTH)
return NULL;
- sector = grub_disk_get_size (disk);
+ sector = grub_disk_native_sectors (disk);
if (sector == GRUB_DISK_SIZE_UNKNOWN || sector == 0)
return NULL;
newdev->modname = "geli";
- newdev->total_sectors = grub_disk_get_size (disk) - 1;
+ newdev->total_sectors = grub_disk_native_sectors (disk) - 1;
grub_memcpy (newdev->uuid, uuid, sizeof (newdev->uuid));
COMPILE_TIME_ASSERT (sizeof (newdev->uuid) >= 32 * 2 + 1);
return newdev;
if (dev->hash->mdlen > GRUB_CRYPTO_MAX_MDLEN)
return grub_error (GRUB_ERR_BUG, "mdlen is too long");
- sector = grub_disk_get_size (source);
+ sector = grub_disk_native_sectors (source);
if (sector == GRUB_DISK_SIZE_UNKNOWN || sector == 0)
return grub_error (GRUB_ERR_BUG, "not a geli");
/* LDM is never inside a partition. */
if (!has_ldm || disk->partition)
continue;
- sector = grub_disk_get_size (disk);
+ sector = grub_disk_native_sectors (disk);
if (sector == GRUB_DISK_SIZE_UNKNOWN)
continue;
sector--;
/* LDM is never inside a partition. */
if (!has_ldm || disk->partition)
continue;
- sector = grub_disk_get_size (disk);
+ sector = grub_disk_native_sectors (disk);
if (sector == GRUB_DISK_SIZE_UNKNOWN)
continue;
sector--;
newdev->offset_sectors = grub_be_to_cpu32 (header.payloadOffset);
newdev->source_disk = NULL;
newdev->log_sector_size = 9;
- newdev->total_sectors = grub_disk_get_size (disk) - newdev->offset_sectors;
+ newdev->total_sectors = grub_disk_native_sectors (disk) - newdev->offset_sectors;
grub_memcpy (newdev->uuid, uuid, sizeof (uuid));
newdev->modname = "luks";
crypt->log_sector_size = sizeof (unsigned int) * 8
- __builtin_clz ((unsigned int) segment.sector_size) - 1;
if (grub_strcmp (segment.size, "dynamic") == 0)
- crypt->total_sectors = grub_disk_get_size (source) - crypt->offset_sectors;
+ crypt->total_sectors = grub_disk_native_sectors (source) - crypt->offset_sectors;
else
crypt->total_sectors = grub_strtoull (segment.size, NULL, 10);
grub_uint64_t size;
grub_uint8_t minor_version;
- size = grub_disk_get_size (disk);
+ size = grub_disk_native_sectors (disk);
/* Check for an 1.x superblock.
* It's always aligned to a 4K boundary
struct grub_diskfilter_vg *ret;
/* The sector where the mdraid 0.90 superblock is stored, if available. */
- size = grub_disk_get_size (disk);
+ size = grub_disk_native_sectors (disk);
if (size == GRUB_DISK_SIZE_UNKNOWN)
/* not 0.9x raid. */
return NULL;
grub_off_t header_off;
struct cbfs_header head;
- if (grub_disk_get_size (disk) == GRUB_DISK_SIZE_UNKNOWN)
+ if (grub_disk_native_sectors (disk) == GRUB_DISK_SIZE_UNKNOWN)
goto fail;
- if (grub_disk_read (disk, grub_disk_get_size (disk) - 1,
+ if (grub_disk_read (disk, grub_disk_native_sectors (disk) - 1,
GRUB_DISK_SECTOR_SIZE - sizeof (ptr),
sizeof (ptr), &ptr))
goto fail;
ptr = grub_cpu_to_le32 (ptr);
- header_off = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
+ header_off = (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS)
+ (grub_int32_t) ptr;
if (grub_disk_read (disk, 0, header_off,
if (!data)
goto fail;
- data->cbfs_start = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
+ data->cbfs_start = (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS)
- (grub_be_to_cpu32 (head.romsize) - grub_be_to_cpu32 (head.offset));
- data->cbfs_end = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS)
+ data->cbfs_end = (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS)
- grub_be_to_cpu32 (head.bootblocksize);
data->cbfs_align = grub_be_to_cpu32 (head.align);
- if (data->cbfs_start >= (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS))
+ if (data->cbfs_start >= (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS))
goto fail;
- if (data->cbfs_end > (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS))
- data->cbfs_end = (grub_disk_get_size (disk) << GRUB_DISK_SECTOR_BITS);
+ if (data->cbfs_end > (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS))
+ data->cbfs_end = (grub_disk_native_sectors (disk) << GRUB_DISK_SECTOR_BITS);
data->next_hofs = data->cbfs_start;
partition_size = (grub_le_to_cpu64 (data->sblock.s_dev_size)
>> GRUB_DISK_SECTOR_BITS);
else
- partition_size = grub_disk_get_size (disk);
+ partition_size = grub_disk_native_sectors (disk);
if (partition_size != GRUB_DISK_SIZE_UNKNOWN)
{
/* Read second super block. */
desc.original = original;
/* Don't check back labels on CDROM. */
- if (grub_disk_get_size (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
+ if (grub_disk_native_sectors (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
vdevnum = VDEV_LABELS / 2;
for (label = 0; ubbest == NULL && label < vdevnum; label++)
= label * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT)
+ ((VDEV_SKIP_SIZE + VDEV_BOOT_HEADER_SIZE) >> SPA_MINBLOCKSHIFT)
+ (label < VDEV_LABELS / 2 ? 0 :
- ALIGN_DOWN (grub_disk_get_size (dev->disk), sizeof (vdev_label_t))
+ ALIGN_DOWN (grub_disk_native_sectors (dev->disk), sizeof (vdev_label_t))
- VDEV_LABELS * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT));
/* Read in the uberblock ring (128K). */
}
grub_uint64_t
-grub_disk_get_size (grub_disk_t disk)
+grub_disk_native_sectors (grub_disk_t disk)
{
if (disk->partition)
return grub_partition_get_len (disk->partition);
}
if (poff == 0
- && pend == grub_disk_get_size (parent))
+ && pend == grub_disk_native_sectors (parent))
{
grub_disk_close (parent);
*device = dname;
(grub_partition_get_start (dev->disk->partition) & 1) ? ".5" : "" );
else
grub_printf_ (N_(" - Sector size %uB"), 1 << dev->disk->log_sector_size);
- if (grub_disk_get_size (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
+ if (grub_disk_native_sectors (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
grub_puts_ (N_(" - Total size unknown"));
else
grub_printf (_(" - Total size %llu%sKiB"),
- (unsigned long long) (grub_disk_get_size (dev->disk) >> 1),
+ (unsigned long long) (grub_disk_native_sectors (dev->disk) >> 1),
/* TRANSLATORS: Replace dot with appropriate decimal separator for
your language. */
- (grub_disk_get_size (dev->disk) & 1) ? _(".5") : "");
+ (grub_disk_native_sectors (dev->disk) & 1) ? _(".5") : "");
}
if (dev)
hddp->partition_start = grub_partition_get_start (efidir_grub_dev->disk->partition)
>> (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS);
- hddp->partition_size = grub_disk_get_size (efidir_grub_dev->disk)
+ hddp->partition_size = grub_disk_native_sectors (efidir_grub_dev->disk)
>> (efidir_grub_dev->disk->log_sector_size - GRUB_DISK_SECTOR_BITS);
pathptr = hddp + 1;
#define GRUB_DISK_MAX_MAX_AGGLOMERATE ((1 << (30 - GRUB_DISK_CACHE_BITS - GRUB_DISK_SECTOR_BITS)) - 1)
-/* Return value of grub_disk_get_size() in case disk size is unknown. */
+/* Return value of grub_disk_native_sectors() in case disk size is unknown. */
#define GRUB_DISK_SIZE_UNKNOWN 0xffffffffffffffffULL
/* Convert to GRUB native disk sized sector from disk sized sector. */
const void *buf);
-grub_uint64_t EXPORT_FUNC(grub_disk_get_size) (grub_disk_t disk);
+grub_uint64_t EXPORT_FUNC(grub_disk_native_sectors) (grub_disk_t disk);
#if DISK_CACHE_STATS
void
grub_disk_addr_t dsize, addr;
grub_uint32_t buffer[32768];
- dsize = grub_disk_get_size (dev->disk);
+ dsize = grub_disk_native_sectors (dev->disk);
for (addr = 0; addr < dsize;
addr += sizeof (buffer) / GRUB_DISK_SECTOR_SIZE)
{
if (! dev || !dev->disk)
grub_util_error ("%s", grub_errmsg);
- dsize = grub_disk_get_size (dev->disk);
+ dsize = grub_disk_native_sectors (dev->disk);
for (addr = 0; addr < dsize;
addr += sizeof (buffer) / GRUB_DISK_SECTOR_SIZE)
{