From f751373219d12748877ae6652dcbb4a9b45af9f5 Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Tue, 21 Apr 2009 10:18:42 +0000 Subject: [PATCH] - minor bugfix in the cdrom media change detection (ported from Qemu) --- bochs/iodev/harddrv.cc | 9 ++++++--- bochs/iodev/harddrv.h | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bochs/iodev/harddrv.cc b/bochs/iodev/harddrv.cc index f6c4a43d1..47961d03e 100644 --- a/bochs/iodev/harddrv.cc +++ b/bochs/iodev/harddrv.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: harddrv.cc,v 1.225 2009-04-05 16:28:02 vruppert Exp $ +// $Id: harddrv.cc,v 1.226 2009-04-21 10:18:42 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -173,7 +173,7 @@ void bx_hard_drive_c::init(void) char ata_name[20]; bx_list_c *base; - BX_DEBUG(("Init $Id: harddrv.cc,v 1.225 2009-04-05 16:28:02 vruppert Exp $")); + BX_DEBUG(("Init $Id: harddrv.cc,v 1.226 2009-04-21 10:18:42 vruppert Exp $")); for (channel=0; channelget_param_bool("status", base)->set(1); BX_SELECTED_DRIVE(channel).sense.sense_key = SENSE_UNIT_ATTENTION; - BX_SELECTED_DRIVE(channel).sense.asc = 0; + BX_SELECTED_DRIVE(channel).sense.asc = ASC_MEDIUM_MAY_HAVE_CHANGED; BX_SELECTED_DRIVE(channel).sense.ascq = 0; raise_interrupt(channel); } diff --git a/bochs/iodev/harddrv.h b/bochs/iodev/harddrv.h index f545db365..b2aa59bc0 100644 --- a/bochs/iodev/harddrv.h +++ b/bochs/iodev/harddrv.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: harddrv.h,v 1.54 2009-02-08 09:05:52 vruppert Exp $ +// $Id: harddrv.h,v 1.55 2009-04-21 10:18:42 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -38,6 +38,7 @@ typedef enum _asc { ASC_ILLEGAL_OPCODE = 0x20, ASC_LOGICAL_BLOCK_OOR = 0x21, ASC_INV_FIELD_IN_CMD_PACKET = 0x24, + ASC_MEDIUM_MAY_HAVE_CHANGED = 0x28, ASC_SAVING_PARAMETERS_NOT_SUPPORTED = 0x39, ASC_MEDIUM_NOT_PRESENT = 0x3a } asc_t;