[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 11/45] scsi-disk: Factor out scsi_disk_emulate_st
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 11/45] scsi-disk: Factor out scsi_disk_emulate_start_stop() |
Date: |
Wed, 3 Aug 2011 15:07:50 +0200 |
Signed-off-by: Markus Armbruster <address@hidden>
---
hw/scsi-disk.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index fa198f9..d549cb7 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -820,6 +820,18 @@ static int scsi_disk_emulate_read_toc(SCSIRequest *req,
uint8_t *outbuf)
return toclen;
}
+static void scsi_disk_emulate_start_stop(SCSIDiskReq *r)
+{
+ SCSIRequest *req = &r->req;
+ SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, req->dev);
+ bool start = req->cmd.buf[4] & 1;
+ bool loej = req->cmd.buf[4] & 2;
+
+ if (s->qdev.type == TYPE_ROM && loej) {
+ bdrv_eject(s->bs, !start);
+ }
+}
+
static int scsi_disk_emulate_command(SCSIDiskReq *r, uint8_t *outbuf)
{
SCSIRequest *req = &r->req;
@@ -873,10 +885,7 @@ static int scsi_disk_emulate_command(SCSIDiskReq *r,
uint8_t *outbuf)
goto illegal_request;
break;
case START_STOP:
- if (s->qdev.type == TYPE_ROM && (req->cmd.buf[4] & 2)) {
- /* load/eject medium */
- bdrv_eject(s->bs, !(req->cmd.buf[4] & 1));
- }
+ scsi_disk_emulate_start_stop(r);
break;
case ALLOW_MEDIUM_REMOVAL:
bdrv_set_locked(s->bs, req->cmd.buf[4] & 1);
--
1.7.6
- Re: [Qemu-devel] [PATCH v2 12/45] scsi-disk: Track tray open/close state, (continued)
- [Qemu-devel] [PATCH v2 06/45] ide: Fix ATA command READ to set ATAPI signature for CD-ROM, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 04/45] ide: Update command code definitions as per ACS-2 Table B.2, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 07/45] ide: Use a table to declare which drive kinds accept each command, Markus Armbruster, 2011/08/03
- [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 <=
- [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, 2011/08/03
- [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