david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Always increase number of BIOS drives when registering

This commit is contained in:
Michael Brown 2007-07-09 20:42:04 +01:00
parent b90d321dfb
commit cd7e296cbe
1 changed files with 5 additions and 3 deletions

View File

@ -580,11 +580,9 @@ void register_int13_drive ( struct int13_drive *drive ) {
get_real ( num_drives, BDA_SEG, BDA_NUM_DRIVES );
if ( ! drive->drive )
drive->drive = ( num_drives | 0x80 );
num_drives++;
if ( num_drives <= ( drive->drive & 0x7f ) )
num_drives = ( ( drive->drive & 0x7f ) + 1 );
num_drives = 2;
put_real ( num_drives, BDA_SEG, BDA_NUM_DRIVES );
DBG ( "Registered INT13 drive %02x with C/H/S geometry %d/%d/%d\n",
@ -612,6 +610,10 @@ void unregister_int13_drive ( struct int13_drive *drive ) {
/* Remove from list of emulated drives */
list_del ( &drive->list );
/* Should adjust BIOS drive count, but it's difficult to do so
* reliably.
*/
DBG ( "Unregistered INT13 drive %02x\n", drive->drive );
/* Unhook INT 13 vector if no more drives */