summaryrefslogtreecommitdiff
path: root/memory.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2011-07-26 14:26:09 +0300
committerAnthony Liguori <aliguori@us.ibm.com>2011-07-29 08:25:43 -0500
commit627a0e90dc6b53504d6b9539b8e29210d82ecf9d (patch)
tree11d728c29d6c44c5ed131c25d4c71c2164d96c82 /memory.h
parent658b2224017b5c5fdc60969fa2f0798781b0cb3f (diff)
downloadqemu-627a0e90dc6b53504d6b9539b8e29210d82ecf9d.tar.gz
memory: add backward compatibility for old portio registration
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'memory.h')
-rw-r--r--memory.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/memory.h b/memory.h
index 88ba428b7c..40ab95a98c 100644
--- a/memory.h
+++ b/memory.h
@@ -23,9 +23,11 @@
#include "targphys.h"
#include "qemu-queue.h"
#include "iorange.h"
+#include "ioport.h"
typedef struct MemoryRegionOps MemoryRegionOps;
typedef struct MemoryRegion MemoryRegion;
+typedef struct MemoryRegionPortio MemoryRegionPortio;
/* Must match *_DIRTY_FLAGS in cpu-all.h. To be replaced with dynamic
* registration.
@@ -78,6 +80,11 @@ struct MemoryRegionOps {
*/
bool unaligned;
} impl;
+
+ /* If .read and .write are not present, old_portio may be used for
+ * backwards compatibility with old portio registration
+ */
+ const MemoryRegionPortio *old_portio;
};
typedef struct CoalescedMemoryRange CoalescedMemoryRange;
@@ -105,6 +112,16 @@ struct MemoryRegion {
uint8_t dirty_log_mask;
};
+struct MemoryRegionPortio {
+ uint32_t offset;
+ uint32_t len;
+ unsigned size;
+ IOPortReadFunc *read;
+ IOPortWriteFunc *write;
+};
+
+#define PORTIO_END { }
+
/**
* memory_region_init: Initialize a memory region
*