|
|
| |
LOG_ENTRY(); | LOG_ENTRY(); |
| |
/* Set defaults */ |
|
disk->geometry.heads = 255; |
|
disk->geometry.sectors_per_track = 63; |
|
|
|
rc = get_partition_table_geometry(disk); | rc = get_partition_table_geometry(disk); |
| |
if (rc != 0) { | if (rc != 0) { |
get_kernel_geometry(disk); |
rc = get_kernel_geometry(disk); |
|
} |
|
|
|
/* Set defaults if no valid geometry was found. */ |
|
if (disk->geometry.heads == 0) { |
|
LOG_DEBUG("Disk %s: Heads is zero - setting to 255.\n", |
|
disk->name); |
|
disk->geometry.heads = 255; |
|
} |
|
if (disk->geometry.sectors_per_track == 0) { |
|
LOG_DEBUG("Disk %s: Sectors-per-track is zero - " |
|
"setting to 63.\n", disk->name); |
|
disk->geometry.sectors_per_track = 63; |
} | } |
| |
|
/* Calculate number of cylinders based on other geometry fields. */ |
disk->geometry.cylinders = disk->size / | disk->geometry.cylinders = disk->size / |
(disk->geometry.heads * | (disk->geometry.heads * |
disk->geometry.sectors_per_track * | disk->geometry.sectors_per_track * |