Kevin Wolf <kw...@redhat.com> writes:

> Am 03.08.2011 15:07, schrieb Markus Armbruster:
>> Signed-off-by: Markus Armbruster <arm...@redhat.com>
>> ---
>>  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.

Reply via email to