[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v5 57/86] pci: convert pci rom to memory API
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [RFC v5 57/86] pci: convert pci rom to memory API |
Date: |
Wed, 20 Jul 2011 19:50:07 +0300 |
Signed-off-by: Avi Kivity <address@hidden>
---
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
- [Qemu-devel] [RFC v5 25/86] vga: convert vga and its derivatives to the memory API, (continued)
- [Qemu-devel] [RFC v5 25/86] vga: convert vga and its derivatives to the memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 12/86] memory: add ioeventfd support, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 19/86] pci: pass address space to pci bus when created, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 52/86] ehci: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 68/86] armv7m: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 54/86] xen-platform: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 22/86] usb-ohci: convert to MemoryRegion, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 35/86] rtl8139: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 57/86] pci: convert pci rom to memory API,
Avi Kivity <=
- [Qemu-devel] [RFC v5 64/86] apic: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 65/86] arm_gic: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 61/86] pci: remove support for pre memory API BARs, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 45/86] lsi53c895a: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 63/86] apb_pci: convert to memory API, Avi Kivity, 2011/07/20
- [Qemu-devel] [RFC v5 86/86] 440fx: fix PAM, PCI holes, Avi Kivity, 2011/07/20