Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-buildrequires
valgrind
valgrind.xen-4.5-versioned-XEN_SYSCTL_topologyi...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File valgrind.xen-4.5-versioned-XEN_SYSCTL_topologyinfo.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de> Date: Fri, 16 Nov 2018 17:21:12 +0100 Subject: xen-4.5: versioned XEN_SYSCTL_topologyinfo The XEN_SYSCTL_topologyinfo was available until xen-4.5. In xen-4.6 it was replaced by XEN_SYSCTL_cputopoinfo. Both share the same sysctl number. bz#390553 --- coregrind/m_syswrap/syswrap-xen.c | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -757,28 +757,37 @@ PRE(sysctl) { if (sysctl->u.cpupool_op.op == VKI_XEN_SYSCTL_CPUPOOL_OP_ADDCPU || sysctl->u.cpupool_op.op == VKI_XEN_SYSCTL_CPUPOOL_OP_RMCPU) PRE_XEN_SYSCTL_READ(cpupool_op, cpu); break; case VKI_XEN_SYSCTL_physinfo: /* No input params */ break; case VKI_XEN_SYSCTL_topologyinfo: - PRE_XEN_SYSCTL_READ(topologyinfo, max_cpu_index); - PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_core); - PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_socket); - PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_node); + switch (sysctl->interface_version) + { + case 0x00000007: + case 0x00000008: + case 0x00000009: + case 0x0000000a: + case 0x0000000b: + PRE_XEN_SYSCTL_READ(topologyinfo, max_cpu_index); + PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_core); + PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_socket); + PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_node); + break; + } break; case VKI_XEN_SYSCTL_numainfo: switch (sysctl->interface_version) { case 0x00000008: case 0x00000009: case 0x0000000a: case 0x0000000b: PRE_XEN_SYSCTL_READ(numainfo_00000008, max_node_index); PRE_XEN_SYSCTL_READ(numainfo_00000008, node_to_memsize); PRE_XEN_SYSCTL_READ(numainfo_00000008, node_to_memfree); @@ -2085,34 +2094,43 @@ POST(sysctl) POST_XEN_SYSCTL_WRITE(physinfo_00000010, cpu_khz); POST_XEN_SYSCTL_WRITE(physinfo_00000010, capabilities); POST_XEN_SYSCTL_WRITE(physinfo_00000010, total_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, free_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, scrub_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, outstanding_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, max_mfn); POST_XEN_SYSCTL_WRITE(physinfo_00000010, hw_cap[8]); } break; case VKI_XEN_SYSCTL_topologyinfo: - POST_XEN_SYSCTL_WRITE(topologyinfo, max_cpu_index); - if (sysctl->u.topologyinfo.cpu_to_core.p) - POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_core.p, - sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); - if (sysctl->u.topologyinfo.cpu_to_socket.p) - POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_socket.p, - sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); - if (sysctl->u.topologyinfo.cpu_to_node.p) - POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_node.p, - sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); + switch (sysctl->interface_version) + { + case 0x00000007: + case 0x00000008: + case 0x00000009: + case 0x0000000a: + case 0x0000000b: + POST_XEN_SYSCTL_WRITE(topologyinfo, max_cpu_index); + if (sysctl->u.topologyinfo.cpu_to_core.p) + POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_core.p, + sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); + if (sysctl->u.topologyinfo.cpu_to_socket.p) + POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_socket.p, + sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); + if (sysctl->u.topologyinfo.cpu_to_node.p) + POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_node.p, + sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); + break; + } break; case VKI_XEN_SYSCTL_numainfo: switch (sysctl->interface_version) { case 0x00000008: case 0x00000009: case 0x0000000a: case 0x0000000b: POST_XEN_SYSCTL_WRITE(numainfo_00000008, max_node_index); POST_MEM_WRITE((Addr)sysctl->u.numainfo_00000008.node_to_memsize.p, sizeof(uint64_t) * sysctl->u.numainfo_00000008.max_node_index);
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