From f49647fd7839fa1a36219e3e8dab59aabcd23373 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sun, 28 Jun 2015 16:47:13 +0000 Subject: [PATCH] xen: Implement memory map hypercalls Signed-off-by: Ian Campbell git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15380 --- coregrind/m_syswrap/syswrap-xen.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/coregrind/m_syswrap/syswrap-xen.c b/coregrind/m_syswrap/syswrap-xen.c index 645b001111..f46bb4c5ea 100644 --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -144,6 +144,16 @@ PRE(memory_op) (Addr)&arg->map, sizeof(arg->map)); break; } + + case VKI_XENMEM_memory_map: + case VKI_XENMEM_machine_memory_map: { + struct vki_xen_memory_map *arg = + (struct vki_xen_memory_map *)ARG2; + PRE_MEM_READ("XENMEM_memory_map nr_entries", + (Addr)&arg->nr_entries, sizeof(arg->nr_entries)); + break; + } + case VKI_XENMEM_increase_reservation: case VKI_XENMEM_decrease_reservation: case VKI_XENMEM_populate_physmap: @@ -1218,6 +1228,16 @@ POST(memory_op) break; } + case VKI_XENMEM_memory_map: + case VKI_XENMEM_machine_memory_map: { + struct vki_xen_memory_map *arg = + (struct vki_xen_memory_map *)ARG2; + POST_MEM_WRITE(arg->nr_entries, sizeof(arg->nr_entries)); + POST_MEM_WRITE((Addr)arg->buffer.p, + arg->nr_entries * 20 /* size of an e820 entry */); + break; + } + case VKI_XENMEM_add_to_physmap: { struct vki_xen_add_to_physmap *arg = (struct vki_xen_add_to_physmap *)ARG2; -- 2.47.3