|
@@ -317,38 +317,6 @@ static int int13_get_extended_parameters ( struct int13_drive *drive,
|
317
|
317
|
return 0;
|
318
|
318
|
}
|
319
|
319
|
|
320
|
|
-/**
|
321
|
|
- * INT 13, 4b - Get CD-ROM status / terminate emulation
|
322
|
|
- *
|
323
|
|
- * @v drive Emulated drive
|
324
|
|
- * @v ds:si El Torito specification packet to fill in
|
325
|
|
- * @ret status Status code
|
326
|
|
- */
|
327
|
|
-static int int13_cdrom_status_terminate ( struct int13_drive *drive,
|
328
|
|
- struct i386_all_regs *ix86 ) {
|
329
|
|
- struct int13_cdrom_specification specification;
|
330
|
|
- unsigned int max_cylinder = drive->cylinders - 1;
|
331
|
|
- unsigned int max_head = drive->heads - 1;
|
332
|
|
- unsigned int max_sector = drive->sectors_per_track; /* sic */
|
333
|
|
-
|
334
|
|
- DBG ( "Get CD-ROM emulation parameters to %04x:%04x\n",
|
335
|
|
- ix86->segs.ds, ix86->regs.di );
|
336
|
|
-
|
337
|
|
- memset ( &specification, 0, sizeof ( specification ) );
|
338
|
|
- specification.size = sizeof ( specification );
|
339
|
|
- specification.drive = drive->drive;
|
340
|
|
- specification.cyl = ( max_cylinder & 0xff );
|
341
|
|
- specification.cyl_sector = ( ( ( max_cylinder >> 8 ) << 6 ) |
|
342
|
|
- max_sector );
|
343
|
|
- specification.head = max_head;
|
344
|
|
-
|
345
|
|
- DBG_HD ( &specification, sizeof ( specification ) );
|
346
|
|
-
|
347
|
|
- copy_to_real ( ix86->segs.ds, ix86->regs.si, &specification,
|
348
|
|
- sizeof ( specification ) );
|
349
|
|
- return 0;
|
350
|
|
-}
|
351
|
|
-
|
352
|
320
|
/**
|
353
|
321
|
* INT 13 handler
|
354
|
322
|
*
|
|
@@ -401,9 +369,6 @@ static void int13 ( struct i386_all_regs *ix86 ) {
|
401
|
369
|
case INT13_GET_EXTENDED_PARAMETERS:
|
402
|
370
|
status = int13_get_extended_parameters ( drive, ix86 );
|
403
|
371
|
break;
|
404
|
|
- case INT13_CDROM_STATUS_TERMINATE:
|
405
|
|
- status = int13_cdrom_status_terminate ( drive, ix86 );
|
406
|
|
- break;
|
407
|
372
|
default:
|
408
|
373
|
DBG ( "*** Unrecognised INT 13 ***\n" );
|
409
|
374
|
status = -INT13_STATUS_INVALID;
|