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?
Kevin