Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-buildrequires
valgrind
valgrind.xen-4.7-versioned-xen_arch_domainconfi...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File valgrind.xen-4.7-versioned-xen_arch_domainconfig.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de> Date: Fri, 23 Nov 2018 15:45:25 +0100 Subject: xen-4.7: versioned xen_arch_domainconfig New layout in xen-4.7, update xen_domctl_createdomain. Use value 0x0c as suffix and case, even if this is the domctl value of xen-4.8. This is because the domctl value was not updated for the release of xen-4.7. bz#390553 --- coregrind/m_syswrap/syswrap-xen.c | 37 ++++++++++++++++++++++++++++++------- include/vki/vki-xen-domctl.h | 25 ++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 8 deletions(-) --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -900,35 +900,58 @@ PRE(domctl) case VKI_XEN_DOMCTL_createdomain: switch (domctl->interface_version) { case 0x00000007: case 0x00000008: case 0x00000009: case 0x0000000a: PRE_XEN_DOMCTL_READ(createdomain_00000004, ssidref); PRE_XEN_DOMCTL_READ(createdomain_00000004, handle); PRE_XEN_DOMCTL_READ(createdomain_00000004, flags); break; case 0x0000000b: - PRE_XEN_DOMCTL_READ(createdomain_0000000b, ssidref); - PRE_XEN_DOMCTL_READ(createdomain_0000000b, handle); - PRE_XEN_DOMCTL_READ(createdomain_0000000b, flags); + case 0x0000000c: + switch (vki_assumed_xenversion) { + case vki_xenversion_406: + PRE_XEN_DOMCTL_READ(createdomain_0000000b, ssidref); + PRE_XEN_DOMCTL_READ(createdomain_0000000b, handle); + PRE_XEN_DOMCTL_READ(createdomain_0000000b, flags); #if defined(__i386__) || defined(__x86_64__) - __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.dummy); + __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.dummy); #endif #if defined(__arm__) || defined(__aarch64__) - __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.gic_version); - __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.nr_spis); - __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.clock_frequency); + __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.gic_version); + __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.nr_spis); + __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.clock_frequency); #endif + break; + case vki_xenversion_unset: + case vki_xenversion_406_or_407: + vki_report_unknown_xenversion("VKI_XEN_DOMCTL_createdomain"); + /* fallthrough */ + case vki_xenversion_407: + default: + PRE_XEN_DOMCTL_READ(createdomain_0000000c, ssidref); + PRE_XEN_DOMCTL_READ(createdomain_0000000c, handle); + PRE_XEN_DOMCTL_READ(createdomain_0000000c, flags); +#if defined(__i386__) || defined(__x86_64__) + __PRE_XEN_DOMCTL_READ(createdomain_0000000c, createdomain_0000000c, config.emulation_flags); +#endif +#if defined(__arm__) || defined(__aarch64__) + __PRE_XEN_DOMCTL_READ(createdomain_0000000c, createdomain_0000000c, config.gic_version); + __PRE_XEN_DOMCTL_READ(createdomain_0000000c, createdomain_0000000c, config.nr_spis); + __PRE_XEN_DOMCTL_READ(createdomain_0000000c, createdomain_0000000c, config.clock_frequency); +#endif + break; + } break; } break; case VKI_XEN_DOMCTL_gethvmcontext: /* Xen unconditionally reads the 'buffer' pointer */ __PRE_XEN_DOMCTL_READ(gethvmcontext, hvmcontext, buffer); /* Xen only consumes 'size' if 'buffer' is non NULL. A NULL * buffer is a request for the required size. */ if ( domctl->u.hvmcontext.buffer.p ) __PRE_XEN_DOMCTL_READ(gethvmcontext, hvmcontext, size); break; --- a/include/vki/vki-xen-domctl.h +++ b/include/vki/vki-xen-domctl.h @@ -141,32 +141,54 @@ struct vki_xen_arch_domainconfig_0000000b { #if defined(__i386__) || defined(__x86_64__) vki_uint8_t dummy; #endif #if defined(__arm__) || defined(__aarch64__) /* IN/OUT */ vki_uint8_t gic_version; /* IN */ vki_uint32_t nr_spis; vki_uint32_t clock_frequency; #endif }; +/* The layout changed in 4.07, which shares domctl with 4.06 */ +struct vki_xen_arch_domainconfig_0000000c { +#if defined(__i386__) || defined(__x86_64__) + vki_uint32_t emulation_flags; +#endif +#if defined(__arm__) || defined(__aarch64__) + /* IN/OUT */ + vki_uint8_t gic_version; + /* IN */ + vki_uint32_t nr_spis; + vki_uint32_t clock_frequency; +#endif +}; + struct vki_xen_domctl_createdomain_0000000b { /* IN parameters */ vki_uint32_t ssidref; vki_xen_domain_handle_t handle; vki_uint32_t flags; struct vki_xen_arch_domainconfig_0000000b config; }; +struct vki_xen_domctl_createdomain_0000000c { + /* IN parameters */ + vki_uint32_t ssidref; + vki_xen_domain_handle_t handle; + vki_uint32_t flags; + struct vki_xen_arch_domainconfig_0000000c config; +}; + struct vki_xen_domctl_getdomaininfo_00000007 { /* OUT variables. */ vki_xen_domid_t domain; vki_uint32_t flags; vki_xen_uint64_aligned_t tot_pages; vki_xen_uint64_aligned_t max_pages; vki_xen_uint64_aligned_t shr_pages; vki_xen_uint64_aligned_t shared_info_frame; vki_xen_uint64_aligned_t cpu_time; vki_uint32_t nr_online_vcpus; vki_uint32_t max_vcpu_id; vki_uint32_t ssidref; @@ -222,25 +244,25 @@ struct vki_xen_domctl_getdomaininfo_0000000f { vki_xen_uint64_aligned_t tot_pages; vki_xen_uint64_aligned_t max_pages; vki_xen_uint64_aligned_t outstanding_pages; vki_xen_uint64_aligned_t shr_pages; vki_xen_uint64_aligned_t paged_pages; vki_xen_uint64_aligned_t shared_info_frame; vki_xen_uint64_aligned_t cpu_time; vki_uint32_t nr_online_vcpus; vki_uint32_t max_vcpu_id; vki_uint32_t ssidref; vki_xen_domain_handle_t handle; vki_uint32_t cpupool; - struct vki_xen_arch_domainconfig_0000000b arch; + struct vki_xen_arch_domainconfig_0000000c arch; }; typedef struct vki_xen_domctl_getdomaininfo_0000000f vki_xen_domctl_getdomaininfo_0000000f_t; DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_getdomaininfo_0000000f_t); /* Get/set the NUMA node(s) with which the guest has affinity with. */ /* XEN_DOMCTL_setnodeaffinity */ /* XEN_DOMCTL_getnodeaffinity */ struct vki_xen_domctl_nodeaffinity { struct vki_xenctl_bitmap nodemap;/* IN */ }; typedef struct vki_xen_domctl_nodeaffinity vki_xen_domctl_nodeaffinity_t; DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_nodeaffinity_t); @@ -684,24 +706,25 @@ struct vki_xen_domctl_monitor_op_00000011 { vki_uint8_t sync; } debug_exception; } u; }; struct vki_xen_domctl { vki_uint32_t cmd; vki_uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */ vki_xen_domid_t domain; union { struct vki_xen_domctl_createdomain_00000004 createdomain_00000004; struct vki_xen_domctl_createdomain_0000000b createdomain_0000000b; + struct vki_xen_domctl_createdomain_0000000c createdomain_0000000c; struct vki_xen_domctl_getdomaininfo_00000007 getdomaininfo_00000007; struct vki_xen_domctl_getdomaininfo_00000008 getdomaininfo_00000008; struct vki_xen_domctl_getdomaininfo_00000009 getdomaininfo_00000009; //struct vki_xen_domctl_getmemlist getmemlist; //struct vki_xen_domctl_getpageframeinfo getpageframeinfo; //struct vki_xen_domctl_getpageframeinfo2 getpageframeinfo2; struct vki_xen_domctl_getpageframeinfo3 getpageframeinfo3; struct vki_xen_domctl_nodeaffinity nodeaffinity; struct vki_xen_domctl_vcpuaffinity_00000009 vcpuaffinity_00000009; struct vki_xen_domctl_vcpuaffinity_0000000a vcpuaffinity_0000000a; struct vki_xen_domctl_shadow_op shadow_op; struct vki_xen_domctl_max_mem max_mem;
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