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
next prev 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: linkBe 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.