diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2013-09-02 18:43:30 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-09-05 18:11:43 +0200 |
commit | 3bb28b7208b349e7a1b326e3c6ef9efac1d462bf (patch) | |
tree | 8235f8e0b7c426f1cda7ae4e98de47709491ce27 /ioport.c | |
parent | 88266249701032211c1d7449460d063fbc01bf12 (diff) | |
download | qemu-3bb28b7208b349e7a1b326e3c6ef9efac1d462bf.tar.gz qemu-3bb28b7208b349e7a1b326e3c6ef9efac1d462bf.tar.bz2 qemu-3bb28b7208b349e7a1b326e3c6ef9efac1d462bf.zip |
memory: Provide separate handling of unassigned io ports accesses
Accesses to unassigned io ports shall return -1 on read and be ignored
on write. Ensure these properties via dedicated ops, decoupling us from
the memory core's handling of unassigned accesses.
Cc: qemu-stable@nongnu.org
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'ioport.c')
-rw-r--r-- | ioport.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -44,6 +44,22 @@ typedef struct MemoryRegionPortioList { MemoryRegionPortio ports[]; } MemoryRegionPortioList; +static uint64_t unassigned_io_read(void *opaque, hwaddr addr, unsigned size) +{ + return -1ULL; +} + +static void unassigned_io_write(void *opaque, hwaddr addr, uint64_t val, + unsigned size) +{ +} + +const MemoryRegionOps unassigned_io_ops = { + .read = unassigned_io_read, + .write = unassigned_io_write, + .endianness = DEVICE_NATIVE_ENDIAN, +}; + void cpu_outb(pio_addr_t addr, uint8_t val) { LOG_IOPORT("outb: %04"FMT_pioaddr" %02"PRIx8"\n", addr, val); |