From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58157) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzQrJ-0006mU-I5 for qemu-devel@nongnu.org; Fri, 02 Sep 2011 06:20:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QzQrI-0007hX-Ej for qemu-devel@nongnu.org; Fri, 02 Sep 2011 06:20:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53443) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzQrI-0007hO-5h for qemu-devel@nongnu.org; Fri, 02 Sep 2011 06:20:24 -0400 Message-ID: <4E60AE93.6090507@redhat.com> Date: Fri, 02 Sep 2011 12:23:15 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <1312376904-16115-1-git-send-email-armbru@redhat.com> <1312376904-16115-11-git-send-email-armbru@redhat.com> In-Reply-To: <1312376904-16115-11-git-send-email-armbru@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 10/45] ide/atapi: Track tray open/close state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: quintela@redhat.com, stefano.stabellini@eu.citrix.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, hare@suse.de, amit.shah@redhat.com, hch@lst.de Am 03.08.2011 15:07, schrieb Markus Armbruster: > We already track it in BlockDriverState since commit 4be9762a. As > discussed in that commit's message, we should track it in the device > device models instead, because it's device state. > > Signed-off-by: Markus Armbruster > --- > hw/ide/atapi.c | 6 +++++- > hw/ide/internal.h | 1 + > 2 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c > index 17fbef8..96f7c31 100644 > --- a/hw/ide/atapi.c > +++ b/hw/ide/atapi.c > @@ -510,7 +510,7 @@ static unsigned int event_status_media(IDEState *s, > uint8_t event_code, media_status; > > media_status = 0; > - if (s->bs->tray_open) { > + if (s->tray_open) { > media_status = MS_TRAY_OPEN; > } else if (bdrv_is_inserted(s->bs)) { > media_status = MS_MEDIA_PRESENT; > @@ -915,6 +915,10 @@ static void cmd_start_stop_unit(IDEState *s, uint8_t* buf) > ide_atapi_cmd_error(s, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); > break; > } > + > + if (loej && !err) { > + s->tray_open = !start; > + } > } > > static void cmd_mechanism_status(IDEState *s, uint8_t* buf) > diff --git a/hw/ide/internal.h b/hw/ide/internal.h > index 46e84fa..cd8e977 100644 > --- a/hw/ide/internal.h > +++ b/hw/ide/internal.h > @@ -442,6 +442,7 @@ struct IDEState { > struct unreported_events events; > uint8_t sense_key; > uint8_t asc; > + bool tray_open; > uint8_t cdrom_changed; > int packet_transfer_size; > int elementary_transfer_size; Probably needs to be migrated. Kevin