All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: QEMU-devel Developers <qemu-devel@nongnu.org>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Joerg Roedel <Joerg.Roedel@amd.com>,
	Paul Brook <paul@codesourcery.com>,
	Blue Swirl <blauwirbel@gmail.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	tj@kernel.org, Roland Elek <elek.roland@gmail.com>,
	Sebastian Herbszt <herbszt@gmx.de>
Subject: [Qemu-devel] [PATCH 01/11] ide: split ide command interpretation off
Date: Tue, 14 Dec 2010 01:34:33 +0100	[thread overview]
Message-ID: <1292286883-20157-2-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1292286883-20157-1-git-send-email-agraf@suse.de>

The ATA command interpretation code can be used for PATA and SATA
interfaces alike. So let's split it out into a separate function.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v6 -> v7:

  - use bus instead of opaque (stefanha)
---
 hw/ide/core.c     |   20 ++++++++++++++------
 hw/ide/internal.h |    2 ++
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index 430350f..ac4ee71 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1791,9 +1791,6 @@ static void ide_clear_hob(IDEBus *bus)
 void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
 {
     IDEBus *bus = opaque;
-    IDEState *s;
-    int n;
-    int lba48 = 0;
 
 #ifdef DEBUG_IDE
     printf("IDE: write addr=0x%x val=0x%02x\n", addr, val);
@@ -1854,17 +1851,29 @@ void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
     default:
     case 7:
         /* command */
+        ide_exec_cmd(bus, val);
+        break;
+    }
+}
+
+
+void ide_exec_cmd(IDEBus *bus, uint32_t val)
+{
+    IDEState *s;
+    int n;
+    int lba48 = 0;
+
 #if defined(DEBUG_IDE)
         printf("ide: CMD=%02x\n", val);
 #endif
         s = idebus_active_if(bus);
         /* ignore commands to non existant slave */
         if (s != bus->ifs && !s->bs)
-            break;
+            return;
 
         /* Only DEVICE RESET is allowed while BSY or/and DRQ are set */
         if ((s->status & (BUSY_STAT|DRQ_STAT)) && val != WIN_DEVICE_RESET)
-            break;
+            return;
 
         switch(val) {
         case WIN_IDENTIFY:
@@ -2355,7 +2364,6 @@ void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
             ide_set_irq(s->bus);
             break;
         }
-    }
 }
 
 uint32_t ide_ioport_read(void *opaque, uint32_t addr1)
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index 71af66f..029c76c 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -567,6 +567,8 @@ void ide_init2_with_non_qdev_drives(IDEBus *bus, DriveInfo *hd0,
                                     DriveInfo *hd1, qemu_irq irq);
 void ide_init_ioport(IDEBus *bus, int iobase, int iobase2);
 
+void ide_exec_cmd(IDEBus *bus, uint32_t val);
+
 /* hw/ide/qdev.c */
 void ide_bus_new(IDEBus *idebus, DeviceState *dev, int bus_id);
 IDEDevice *ide_create_drive(IDEBus *bus, int unit, DriveInfo *drive);
-- 
1.6.0.2

  reply	other threads:[~2010-12-14  0:34 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-14  0:34 [Qemu-devel] [PATCH 00/11] AHCI emulation support v9 Alexander Graf
2010-12-14  0:34 ` Alexander Graf [this message]
2010-12-14  0:34 ` [Qemu-devel] [PATCH 02/11] ide: fix whitespace gap in ide_exec_cmd Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 03/11] ide: Split out BMDMA code from ATA core Alexander Graf
2010-12-14 16:20   ` [Qemu-devel] " Kevin Wolf
2010-12-14 23:17     ` Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 04/11] ide: move transfer_start after variable modification Alexander Graf
2010-12-14 16:21   ` [Qemu-devel] " Kevin Wolf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 05/11] ide: add ncq identify data for ahci sata drives Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 06/11] pci: add storage class for sata Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 07/11] pci: add ich9 pci id Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 08/11] ahci: add ahci emulation Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 09/11] config: move ide core and pci to pci.mak Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 10/11] config: add ahci for pci capable machines Alexander Graf
2010-12-14  0:34 ` [Qemu-devel] [PATCH 11/11] ahci: set SATA Mode Select Alexander Graf
2010-12-14 15:23 ` [Qemu-devel] [PATCH 12/11] ide: honor ncq for atapi Alexander Graf
2010-12-14 16:28 ` [Qemu-devel] Re: [PATCH 00/11] AHCI emulation support v9 Kevin Wolf
2010-12-14 23:34   ` Alexander Graf
2010-12-15  8:28     ` Gerd Hoffmann
2010-12-15  9:34       ` Alexander Graf
2010-12-15  9:44         ` Gerd Hoffmann
2010-12-14 23:23 ` [Qemu-devel] [PATCH 03/12] ide: Split out BMDMA code from ATA core Alexander Graf
2010-12-14 23:23 ` [Qemu-devel] [PATCH 04/12] ide: move transfer_start after variable modification Alexander Graf
  -- strict thread matches above, loose matches on Subject: below --
2010-11-25  7:07 [Qemu-devel] [PATCH 00/11] AHCI emulation support v5 Alexander Graf
2010-11-25  7:07 ` [Qemu-devel] [PATCH 01/11] ide: split ide command interpretation off Alexander Graf
2010-11-19  2:56 [Qemu-devel] [PATCH 00/11] AHCI emulation support v3 Alexander Graf
2010-11-19  2:56 ` [Qemu-devel] [PATCH 01/11] ide: split ide command interpretation off Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1292286883-20157-2-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=Joerg.Roedel@amd.com \
    --cc=blauwirbel@gmail.com \
    --cc=elek.roland@gmail.com \
    --cc=herbszt@gmx.de \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.