qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v3 2/9] ide: Use IDEState member dev for "device con


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH v3 2/9] ide: Use IDEState member dev for "device connected" test
Date: Thu, 30 Jan 2014 13:16:31 +0100

Testing dev is more obvious than testing bs, in my opinion.

Signed-off-by: Markus Armbruster <address@hidden>
---
 hw/ide/ahci.c       |  8 ++++----
 hw/ide/core.c       | 56 ++++++++++++++++++++++++++++-------------------------
 hw/ide/microdrive.c |  2 +-
 hw/ide/qdev.c       |  2 +-
 4 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index fbea9e8..eb6a6fe 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -85,7 +85,7 @@ static uint32_t  ahci_port_read(AHCIState *s, int port, int 
offset)
         val = pr->sig;
         break;
     case PORT_SCR_STAT:
-        if (s->dev[port].port.ifs[0].bs) {
+        if (s->dev[port].port.ifs[0].dev) {
             val = SATA_SCR_SSTATUS_DET_DEV_PRESENT_PHY_UP |
                   SATA_SCR_SSTATUS_SPD_GEN1 | SATA_SCR_SSTATUS_IPM_ACTIVE;
         } else {
@@ -497,7 +497,7 @@ static void ahci_reset_port(AHCIState *s, int port)
     d->init_d2h_sent = false;
 
     ide_state = &s->dev[port].port.ifs[0];
-    if (!ide_state->bs) {
+    if (!ide_state->dev) {
         return;
     }
 
@@ -523,7 +523,7 @@ static void ahci_reset_port(AHCIState *s, int port)
     }
 
     s->dev[port].port_state = STATE_RUN;
-    if (!ide_state->bs) {
+    if (!ide_state->dev) {
         s->dev[port].port_regs.sig = 0;
         ide_state->status = SEEK_STAT | WRERR_STAT;
     } else if (ide_state->drive_kind == IDE_CD) {
@@ -851,7 +851,7 @@ static int handle_cmd(AHCIState *s, int port, int slot)
     /* The device we are working for */
     ide_state = &s->dev[port].port.ifs[0];
 
-    if (!ide_state->bs) {
+    if (!ide_state->dev) {
         DPRINTF(port, "error: guest accessed unused port");
         goto out;
     }
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 9087025..dcfd92d 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -312,7 +312,7 @@ static void ide_set_signature(IDEState *s)
     if (s->drive_kind == IDE_CD) {
         s->lcyl = 0x14;
         s->hcyl = 0xeb;
-    } else if (s->bs) {
+    } else if (s->dev) {
         s->lcyl = 0;
         s->hcyl = 0;
     } else {
@@ -818,7 +818,7 @@ static void ide_flush_cb(void *opaque, int ret)
 
 void ide_flush_cache(IDEState *s)
 {
-    if (s->bs == NULL) {
+    if (!s->dev) {
         ide_flush_cb(s, 0);
         return;
     }
@@ -1022,7 +1022,7 @@ static bool cmd_data_set_management(IDEState *s, uint8_t 
cmd)
 {
     switch (s->feature) {
     case DSM_TRIM:
-        if (s->bs) {
+        if (s->dev) {
             ide_sector_start_dma(s, IDE_DMA_TRIM);
             return false;
         }
@@ -1035,7 +1035,7 @@ static bool cmd_data_set_management(IDEState *s, uint8_t 
cmd)
 
 static bool cmd_identify(IDEState *s, uint8_t cmd)
 {
-    if (s->bs && s->drive_kind != IDE_CD) {
+    if (s->dev && s->drive_kind != IDE_CD) {
         if (s->drive_kind != IDE_CFATA) {
             ide_identify(s);
         } else {
@@ -1085,7 +1085,7 @@ static bool cmd_read_multiple(IDEState *s, uint8_t cmd)
 {
     bool lba48 = (cmd == WIN_MULTREAD_EXT);
 
-    if (!s->bs || !s->mult_sectors) {
+    if (!s->dev || !s->mult_sectors) {
         ide_abort_command(s);
         return true;
     }
@@ -1101,7 +1101,7 @@ static bool cmd_write_multiple(IDEState *s, uint8_t cmd)
     bool lba48 = (cmd == WIN_MULTWRITE_EXT);
     int n;
 
-    if (!s->bs || !s->mult_sectors) {
+    if (!s->dev || !s->mult_sectors) {
         ide_abort_command(s);
         return true;
     }
@@ -1129,7 +1129,7 @@ static bool cmd_read_pio(IDEState *s, uint8_t cmd)
         return true;
     }
 
-    if (!s->bs) {
+    if (!s->dev) {
         ide_abort_command(s);
         return true;
     }
@@ -1145,7 +1145,7 @@ static bool cmd_write_pio(IDEState *s, uint8_t cmd)
 {
     bool lba48 = (cmd == WIN_WRITE_EXT);
 
-    if (!s->bs) {
+    if (!s->dev) {
         ide_abort_command(s);
         return true;
     }
@@ -1165,7 +1165,7 @@ static bool cmd_read_dma(IDEState *s, uint8_t cmd)
 {
     bool lba48 = (cmd == WIN_READDMA_EXT);
 
-    if (!s->bs) {
+    if (!s->dev) {
         ide_abort_command(s);
         return true;
     }
@@ -1180,7 +1180,7 @@ static bool cmd_write_dma(IDEState *s, uint8_t cmd)
 {
     bool lba48 = (cmd == WIN_WRITEDMA_EXT);
 
-    if (!s->bs) {
+    if (!s->dev) {
         ide_abort_command(s);
         return true;
     }
@@ -1231,7 +1231,7 @@ static bool cmd_set_features(IDEState *s, uint8_t cmd)
 {
     uint16_t *identify_data;
 
-    if (!s->bs) {
+    if (!s->dev) {
         ide_abort_command(s);
         return true;
     }
@@ -1710,8 +1710,9 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val)
 #endif
     s = idebus_active_if(bus);
     /* ignore commands to non existent slave */
-    if (s != bus->ifs && !s->bs)
+    if (s != bus->ifs && !s->dev) {
         return;
+    }
 
     /* Only DEVICE RESET is allowed while BSY or/and DRQ are set */
     if ((s->status & (BUSY_STAT|DRQ_STAT)) && val != WIN_DEVICE_RESET)
@@ -1755,8 +1756,8 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
         ret = 0xff;
         break;
     case 1:
-        if ((!bus->ifs[0].bs && !bus->ifs[1].bs) ||
-            (s != bus->ifs && !s->bs))
+        if ((!bus->ifs[0].dev && !bus->ifs[1].dev) ||
+            (s != bus->ifs && !s->dev))
             ret = 0;
         else if (!hob)
             ret = s->error;
@@ -1764,7 +1765,7 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
            ret = s->hob_feature;
         break;
     case 2:
-        if (!bus->ifs[0].bs && !bus->ifs[1].bs)
+        if (!bus->ifs[0].dev && !bus->ifs[1].dev)
             ret = 0;
         else if (!hob)
             ret = s->nsector & 0xff;
@@ -1772,7 +1773,7 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
            ret = s->hob_nsector;
         break;
     case 3:
-        if (!bus->ifs[0].bs && !bus->ifs[1].bs)
+        if (!bus->ifs[0].dev && !bus->ifs[1].dev)
             ret = 0;
         else if (!hob)
             ret = s->sector;
@@ -1780,7 +1781,7 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
            ret = s->hob_sector;
         break;
     case 4:
-        if (!bus->ifs[0].bs && !bus->ifs[1].bs)
+        if (!bus->ifs[0].dev && !bus->ifs[1].dev)
             ret = 0;
         else if (!hob)
             ret = s->lcyl;
@@ -1788,7 +1789,7 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
            ret = s->hob_lcyl;
         break;
     case 5:
-        if (!bus->ifs[0].bs && !bus->ifs[1].bs)
+        if (!bus->ifs[0].dev && !bus->ifs[1].dev)
             ret = 0;
         else if (!hob)
             ret = s->hcyl;
@@ -1796,18 +1797,20 @@ uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
            ret = s->hob_hcyl;
         break;
     case 6:
-        if (!bus->ifs[0].bs && !bus->ifs[1].bs)
+        if (!bus->ifs[0].dev && !bus->ifs[1].dev) {
             ret = 0;
-        else
+        } else {
             ret = s->select;
+        }
         break;
     default:
     case 7:
-        if ((!bus->ifs[0].bs && !bus->ifs[1].bs) ||
-            (s != bus->ifs && !s->bs))
+        if ((!bus->ifs[0].dev && !bus->ifs[1].dev) ||
+            (s != bus->ifs && !s->dev)) {
             ret = 0;
-        else
+        } else {
             ret = s->status;
+        }
         qemu_irq_lower(bus->irq);
         break;
     }
@@ -1823,11 +1826,12 @@ uint32_t ide_status_read(void *opaque, uint32_t addr)
     IDEState *s = idebus_active_if(bus);
     int ret;
 
-    if ((!bus->ifs[0].bs && !bus->ifs[1].bs) ||
-        (s != bus->ifs && !s->bs))
+    if ((!bus->ifs[0].dev && !bus->ifs[1].dev) ||
+        (s != bus->ifs && !s->dev)) {
         ret = 0;
-    else
+    } else {
         ret = s->status;
+    }
 #ifdef DEBUG_IDE
     printf("ide: read status addr=0x%x val=%02x\n", addr, ret);
 #endif
diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index 21d6495..29f0d64 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -247,7 +247,7 @@ static uint16_t md_common_read(PCMCIACardState *card, 
uint32_t at)
         return ide_ioport_read(&s->bus, 0x1);
     case 0xe:  /* Alternate Status */
         ifs = idebus_active_if(&s->bus);
-        if (ifs->bs) {
+        if (ifs->dev) {
             return ifs->status;
         } else {
             return 0;
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 6ea1698..7e8ddc2 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -120,7 +120,7 @@ int ide_get_geometry(BusState *bus, int unit,
 {
     IDEState *s = &DO_UPCAST(IDEBus, qbus, bus)->ifs[unit];
 
-    if (s->drive_kind != IDE_HD || !s->bs) {
+    if (s->drive_kind != IDE_HD || !s->dev) {
         return -1;
     }
 
-- 
1.8.1.4




reply via email to

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