Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-buildrequires
valgrind
valgrind.xen-3.4-handle-XENMEM_set_pod_target-X...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File valgrind.xen-3.4-handle-XENMEM_set_pod_target-XENMEM_get_pod_.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de> Date: Fri, 16 Nov 2018 17:29:53 +0100 Subject: xen-3.4: handle XENMEM_set_pod_target/XENMEM_get_pod_target bz#390553 --- coregrind/m_syswrap/syswrap-xen.c | 20 ++++++++++++++++++++ include/vki/vki-xen-memory.h | 8 ++++++++ 2 files changed, 28 insertions(+) --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -274,24 +274,34 @@ PRE(memory_op) (struct vki_xen_remove_from_physmap *)ARG2; PRE_MEM_READ("XENMEM_remove_from_physmap domid", (Addr)&arg->domid, sizeof(arg->domid)); PRE_MEM_READ("XENMEM_remove_from_physmap gpfn", (Addr)&arg->gpfn, sizeof(arg->gpfn)); break; } case VKI_XENMEM_get_sharing_freed_pages: case VKI_XENMEM_get_sharing_shared_pages: break; + case VKI_XENMEM_get_pod_target: + case VKI_XENMEM_set_pod_target: { + struct vki_xen_pod_target *arg = + (struct vki_xen_pod_target *)ARG2; + PRE_MEM_READ("XENMEM_set_pod_target target_pages", + (Addr)&arg->target_pages, sizeof(arg->target_pages)); + PRE_MEM_READ("XENMEM_set_pod_target domid", + (Addr)&arg->domid, sizeof(arg->domid)); + break; + } case VKI_XENMEM_access_op: { struct vki_xen_mem_event_op *arg = (struct vki_xen_mem_event_op *)ARG2; PRE_MEM_READ("XENMEM_access_op domid", (Addr)&arg->domain, sizeof(arg->domain)); PRE_MEM_READ("XENMEM_access_op op", (Addr)&arg->op, sizeof(arg->op)); PRE_MEM_READ("XENMEM_access_op gfn", (Addr)&arg->gfn, sizeof(arg->gfn)); break; } default: @@ -1549,24 +1559,25 @@ PRE(tmem_op) #undef __PRE_XEN_TMEMOP_READ } POST(memory_op) { switch (ARG1) { case VKI_XENMEM_maximum_ram_page: case VKI_XENMEM_set_memory_map: case VKI_XENMEM_decrease_reservation: case VKI_XENMEM_claim_pages: case VKI_XENMEM_maximum_gpfn: case VKI_XENMEM_remove_from_physmap: + case VKI_XENMEM_set_pod_target: case VKI_XENMEM_access_op: /* No outputs */ break; case VKI_XENMEM_increase_reservation: case VKI_XENMEM_populate_physmap: { struct xen_memory_reservation *memory_reservation = (struct xen_memory_reservation *)ARG2; POST_MEM_WRITE((Addr)memory_reservation->extent_start.p, sizeof(vki_xen_pfn_t) * memory_reservation->nr_extents); break; } @@ -1593,24 +1604,33 @@ POST(memory_op) case VKI_XENMEM_add_to_physmap: { struct vki_xen_add_to_physmap *arg = (struct vki_xen_add_to_physmap *)ARG2; if (arg->space == VKI_XENMAPSPACE_gmfn_range) POST_MEM_WRITE(ARG2, sizeof(*arg)); } case VKI_XENMEM_get_sharing_freed_pages: case VKI_XENMEM_get_sharing_shared_pages: /* No outputs */ break; + case VKI_XENMEM_get_pod_target: { + struct vki_xen_pod_target *arg = + (struct vki_xen_pod_target *)ARG2; + POST_MEM_WRITE((Addr)&arg->tot_pages, sizeof(arg->tot_pages)); + POST_MEM_WRITE((Addr)&arg->pod_cache_pages, sizeof(arg->pod_cache_pages)); + POST_MEM_WRITE((Addr)&arg->pod_entries, sizeof(arg->pod_entries)); + } + break; + } } POST(mmuext_op) { unsigned int *pdone = (unsigned int *)ARG3; /* simplistic */ POST_MEM_WRITE((Addr)pdone, sizeof(*pdone)); } POST(xsm_op) { --- a/include/vki/vki-xen-memory.h +++ b/include/vki/vki-xen-memory.h @@ -84,24 +84,32 @@ struct vki_xen_add_to_physmap { #define VKI_XENMAPSPACE_gmfn_foreign 4 unsigned int space; vki_xen_ulong_t idx; vki_xen_pfn_t gpfn; }; struct vki_xen_remove_from_physmap { vki_xen_domid_t domid; vki_xen_pfn_t gpfn; }; +struct vki_xen_pod_target { + vki_uint64_t target_pages; + vki_uint64_t tot_pages; + vki_uint64_t pod_cache_pages; + vki_uint64_t pod_entries; + vki_xen_domid_t domid; +}; + struct vki_xen_mem_event_op { vki_uint8_t op; vki_xen_domid_t domain; vki_uint64_t buffer; vki_uint64_t gfn; }; #endif // __VKI_XEN_MEMORY_H /*--------------------------------------------------------------------*/ /*--- end ---*/ /*--------------------------------------------------------------------*/
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor