[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v4 55/58] pci: convert pci rom to memory API
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [RFC v4 55/58] pci: convert pci rom to memory API |
Date: |
Sun, 17 Jul 2011 14:14:22 +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 9db6fc8..8c7a418 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1858,11 +1858,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)
@@ -1966,9 +1961,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);
@@ -1979,19 +1974,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 5209964..c5174bd 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -192,7 +192,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 v4 35/58] e1000: convert to memory API, (continued)
- [Qemu-devel] [RFC v4 35/58] e1000: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 05/58] memory: abstract address space operations, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 18/58] pci: add MemoryRegion based BAR management API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 15/58] pc: convert pc_memory_init() to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 12/58] exec.c: initialize memory map, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 11/58] memory: add ioeventfd support, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 33/58] rtl8139: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 10/58] memory: add backward compatibility for old mmio registration, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 55/58] pci: convert pci rom to memory API,
Avi Kivity <=
- [Qemu-devel] [RFC v4 40/58] virtio-pci: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 22/58] vmsvga: don't remember pci BAR address in callback any more, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 43/58] lsi53c895a: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 36/58] eepro100: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 06/58] memory: rename MemoryRegion::has_ram_addr to ::terminates, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 01/58] Hierarchical memory region API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 42/58] intel-hda: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 47/58] i6300esb: convert to memory API, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 28/58] cirrus: simplify linear framebuffer access functions, Avi Kivity, 2011/07/17
- [Qemu-devel] [RFC v4 20/58] usb-ohci: convert to MemoryRegion, Avi Kivity, 2011/07/17