[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 15/45] ide/atapi: Track tray locked state
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 15/45] ide/atapi: Track tray locked state |
Date: |
Fri, 02 Sep 2011 16:56:59 +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:
>> We already track it in BlockDriverState. Just like tray open/close
>> state, we should track it in the device models instead, because it's
>> device state.
>>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> hw/ide/atapi.c | 4 +++-
>> hw/ide/internal.h | 1 +
>> 2 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
>> index 08e1a7a..237657f 100644
>> --- a/hw/ide/atapi.c
>> +++ b/hw/ide/atapi.c
>> @@ -777,8 +777,9 @@ static void cmd_mode_sense(IDEState *s, uint8_t *buf)
>> buf[12] = 0x71;
>> buf[13] = 3 << 5;
>> buf[14] = (1 << 0) | (1 << 3) | (1 << 5);
>> - if (bdrv_is_locked(s->bs))
>> + if (s->tray_locked) {
>> buf[6] |= 1 << 1;
>> + }
>> buf[15] = 0x00;
>> cpu_to_ube16(&buf[16], 706);
>> buf[18] = 0;
>> @@ -820,6 +821,7 @@ static void cmd_test_unit_ready(IDEState *s, uint8_t
>> *buf)
>>
>> static void cmd_prevent_allow_medium_removal(IDEState *s, uint8_t* buf)
>> {
>> + s->tray_locked = buf[4] & 1;
>> bdrv_set_locked(s->bs, buf[4] & 1);
>> ide_atapi_cmd_ok(s);
>> }
>> diff --git a/hw/ide/internal.h b/hw/ide/internal.h
>> index cd8e977..3e56b45 100644
>> --- a/hw/ide/internal.h
>> +++ b/hw/ide/internal.h
>> @@ -443,6 +443,7 @@ struct IDEState {
>> uint8_t sense_key;
>> uint8_t asc;
>> bool tray_open;
>> + bool tray_locked;
>> uint8_t cdrom_changed;
>> int packet_transfer_size;
>> int elementary_transfer_size;
>
> Same as tray open/close status: Needs to be migrated.
Correct, but I chose to fix that separately, in PATCH 26/45. Note that
this patch neither breaks nor fixes anything. It just prepares the
ground for fixes.