diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2013-05-24 13:23:38 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-05-29 16:26:56 +0200 |
commit | d197063fcf969e1269dc53c9c9e9a073f87aa3b4 (patch) | |
tree | 5849684d4b942f7b91d55c5caa538b8f632a8600 /memory.c | |
parent | 149f54b53b7666a3facd45e86eece60ce7d3b114 (diff) |
memory: move unassigned_mem_ops to memory.c
reservation_ops is already doing the same thing.
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'memory.c')
-rw-r--r-- | memory.c | 44 |
1 files changed, 14 insertions, 30 deletions
@@ -22,6 +22,8 @@ #include "exec/memory-internal.h" +//#define DEBUG_UNASSIGNED + static unsigned memory_region_transaction_depth; static bool memory_region_update_pending; static bool global_dirty_log = false; @@ -837,6 +839,17 @@ static void unassigned_mem_write(void *opaque, hwaddr addr, #endif } +static bool unassigned_mem_accepts(void *opaque, hwaddr addr, + unsigned size, bool is_write) +{ + return false; +} + +const MemoryRegionOps unassigned_mem_ops = { + .valid.accepts = unassigned_mem_accepts, + .endianness = DEVICE_NATIVE_ENDIAN, +}; + static bool memory_region_access_valid(MemoryRegion *mr, hwaddr addr, unsigned size, @@ -1001,40 +1014,11 @@ void memory_region_init_rom_device(MemoryRegion *mr, mr->ram_addr = qemu_ram_alloc(size, mr); } -static uint64_t invalid_read(void *opaque, hwaddr addr, - unsigned size) -{ - MemoryRegion *mr = opaque; - - if (!mr->warning_printed) { - fprintf(stderr, "Invalid read from memory region %s\n", mr->name); - mr->warning_printed = true; - } - return -1U; -} - -static void invalid_write(void *opaque, hwaddr addr, uint64_t data, - unsigned size) -{ - MemoryRegion *mr = opaque; - - if (!mr->warning_printed) { - fprintf(stderr, "Invalid write to memory region %s\n", mr->name); - mr->warning_printed = true; - } -} - -static const MemoryRegionOps reservation_ops = { - .read = invalid_read, - .write = invalid_write, - .endianness = DEVICE_NATIVE_ENDIAN, -}; - void memory_region_init_reservation(MemoryRegion *mr, const char *name, uint64_t size) { - memory_region_init_io(mr, &reservation_ops, mr, name, size); + memory_region_init_io(mr, &unassigned_mem_ops, mr, name, size); } void memory_region_destroy(MemoryRegion *mr) |