[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 10/45] ide/atapi: Track tray open/close state
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 10/45] ide/atapi: Track tray open/close state |
Date: |
Wed, 3 Aug 2011 15:07:49 +0200 |
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 <address@hidden>
---
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;
--
1.7.6
- Re: [Qemu-devel] [PATCH v2 07/45] ide: Use a table to declare which drive kinds accept each command, (continued)
- [Qemu-devel] [PATCH v2 03/45] block: Split change_cb() into change_media_cb(), resize_cb(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 01/45] block: Attach non-qdev devices as well, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 13/45] block: Revert entanglement of bdrv_is_inserted() with tray status, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 15/45] ide/atapi: Track tray locked state, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 11/45] scsi-disk: Factor out scsi_disk_emulate_start_stop(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 05/45] ide: Clean up case label indentation in ide_exec_cmd(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 09/45] ide/atapi: Clean up misleading name in cmd_start_stop_unit(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 10/45] ide/atapi: Track tray open/close state,
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 24/45] scsi-disk: Avoid physical/virtual tray state mismatch, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 33/45] xen: Clean up pci_piix3_xen_ide_unplug()'s test for "not a CD", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 21/45] ide/atapi: Don't fail eject when tray is already open, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 25/45] ide: Give vmstate structs internal linkage where possible, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 34/45] spitz tosa: Simplify "drive is suitable for microdrive" test, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 42/45] block: Reset buffer alignment on detach, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 22/45] ide/atapi: Avoid physical/virtual tray state mismatch, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 26/45] ide/atapi: Preserve tray state on migration, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 39/45] hw: Trim superfluous #include "block_int.h", Markus Armbruster, 2011/08/03