All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>, qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>, kvm@vger.kernel.org
Subject: [PATCH 35/39] pci: convert pci rom to memory API
Date: Sun, 31 Jul 2011 20:57:58 +0300	[thread overview]
Message-ID: <1312135082-31985-36-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1312135082-31985-1-git-send-email-avi@redhat.com>

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/pci.c |   20 +++++++-------------
 hw/pci.h |    3 ++-
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/hw/pci.c b/hw/pci.c
index 6aca1af..481eb7e 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1857,11 +1857,6 @@ static uint8_t pci_find_capability_list(PCIDevice *pdev, uint8_t cap_id,
     return next;
 }
 
-static void pci_map_option_rom(PCIDevice *pdev, int region_num, pcibus_t addr, pcibus_t size, int type)
-{
-    cpu_register_physical_memory(addr, size, pdev->rom_offset);
-}
-
 /* Patch the PCI vendor and device ids in a PCI rom image if necessary.
    This is needed for an option rom which is used for more than one device. */
 static void pci_patch_ids(PCIDevice *pdev, uint8_t *ptr, int size)
@@ -1965,9 +1960,9 @@ static int pci_add_option_rom(PCIDevice *pdev, bool is_default_rom)
         snprintf(name, sizeof(name), "%s.rom", pdev->qdev.info->vmsd->name);
     else
         snprintf(name, sizeof(name), "%s.rom", pdev->qdev.info->name);
-    pdev->rom_offset = qemu_ram_alloc(&pdev->qdev, name, size);
-
-    ptr = qemu_get_ram_ptr(pdev->rom_offset);
+    pdev->has_rom = true;
+    memory_region_init_ram(&pdev->rom, &pdev->qdev, name, size);
+    ptr = memory_region_get_ram_ptr(&pdev->rom);
     load_image(path, ptr);
     qemu_free(path);
 
@@ -1978,19 +1973,18 @@ static int pci_add_option_rom(PCIDevice *pdev, bool is_default_rom)
 
     qemu_put_ram_ptr(ptr);
 
-    pci_register_bar(pdev, PCI_ROM_SLOT, size,
-                     0, pci_map_option_rom);
+    pci_register_bar_region(pdev, PCI_ROM_SLOT, 0, &pdev->rom);
 
     return 0;
 }
 
 static void pci_del_option_rom(PCIDevice *pdev)
 {
-    if (!pdev->rom_offset)
+    if (!pdev->has_rom)
         return;
 
-    qemu_ram_free(pdev->rom_offset);
-    pdev->rom_offset = 0;
+    memory_region_destroy(&pdev->rom);
+    pdev->has_rom = false;
 }
 
 /*
diff --git a/hw/pci.h b/hw/pci.h
index 25e28b1..6e2bcea 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -191,7 +191,8 @@ struct PCIDevice {
 
     /* Location of option rom */
     char *romfile;
-    ram_addr_t rom_offset;
+    bool has_rom;
+    MemoryRegion rom;
     uint32_t rom_bar;
 };
 
-- 
1.7.5.3


WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>, qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH 35/39] pci: convert pci rom to memory API
Date: Sun, 31 Jul 2011 20:57:58 +0300	[thread overview]
Message-ID: <1312135082-31985-36-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1312135082-31985-1-git-send-email-avi@redhat.com>

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/pci.c |   20 +++++++-------------
 hw/pci.h |    3 ++-
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/hw/pci.c b/hw/pci.c
index 6aca1af..481eb7e 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1857,11 +1857,6 @@ static uint8_t pci_find_capability_list(PCIDevice *pdev, uint8_t cap_id,
     return next;
 }
 
-static void pci_map_option_rom(PCIDevice *pdev, int region_num, pcibus_t addr, pcibus_t size, int type)
-{
-    cpu_register_physical_memory(addr, size, pdev->rom_offset);
-}
-
 /* Patch the PCI vendor and device ids in a PCI rom image if necessary.
    This is needed for an option rom which is used for more than one device. */
 static void pci_patch_ids(PCIDevice *pdev, uint8_t *ptr, int size)
@@ -1965,9 +1960,9 @@ static int pci_add_option_rom(PCIDevice *pdev, bool is_default_rom)
         snprintf(name, sizeof(name), "%s.rom", pdev->qdev.info->vmsd->name);
     else
         snprintf(name, sizeof(name), "%s.rom", pdev->qdev.info->name);
-    pdev->rom_offset = qemu_ram_alloc(&pdev->qdev, name, size);
-
-    ptr = qemu_get_ram_ptr(pdev->rom_offset);
+    pdev->has_rom = true;
+    memory_region_init_ram(&pdev->rom, &pdev->qdev, name, size);
+    ptr = memory_region_get_ram_ptr(&pdev->rom);
     load_image(path, ptr);
     qemu_free(path);
 
@@ -1978,19 +1973,18 @@ static int pci_add_option_rom(PCIDevice *pdev, bool is_default_rom)
 
     qemu_put_ram_ptr(ptr);
 
-    pci_register_bar(pdev, PCI_ROM_SLOT, size,
-                     0, pci_map_option_rom);
+    pci_register_bar_region(pdev, PCI_ROM_SLOT, 0, &pdev->rom);
 
     return 0;
 }
 
 static void pci_del_option_rom(PCIDevice *pdev)
 {
-    if (!pdev->rom_offset)
+    if (!pdev->has_rom)
         return;
 
-    qemu_ram_free(pdev->rom_offset);
-    pdev->rom_offset = 0;
+    memory_region_destroy(&pdev->rom);
+    pdev->has_rom = false;
 }
 
 /*
diff --git a/hw/pci.h b/hw/pci.h
index 25e28b1..6e2bcea 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -191,7 +191,8 @@ struct PCIDevice {
 
     /* Location of option rom */
     char *romfile;
-    ram_addr_t rom_offset;
+    bool has_rom;
+    MemoryRegion rom;
     uint32_t rom_bar;
 };
 
-- 
1.7.5.3

  parent reply	other threads:[~2011-07-31 17:58 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-31 17:57 [PATCH 00/39] Memory API, batch 2: PCI devices Avi Kivity
2011-07-31 17:57 ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 01/39] pci: add API to get a BAR's mapped address Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 02/39] vmsvga: don't remember pci BAR address in callback any more Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 03/39] vga: convert vga and its derivatives to the memory API Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 18:42   ` Jan Kiszka
2011-07-31 18:42     ` [Qemu-devel] " Jan Kiszka
2011-07-31 18:46     ` Avi Kivity
2011-07-31 18:46       ` [Qemu-devel] " Avi Kivity
2011-07-31 18:48       ` Jan Kiszka
2011-07-31 18:48         ` Jan Kiszka
2011-07-31 19:06         ` Avi Kivity
2011-07-31 19:06           ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 04/39] cirrus: simplify mmio BAR access functions Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 05/39] cirrus: simplify bitblt " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 06/39] cirrus: simplify vga window mmio " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 07/39] vga: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 08/39] cirrus: simplify linear framebuffer " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 09/39] Integrate I/O memory regions into qemu Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-08-01  0:19   ` Richard Henderson
2011-08-01  0:19     ` Richard Henderson
2011-08-01  6:05     ` Avi Kivity
2011-08-01  6:05       ` Avi Kivity
2011-08-01  7:42     ` [PATCH v2 " Avi Kivity
2011-08-01  7:42       ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 10/39] exec.c: fix initialization of system I/O memory region Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 11/39] pci: pass I/O address space to new PCI bus Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 12/39] pci: allow I/O BARs to be registered with pci_register_bar_region() Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 13/39] rtl8139: convert to memory API Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 14/39] ac97: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 15/39] e1000: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 16/39] eepro100: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 17/39] es1370: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 18/39] ide: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-08-01 19:22   ` Richard Henderson
2011-08-01 19:22     ` Richard Henderson
2011-08-02 12:48     ` Avi Kivity
2011-08-02 12:48       ` Avi Kivity
2011-07-31 17:57 ` [PATCH 19/39] ivshmem: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 20/39] virtio-pci: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-08-01  8:26   ` Michael S. Tsirkin
2011-08-01  8:26     ` [Qemu-devel] " Michael S. Tsirkin
2011-08-01  9:35     ` Avi Kivity
2011-08-01  9:35       ` [Qemu-devel] " Avi Kivity
2011-08-01 10:23       ` Michael S. Tsirkin
2011-08-01 10:23         ` [Qemu-devel] " Michael S. Tsirkin
2011-08-01 20:24         ` Anthony Liguori
2011-08-01 20:24           ` [Qemu-devel] " Anthony Liguori
2011-08-03 15:16         ` Michael S. Tsirkin
2011-08-03 15:16           ` [Qemu-devel] " Michael S. Tsirkin
2011-08-03 15:23           ` Avi Kivity
2011-08-03 15:23             ` [Qemu-devel] " Avi Kivity
2011-08-03 15:38             ` Michael S. Tsirkin
2011-08-03 15:38               ` [Qemu-devel] " Michael S. Tsirkin
2011-08-01 19:53       ` Michael S. Tsirkin
2011-08-01 19:53         ` [Qemu-devel] " Michael S. Tsirkin
2011-08-02  9:17         ` Avi Kivity
2011-08-02  9:17           ` [Qemu-devel] " Avi Kivity
2011-08-02  9:34           ` Michael S. Tsirkin
2011-08-02  9:34             ` [Qemu-devel] " Michael S. Tsirkin
2011-08-02 12:39             ` Avi Kivity
2011-08-02 12:39               ` [Qemu-devel] " Avi Kivity
2011-08-02 16:28           ` Gerd Hoffmann
2011-08-02 16:28             ` [Qemu-devel] " Gerd Hoffmann
2011-08-01 20:23     ` Anthony Liguori
2011-08-01 20:23       ` Anthony Liguori
2011-07-31 17:57 ` [PATCH 21/39] ahci: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 22/39] intel-hda: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 23/39] lsi53c895a: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 24/39] ppc: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 25/39] ne2000: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 26/39] pcnet: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 27/39] i6300esb: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 28/39] isa-mmio: concert " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 29/39] sun4u: convert " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 30/39] ehci: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 31/39] uhci: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 32/39] xen-platform: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 33/39] msix: " Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` [PATCH 34/39] pci: remove pci_register_bar_simple() Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:57 ` Avi Kivity [this message]
2011-07-31 17:57   ` [Qemu-devel] [PATCH 35/39] pci: convert pci rom to memory API Avi Kivity
2011-07-31 17:57 ` [PATCH 36/39] pci: remove pci_register_bar() Avi Kivity
2011-07-31 17:57   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:58 ` [PATCH 37/39] pci: fold BAR mapping function into its caller Avi Kivity
2011-07-31 17:58   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:58 ` [PATCH 38/39] pci: rename pci_register_bar_region() to pci_register_bar() Avi Kivity
2011-07-31 17:58   ` [Qemu-devel] " Avi Kivity
2011-07-31 17:58 ` [PATCH 39/39] pci: remove support for pre memory API BARs Avi Kivity
2011-07-31 17:58   ` [Qemu-devel] " Avi Kivity
2011-07-31 18:02 ` [PATCH 00/39] Memory API, batch 2: PCI devices Avi Kivity
2011-07-31 18:02   ` [Qemu-devel] " Avi Kivity
2011-07-31 21:03   ` Anthony Liguori
2011-08-01 17:32 ` Richard Henderson
2011-08-01 17:32   ` Richard Henderson
2011-08-01 21:23 ` [Qemu-devel] [RFC] Alpha system patchset updated for " Richard Henderson
2011-08-02  9:23   ` Avi Kivity
2011-08-02 15:42     ` Richard Henderson

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=1312135082-31985-36-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.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.