Introduce xen_ram_block_check function to check whether current ramblock is xen ram memory.
Signed-off-by: Huang Rui <ray.hu...@amd.com> --- hw/i386/xen/xen-hvm.c | 15 +++++++++++++++ include/hw/xen/xen.h | 1 + 2 files changed, 16 insertions(+) diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index e4293d6d66..a4f12aefce 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -32,6 +32,7 @@ #include "sysemu/xen.h" #include "sysemu/xen-mapcache.h" #include "trace.h" +#include "include/exec/ramblock.h" #include <xen/hvm/ioreq.h> #include <xen/hvm/e820.h> @@ -1564,6 +1565,20 @@ void xen_register_framebuffer(MemoryRegion *mr) framebuffer = mr; } +bool xen_ram_block_check(RAMBlock *rb) +{ + bool ret; + + if (!rb) + return false; + + ret = (rb == ram_memory.ram_block); + if (ret) + rb->offset = 0; + + return ret; +} + void xen_shutdown_fatal_error(const char *fmt, ...) { va_list ap; diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h index afdf9c436a..99a383eb17 100644 --- a/include/hw/xen/xen.h +++ b/include/hw/xen/xen.h @@ -31,5 +31,6 @@ qemu_irq *xen_interrupt_controller_init(void); void xenstore_store_pv_console_info(int i, Chardev *chr); void xen_register_framebuffer(struct MemoryRegion *mr); +bool xen_ram_block_check(RAMBlock *rb); #endif /* QEMU_HW_XEN_H */ -- 2.25.1