Changeset View
Changeset View
Standalone View
Standalone View
head/stand/i386/libi386/biosdisk.c
Show First 20 Lines • Show All 685 Lines • ▼ Show 20 Lines | STAILQ_FOREACH(bd, bdi, bd_link) { | ||||
if ((bd->bd_flags & BD_NO_MEDIA) == BD_NO_MEDIA) | if ((bd->bd_flags & BD_NO_MEDIA) == BD_NO_MEDIA) | ||||
continue; | continue; | ||||
if (dev->dv_type != DEVT_DISK) | if (dev->dv_type != DEVT_DISK) | ||||
continue; | continue; | ||||
devd.dd.d_dev = dev; | devd.dd.d_dev = dev; | ||||
devd.dd.d_unit = i; | devd.dd.d_unit = i; | ||||
devd.d_slice = -1; | devd.d_slice = D_SLICENONE; | ||||
devd.d_partition = -1; | devd.d_partition = D_PARTNONE; | ||||
if (disk_open(&devd, | if (disk_open(&devd, | ||||
bd->bd_sectorsize * bd->bd_sectors, | bd->bd_sectorsize * bd->bd_sectors, | ||||
bd->bd_sectorsize) == 0) { | bd->bd_sectorsize) == 0) { | ||||
snprintf(line, sizeof(line), " %s%d", | snprintf(line, sizeof(line), " %s%d", | ||||
dev->dv_name, i); | dev->dv_name, i); | ||||
ret = disk_print(&devd, line, verbose); | ret = disk_print(&devd, line, verbose); | ||||
disk_close(&devd); | disk_close(&devd); | ||||
if (ret != 0) | if (ret != 0) | ||||
Show All 36 Lines | bd_disk_get_sectors(struct disk_devdesc *dev) | ||||
uint64_t size; | uint64_t size; | ||||
bd = bd_get_bdinfo(&dev->dd); | bd = bd_get_bdinfo(&dev->dd); | ||||
if (bd == NULL) | if (bd == NULL) | ||||
return (0); | return (0); | ||||
disk.dd.d_dev = dev->dd.d_dev; | disk.dd.d_dev = dev->dd.d_dev; | ||||
disk.dd.d_unit = dev->dd.d_unit; | disk.dd.d_unit = dev->dd.d_unit; | ||||
disk.d_slice = -1; | disk.d_slice = D_SLICENONE; | ||||
disk.d_partition = -1; | disk.d_partition = D_PARTNONE; | ||||
disk.d_offset = 0; | disk.d_offset = 0; | ||||
size = bd->bd_sectors * bd->bd_sectorsize; | size = bd->bd_sectors * bd->bd_sectorsize; | ||||
if (disk_open(&disk, size, bd->bd_sectorsize) == 0) { | if (disk_open(&disk, size, bd->bd_sectorsize) == 0) { | ||||
(void) disk_ioctl(&disk, DIOCGMEDIASIZE, &size); | (void) disk_ioctl(&disk, DIOCGMEDIASIZE, &size); | ||||
disk_close(&disk); | disk_close(&disk); | ||||
} | } | ||||
return (size / bd->bd_sectorsize); | return (size / bd->bd_sectorsize); | ||||
▲ Show 20 Lines • Show All 560 Lines • Show Last 20 Lines |