summaryrefslogtreecommitdiffstats
path: root/include/sysemu/accel.h
diff options
context:
space:
mode:
authorAlexey Kardashevskiy2019-06-14 03:52:37 +0200
committerPaolo Bonzini2019-07-19 19:04:49 +0200
commit8072aae3770aed5ed1274a3d6b83a94672c6181a (patch)
tree5c99d7415b8eeb5b8f34ea9dd6e581b1ae375c80 /include/sysemu/accel.h
parenttest-bitmap: add test for bitmap_set (diff)
downloadqemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.tar.gz
qemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.tar.xz
qemu-8072aae3770aed5ed1274a3d6b83a94672c6181a.zip
hmp: Print if memory section is registered with an accelerator
This adds an accelerator name to the "into mtree -f" to tell the user if a particular memory section is registered with the accelerator; the primary user for this is KVM and such information is useful for debugging purposes. This adds a has_memory() callback to the accelerator class allowing any accelerator to have a label in that memory tree dump. Since memory sections are passed to memory listeners and get registered in accelerators (rather than memory regions), this only prints new labels for flatviews attached to the system address space. An example: Root memory region: system 0000000000000000-0000002fffffffff (prio 0, ram): /objects/mem0 kvm 0000003000000000-0000005fffffffff (prio 0, ram): /objects/mem1 kvm 0000200000000020-000020000000003f (prio 1, i/o): virtio-pci 0000200080000000-000020008000003f (prio 0, i/o): capabilities Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Message-Id: <20190614015237.82463-1-aik@ozlabs.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/sysemu/accel.h')
-rw-r--r--include/sysemu/accel.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 81293cdb08..89ce57e404 100644
--- a/include/sysemu/accel.h
+++ b/include/sysemu/accel.h
@@ -25,6 +25,7 @@
#include "qom/object.h"
#include "hw/qdev-properties.h"
+#include "exec/hwaddr.h"
typedef struct AccelState {
/*< private >*/
@@ -39,6 +40,8 @@ typedef struct AccelClass {
const char *name;
int (*init_machine)(MachineState *ms);
void (*setup_post)(MachineState *ms, AccelState *accel);
+ bool (*has_memory)(MachineState *ms, AddressSpace *as,
+ hwaddr start_addr, hwaddr size);
bool *allowed;
/*
* Array of global properties that would be applied when specific