[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 11/45] scsi-disk: Factor out scsi_disk_emulat
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 11/45] scsi-disk: Factor out scsi_disk_emulate_start_stop() |
Date: |
Fri, 02 Sep 2011 16:55:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Kevin Wolf <address@hidden> writes:
> Am 03.08.2011 15:07, schrieb Markus Armbruster:
>> 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 */
>
> So here we actually had the comment before. Can we retain it?
We never had it in atapi.c, actually.
The fact that my scsi_disk_emulate_command() is very similar to
atapi.c's cmd_start_stop_unit() is no accident. Whatever comment I'll
add to atapi.c, I'll add here, too.