[SerialICE] New patch to review for serialice: e265225 Create single function for QEmu I/O access

Patrick Georgi (patrick@georgi-clan.de) gerrit at coreboot.org
Wed May 30 14:48:44 CEST 2012


Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1063

-gerrit

commit e2652253daf6c7858626274b5a7fb42e1b56139f
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Wed May 30 00:26:57 2012 +0200

    Create single function for QEmu I/O access
    
    Provide the same single function interface to QEmu I/O ports
    as for SerialICE I/O access.
    
    Change-Id: I068d3aaf0bd602bb7eaf13d014074d74d6523b97
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
    [pg: Reorganized Kyösti's patch set]
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 qemu-0.15.x/ioport.c |   33 +++++++++++++++++++++++++++++++++
 qemu-0.15.x/ioport.h |    3 +++
 2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/qemu-0.15.x/ioport.c b/qemu-0.15.x/ioport.c
index 0d2611d..aca38f2 100644
--- a/qemu-0.15.x/ioport.c
+++ b/qemu-0.15.x/ioport.c
@@ -313,3 +313,36 @@ uint32_t cpu_inl(pio_addr_t addr)
     LOG_IOPORT("inl : %04"FMT_pioaddr" %08"PRIx32"\n", addr, val);
     return val;
 }
+
+uint32_t cpu_io_read_wrapper(uint16_t port, unsigned int size)
+{
+    switch (size) {
+    case 1:
+        return cpu_inb(port);
+    case 2:
+        return cpu_inw(port);
+    case 4:
+        return cpu_inl(port);
+    default:
+        break;
+    }
+    return -1;
+}
+
+void cpu_io_write_wrapper(uint16_t port, unsigned int size, uint32_t data)
+{
+    switch (size) {
+    case 1:
+        cpu_outb(port, (uint8_t) data);
+        return;
+    case 2:
+        cpu_outw(port, (uint16_t) data);
+        return;
+    case 4:
+        cpu_outl(port, (uint32_t) data);
+        return;
+    default:
+        break;
+    }
+    return;
+}
diff --git a/qemu-0.15.x/ioport.h b/qemu-0.15.x/ioport.h
index 82ffd9d..18a1658 100644
--- a/qemu-0.15.x/ioport.h
+++ b/qemu-0.15.x/ioport.h
@@ -48,8 +48,11 @@ bool isa_is_ioport_assigned(pio_addr_t start);
 void cpu_outb(pio_addr_t addr, uint8_t val);
 void cpu_outw(pio_addr_t addr, uint16_t val);
 void cpu_outl(pio_addr_t addr, uint32_t val);
+void cpu_io_write_wrapper(uint16_t port, unsigned int size, uint32_t data);
+
 uint8_t cpu_inb(pio_addr_t addr);
 uint16_t cpu_inw(pio_addr_t addr);
 uint32_t cpu_inl(pio_addr_t addr);
+uint32_t cpu_io_read_wrapper(uint16_t port, unsigned int size);
 
 #endif /* IOPORT_H */



More information about the SerialICE mailing list