[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/17] parallel: convert to memory API
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [PATCH 07/17] parallel: convert to memory API |
Date: |
Sun, 30 Oct 2011 16:33:44 +0200 |
Signed-off-by: Avi Kivity <address@hidden>
---
hw/mips_jazz.c | 3 ++-
hw/parallel.c | 27 ++++++++++++---------------
hw/pc.h | 3 ++-
3 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index 6e657dd..f6e3316 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -274,7 +274,8 @@ static void mips_jazz_init(MemoryRegion *address_space,
/* Parallel port */
if (parallel_hds[0])
- parallel_mm_init(0x80008000, 0, rc4030[0], parallel_hds[0]);
+ parallel_mm_init(address_space, 0x80008000, 0, rc4030[0],
+ parallel_hds[0]);
/* Sound card */
/* FIXME: missing Jazz sound at 0x8000c000, rc4030[2] */
diff --git a/hw/parallel.c b/hw/parallel.c
index 8494d94..c4c5dbe 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -65,6 +65,7 @@
#define PARA_CTR_SIGNAL
(PARA_CTR_SELECT|PARA_CTR_INIT|PARA_CTR_AUTOLF|PARA_CTR_STROBE)
typedef struct ParallelState {
+ MemoryRegion iomem;
uint8_t dataw;
uint8_t datar;
uint8_t status;
@@ -555,24 +556,20 @@ static void parallel_mm_writel (void *opaque,
parallel_ioport_write_sw(s, addr >> s->it_shift, value);
}
-static CPUReadMemoryFunc * const parallel_mm_read_sw[] = {
- ¶llel_mm_readb,
- ¶llel_mm_readw,
- ¶llel_mm_readl,
-};
-
-static CPUWriteMemoryFunc * const parallel_mm_write_sw[] = {
- ¶llel_mm_writeb,
- ¶llel_mm_writew,
- ¶llel_mm_writel,
+static const MemoryRegionOps parallel_mm_ops = {
+ .old_mmio = {
+ .read = { parallel_mm_readb, parallel_mm_readw, parallel_mm_readl },
+ .write = { parallel_mm_writeb, parallel_mm_writew, parallel_mm_writel
},
+ },
+ .endianness = DEVICE_NATIVE_ENDIAN,
};
/* If fd is zero, it means that the parallel device uses the console */
-bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq,
+bool parallel_mm_init(MemoryRegion *address_space,
+ target_phys_addr_t base, int it_shift, qemu_irq irq,
CharDriverState *chr)
{
ParallelState *s;
- int io_sw;
s = g_malloc0(sizeof(ParallelState));
s->irq = irq;
@@ -580,9 +577,9 @@ bool parallel_mm_init(target_phys_addr_t base, int
it_shift, qemu_irq irq,
s->it_shift = it_shift;
qemu_register_reset(parallel_reset, s);
- io_sw = cpu_register_io_memory(parallel_mm_read_sw, parallel_mm_write_sw,
- s, DEVICE_NATIVE_ENDIAN);
- cpu_register_physical_memory(base, 8 << it_shift, io_sw);
+ memory_region_init_io(&s->iomem, ¶llel_mm_ops, s,
+ "parallel", 8 << it_shift);
+ memory_region_add_subregion(address_space, base, &s->iomem);
return true;
}
diff --git a/hw/pc.h b/hw/pc.h
index 4515006..b7b7e40 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -55,7 +55,8 @@ static inline bool parallel_init(int index, CharDriverState
*chr)
return true;
}
-bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq,
+bool parallel_mm_init(MemoryRegion *address_space,
+ target_phys_addr_t base, int it_shift, qemu_irq irq,
CharDriverState *chr);
/* i8259.c */
--
1.7.6.3
- [Qemu-devel] [PATCH 00/17] Memory API conversions, batch 13, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 01/17] tosa: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 02/17] versatilepb: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 07/17] parallel: convert to memory API,
Avi Kivity <=
- [Qemu-devel] [PATCH 05/17] shix: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 08/17] zaurus: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 09/17] pl011: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 12/17] pl050: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 03/17] vexpress: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 04/17] virtex_ml507: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 06/17] jazz_led: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 11/17] pl031: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 10/17] pl022: convert to memory API, Avi Kivity, 2011/10/30
- [Qemu-devel] [PATCH 16/17] pl181: convert to memory API, Avi Kivity, 2011/10/30