[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 17/23] ide: Clean up ide_exec_cmd()
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 17/23] ide: Clean up ide_exec_cmd() |
Date: |
Mon, 24 Jun 2013 11:10:29 +0200 |
From: Kevin Wolf <address@hidden>
All commands are now converted to ide_cmd_table handlers, so it can be
unconditional now and the old switch block can go.
Signed-off-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
hw/ide/core.c | 36 ++++++++++++------------------------
1 file changed, 12 insertions(+), 24 deletions(-)
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 1c8f414..03d1cfa 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1694,6 +1694,7 @@ static bool ide_cmd_permitted(IDEState *s, uint32_t cmd)
void ide_exec_cmd(IDEBus *bus, uint32_t val)
{
IDEState *s;
+ bool complete;
#if defined(DEBUG_IDE)
printf("ide: CMD=%02x\n", val);
@@ -1708,37 +1709,24 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val)
return;
if (!ide_cmd_permitted(s, val)) {
- goto abort_cmd;
+ ide_abort_command(s);
+ ide_set_irq(s->bus);
+ return;
}
- if (ide_cmd_table[val].handler != NULL) {
- bool complete;
-
- s->status = READY_STAT | BUSY_STAT;
- s->error = 0;
-
- complete = ide_cmd_table[val].handler(s, val);
- if (complete) {
- s->status &= ~BUSY_STAT;
- assert(!!s->error == !!(s->status & ERR_STAT));
+ s->status = READY_STAT | BUSY_STAT;
+ s->error = 0;
- if ((ide_cmd_table[val].flags & SET_DSC) && !s->error) {
- s->status |= SEEK_STAT;
- }
+ complete = ide_cmd_table[val].handler(s, val);
+ if (complete) {
+ s->status &= ~BUSY_STAT;
+ assert(!!s->error == !!(s->status & ERR_STAT));
- ide_set_irq(s->bus);
+ if ((ide_cmd_table[val].flags & SET_DSC) && !s->error) {
+ s->status |= SEEK_STAT;
}
- return;
- }
-
- switch(val) {
- default:
- /* should not be reachable */
- abort_cmd:
- ide_abort_command(s);
ide_set_irq(s->bus);
- break;
}
}
--
1.8.1.4
- [Qemu-devel] [PATCH 09/23] ide: Convert READ NATIVE MAX ADDRESS to ide_cmd_table handler, (continued)
- [Qemu-devel] [PATCH 09/23] ide: Convert READ NATIVE MAX ADDRESS to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 10/23] ide: Convert CHECK POWER MDOE to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 08/23] ide: Convert DMA read/write commands to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 07/23] ide: Convert PIO read/write commands to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 11/23] ide: Convert SET FEATURES to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 12/23] ide: Convert FLUSH CACHE to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 13/23] ide: Convert SEEK to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 14/23] ide: Convert ATAPI commands to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 15/23] ide: Convert CF-ATA commands to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 16/23] ide: Convert SMART commands to ide_cmd_table handler, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 17/23] ide: Clean up ide_exec_cmd(),
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH 18/23] Revert "block: Disable driver-specific options for 1.5", Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 19/23] qcow2: Add refcount update reason to all callers, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 20/23] qcow2: Options to enable discard for freed clusters, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 23/23] vmdk: refuse to open higher version than supported, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 21/23] qcow2: Batch discards, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH 22/23] block: Always enable discard on the protocol level, Stefan Hajnoczi, 2013/06/24