Remove INT 13,4b handler; it represents an incomplete feature (CD-ROM
authorMichael Brown <mcb30@etherboot.org>
Thu, 19 Jul 2007 10:16:05 +0000 (11:16 +0100)
committerMichael Brown <mcb30@etherboot.org>
Thu, 19 Jul 2007 10:16:05 +0000 (11:16 +0100)
emulation support) for an unknown purpose, and breaks grub.

src/arch/i386/interface/pcbios/int13.c

index 7d9de7e..94b5730 100644 (file)
@@ -317,38 +317,6 @@ static int int13_get_extended_parameters ( struct int13_drive *drive,
        return 0;
 }
 
-/**
- * INT 13, 4b - Get CD-ROM status / terminate emulation
- *
- * @v drive            Emulated drive
- * @v ds:si            El Torito specification packet to fill in
- * @ret status         Status code
- */
-static int int13_cdrom_status_terminate ( struct int13_drive *drive,
-                                         struct i386_all_regs *ix86 ) {
-       struct int13_cdrom_specification specification;
-       unsigned int max_cylinder = drive->cylinders - 1;
-       unsigned int max_head = drive->heads - 1;
-       unsigned int max_sector = drive->sectors_per_track; /* sic */
-
-       DBG ( "Get CD-ROM emulation parameters to %04x:%04x\n",
-             ix86->segs.ds, ix86->regs.di );
-
-       memset ( &specification, 0, sizeof ( specification ) );
-       specification.size = sizeof ( specification );
-       specification.drive = drive->drive;
-       specification.cyl = ( max_cylinder & 0xff );
-       specification.cyl_sector = ( ( ( max_cylinder >> 8 ) << 6 ) |
-                                    max_sector );
-       specification.head = max_head;
-
-       DBG_HD ( &specification, sizeof ( specification ) );
-
-       copy_to_real ( ix86->segs.ds, ix86->regs.si, &specification,
-                      sizeof ( specification ) );
-       return 0;
-}
-
 /**
  * INT 13 handler
  *
@@ -401,9 +369,6 @@ static void int13 ( struct i386_all_regs *ix86 ) {
                case INT13_GET_EXTENDED_PARAMETERS:
                        status = int13_get_extended_parameters ( drive, ix86 );
                        break;
-               case INT13_CDROM_STATUS_TERMINATE:
-                       status = int13_cdrom_status_terminate ( drive, ix86 );
-                       break;
                default:
                        DBG ( "*** Unrecognised INT 13 ***\n" );
                        status = -INT13_STATUS_INVALID;