[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v3 53/56] pci: convert pci rom to memory API
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [RFC v3 53/56] pci: convert pci rom to memory API |
Date: |
Sun, 10 Jul 2011 21:15:06 +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
- Re: [Qemu-devel] [RFC v3 31/56] ac97: convert to memory API, (continued)
[Qemu-devel] [RFC v3 17/56] usb-ohci: convert to MemoryRegion, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 08/56] memory: I/O address space support, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 07/56] memory: late initialization of ram_addr, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 16/56] sysbus: add MemoryRegion based memory management API, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 06/56] memory: rename MemoryRegion::has_ram_addr to ::terminates, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 12/56] pc: convert pc_memory_init() to memory API, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 19/56] vmsvga: don't remember pci BAR address in callback any more, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 10/56] ioport: register ranges by byte aligned addresses always, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 53/56] pci: convert pci rom to memory API,
Avi Kivity <=
[Qemu-devel] [RFC v3 23/56] cirrus: simplify vga window mmio access functions, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 04/56] Internal interfaces for memory API, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 33/56] eepro100: convert to memory API, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 22/56] cirrus: simplify bitblt BAR access functions, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 14/56] pci: pass address space to pci bus when created, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 05/56] memory: abstract address space operations, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 27/56] exec.c: fix initialization of system I/O memory region, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 01/56] Hierarchical memory region API, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 36/56] memory: add ioeventfd support, Avi Kivity, 2011/07/10
[Qemu-devel] [RFC v3 39/56] ahci: convert to memory API, Avi Kivity, 2011/07/10