diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2010-07-30 21:12:24 +0200 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-07-30 21:12:24 +0200 |
commit | cdc6f542007a6aee0b18a5d616d031c750691e7a (patch) | |
tree | c14a02f6cdb227350b9f173fb36b78358cca5421 /hw/ide | |
parent | 18e9ea8a3f36b0a3845e1ac6d8acd180063bed8f (diff) | |
parent | 199630b62ec7cc5efd6f860ff545b449c7b5cdb8 (diff) |
Merge branch 'for-anthony' of git://repo.or.cz/qemu/kevin
* 'for-anthony' of git://repo.or.cz/qemu/kevin:
Fix -snapshot deleting images on disk change
block: Use error codes from lower levels for error message
block: default to 0 minimal / optiomal I/O size
move 'unsafe' to end of caching modes in help
virtio-blk: Create exit function to unregister savevm
block migration: propagate return value when bdrv_write() returns < 0
ide/atapi: add support for GET EVENT STATUS NOTIFICATION
Diffstat (limited to 'hw/ide')
-rw-r--r-- | hw/ide/core.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c index 56aed935c9..631673fc0f 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -1643,6 +1643,21 @@ static void ide_atapi_cmd(IDEState *s) ide_atapi_cmd_reply(s, len, max_len); break; } + case GPCMD_GET_EVENT_STATUS_NOTIFICATION: + max_len = ube16_to_cpu(packet + 7); + + if (packet[1] & 0x01) { /* polling */ + /* We don't support any event class (yet). */ + cpu_to_ube16(buf, 0x00); /* No event descriptor returned */ + buf[2] = 0x80; /* No Event Available (NEA) */ + buf[3] = 0x00; /* Empty supported event classes */ + ide_atapi_cmd_reply(s, 4, max_len); + } else { /* asynchronous mode */ + /* Only polling is supported, asynchronous mode is not. */ + ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST, + ASC_INV_FIELD_IN_CMD_PACKET); + } + break; default: ide_atapi_cmd_error(s, SENSE_ILLEGAL_REQUEST, ASC_ILLEGAL_OPCODE); |