mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Fix CDROM change, by Anthony Liguori.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2262 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
@@ -1481,6 +1481,17 @@ static void ide_atapi_cmd(IDEState *s)
|
||||
}
|
||||
}
|
||||
|
||||
/* called when the inserted state of the media has changed */
|
||||
static void cdrom_change_cb(void *opaque)
|
||||
{
|
||||
IDEState *s = opaque;
|
||||
int64_t nb_sectors;
|
||||
|
||||
/* XXX: send interrupt too */
|
||||
bdrv_get_geometry(s->bs, &nb_sectors);
|
||||
s->nb_sectors = nb_sectors;
|
||||
}
|
||||
|
||||
static void ide_cmd_lba48_transform(IDEState *s, int lba48)
|
||||
{
|
||||
s->lba48 = lba48;
|
||||
@@ -2111,6 +2122,7 @@ static void ide_init2(IDEState *ide_state,
|
||||
}
|
||||
if (bdrv_get_type_hint(s->bs) == BDRV_TYPE_CDROM) {
|
||||
s->is_cdrom = 1;
|
||||
bdrv_set_change_cb(s->bs, cdrom_change_cb, s);
|
||||
}
|
||||
}
|
||||
s->drive_serial = drive_serial++;
|
||||
|
||||
Reference in New Issue
Block a user