david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[int13] Fix number of sectors returned by INT 13,15

INT 13,15 should return the number of sectors, not the number of
cylinders.
This commit is contained in:
Michael Brown 2009-11-18 00:50:45 +00:00
parent 5bee2a2991
commit 89de3e29e1
1 changed files with 6 additions and 2 deletions

View File

@ -207,9 +207,13 @@ static int int13_get_parameters ( struct int13_drive *drive,
*/
static int int13_get_disk_type ( struct int13_drive *drive,
struct i386_all_regs *ix86 ) {
uint32_t blocks;
DBG ( "Get disk type\n" );
ix86->regs.cx = ( drive->cylinders >> 16 );
ix86->regs.dx = ( drive->cylinders & 0xffff );
blocks = ( ( drive->blockdev->blocks <= 0xffffffffUL ) ?
drive->blockdev->blocks : 0xffffffffUL );
ix86->regs.cx = ( blocks >> 16 );
ix86->regs.dx = ( blocks & 0xffff );
return INT13_DISK_TYPE_HDD;
}