qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 05/23] ide: Convert verify commands to ide_cmd_table


From: Stefan Hajnoczi
Subject: [Qemu-devel] [PATCH 05/23] ide: Convert verify commands to ide_cmd_table handler
Date: Mon, 24 Jun 2013 11:10:17 +0200

From: Kevin Wolf <address@hidden>

Signed-off-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
 hw/ide/core.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index 057662d..bf2007a 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1046,6 +1046,16 @@ static bool cmd_identify(IDEState *s, uint8_t cmd)
     return true;
 }
 
+static bool cmd_verify(IDEState *s, uint8_t cmd)
+{
+    bool lba48 = (cmd == WIN_VERIFY_EXT);
+
+    /* do sector number check ? */
+    ide_cmd_lba48_transform(s, lba48);
+
+    return true;
+}
+
 #define HD_OK (1u << IDE_HD)
 #define CD_OK (1u << IDE_CD)
 #define CFA_OK (1u << IDE_CFATA)
@@ -1079,9 +1089,9 @@ static const struct {
     [CFA_WRITE_SECT_WO_ERASE]     = { NULL, CFA_OK },
     [WIN_MULTWRITE_EXT]           = { NULL, HD_CFA_OK },
     [WIN_WRITE_VERIFY]            = { NULL, HD_CFA_OK },
-    [WIN_VERIFY]                  = { NULL, HD_CFA_OK },
-    [WIN_VERIFY_ONCE]             = { NULL, HD_CFA_OK },
-    [WIN_VERIFY_EXT]              = { NULL, HD_CFA_OK },
+    [WIN_VERIFY]                  = { cmd_verify, HD_CFA_OK | SET_DSC },
+    [WIN_VERIFY_ONCE]             = { cmd_verify, HD_CFA_OK | SET_DSC },
+    [WIN_VERIFY_EXT]              = { cmd_verify, HD_CFA_OK | SET_DSC },
     [WIN_SEEK]                    = { NULL, HD_CFA_OK },
     [CFA_TRANSLATE_SECTOR]        = { NULL, CFA_OK },
     [WIN_DIAGNOSE]                = { NULL, ALL_OK },
@@ -1187,17 +1197,6 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val)
         ide_set_irq(s->bus);
         break;
 
-    case WIN_VERIFY_EXT:
-        lba48 = 1;
-        /* fall through */
-    case WIN_VERIFY:
-    case WIN_VERIFY_ONCE:
-        /* do sector number check ? */
-       ide_cmd_lba48_transform(s, lba48);
-        s->status = READY_STAT | SEEK_STAT;
-        ide_set_irq(s->bus);
-        break;
-
     case WIN_READ_EXT:
         lba48 = 1;
         /* fall through */
-- 
1.8.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]