[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V2 5/7] hw/pc.c: replace register_ioport*
From: |
Julien Grall |
Subject: |
[Qemu-devel] [PATCH V2 5/7] hw/pc.c: replace register_ioport* |
Date: |
Wed, 4 Apr 2012 19:21:08 +0100 |
This patch replaces all register_ioport* with portio_* or
isa_register_portio_list. It permits to use the new Memory
stuff like listener.
Signed-off-by: Julien Grall <address@hidden>
---
hw/pc.c | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c
index 83a1b5b..6036393 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -592,6 +592,17 @@ int e820_add_entry(uint64_t address, uint64_t length,
uint32_t type)
return index;
}
+static const MemoryRegionPortio bochs_bios_portio_list[] = {
+ { 0x400, 2, 2, .write = bochs_bios_write, }, /* 0x400 */
+ { 0x402, 2, 1, .write = bochs_bios_write, }, /* 0x402 */
+ { 0x500, 1, 1, .write = bochs_bios_write, }, /* 0x500 */
+ { 0x501, 1, 1, .write = bochs_bios_write, }, /* 0x501 */
+ { 0x501, 2, 2, .write = bochs_bios_write, }, /* 0x501 */
+ { 0x503, 1, 1, .write = bochs_bios_write, }, /* 0x503 */
+ { 0x8900, 1, 1, .write = bochs_bios_write, }, /* 0x8900 */
+ PORTIO_END_OF_LIST(),
+};
+
static void *bochs_bios_init(void)
{
void *fw_cfg;
@@ -599,18 +610,11 @@ static void *bochs_bios_init(void)
size_t smbios_len;
uint64_t *numa_fw_cfg;
int i, j;
+ PortioList *bochs_bios_port_list = g_new(PortioList, 1);
- register_ioport_write(0x400, 1, 2, bochs_bios_write, NULL);
- register_ioport_write(0x401, 1, 2, bochs_bios_write, NULL);
- register_ioport_write(0x402, 1, 1, bochs_bios_write, NULL);
- register_ioport_write(0x403, 1, 1, bochs_bios_write, NULL);
- register_ioport_write(0x8900, 1, 1, bochs_bios_write, NULL);
-
- register_ioport_write(0x501, 1, 1, bochs_bios_write, NULL);
- register_ioport_write(0x501, 1, 2, bochs_bios_write, NULL);
- register_ioport_write(0x502, 1, 2, bochs_bios_write, NULL);
- register_ioport_write(0x500, 1, 1, bochs_bios_write, NULL);
- register_ioport_write(0x503, 1, 1, bochs_bios_write, NULL);
+ portio_list_init(bochs_bios_port_list, bochs_bios_portio_list,
+ NULL, "bosch-bios");
+ portio_list_add(bochs_bios_port_list, get_system_io(), 0x0);
fw_cfg = fw_cfg_init(BIOS_CFG_IOPORT, BIOS_CFG_IOPORT + 1, 0, 0);
@@ -1077,6 +1081,12 @@ static void cpu_request_exit(void *opaque, int irq, int
level)
}
}
+static const MemoryRegionPortio pc_basic_portio_list[] = {
+ { 0x00, 1, 1, .write = ioport80_write, }, /* 0x80 */
+ { 0x70, 1, 1, .write = ioportF0_write, }, /* 0xf0 */
+ PORTIO_END_OF_LIST(),
+};
+
void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
ISADevice **rtc_state,
ISADevice **floppy,
@@ -1092,9 +1102,8 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
ISADevice *i8042, *port92, *vmmouse, *pit;
qemu_irq *cpu_exit_irq;
- register_ioport_write(0x80, 1, 1, ioport80_write, NULL);
-
- register_ioport_write(0xf0, 1, 1, ioportF0_write, NULL);
+ isa_register_portio_list(NULL, 0x80, pc_basic_portio_list, NULL,
+ "pc-basic");
/*
* Check if an HPET shall be created.
--
Julien Grall
- [Qemu-devel] [PATCH V2 0/7] memory: unify ioport registration, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 2/7] hw/acpi_piix4.c: replace register_ioport*, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 7/7] hw/apm.c: replace register_ioport*, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 4/7] hw/serial.c: replace register_ioport*, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 1/7] isa: add isa_address_space_io, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 6/7] hw/dma.c: replace register_ioport*, Julien Grall, 2012/04/04
- [Qemu-devel] [PATCH V2 5/7] hw/pc.c: replace register_ioport*,
Julien Grall <=
- [Qemu-devel] [PATCH V2 3/7] hw/cirrus_vga.c: replace register_ioport*, Julien Grall, 2012/04/04