diff options
author | Avi Kivity <avi@redhat.com> | 2011-11-13 13:05:27 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-11-24 18:32:00 +0200 |
commit | 897fa7cff21a98b260a5b3e73eae39273fa60272 (patch) | |
tree | d9d13d7bf2e3cc4f98b57c7008efaa680b9e1847 /memory.h | |
parent | 5a31cd68bad16103beb6d3d4e65d5c401d8e5ff9 (diff) | |
download | qemu-897fa7cff21a98b260a5b3e73eae39273fa60272.zip qemu-897fa7cff21a98b260a5b3e73eae39273fa60272.tar.gz qemu-897fa7cff21a98b260a5b3e73eae39273fa60272.tar.bz2 |
memory: add MemoryRegionOps::valid.accepts
MemoryRegionOps::valid tries to declaratively specify which transactions
are accepted by the device/bus, however it is not completely generic. Add
a callback for special cases.
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'memory.h')
-rw-r--r-- | memory.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -71,6 +71,13 @@ struct MemoryRegionOps { * accesses throw machine checks. */ bool unaligned; + /* + * If present, and returns #false, the transaction is not accepted + * by the device (and results in machine dependent behaviour such + * as a machine check exception). + */ + bool (*accepts)(void *opaque, target_phys_addr_t addr, + unsigned size, bool is_write); } valid; /* Internal implementation constraints: */ struct { |