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_SYSCTL_get_cpu_f...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File valgrind.xen-4.7-versioned-XEN_SYSCTL_get_cpu_featureset.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de> Date: Fri, 16 Nov 2018 17:21:31 +0100 Subject: xen-4.7: versioned XEN_SYSCTL_get_cpu_featureset bz#390553 --- coregrind/m_syswrap/syswrap-xen.c | 22 ++++++++++++++++++++++ include/vki/vki-xen-sysctl.h | 8 ++++++++ 2 files changed, 30 insertions(+) --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -810,24 +810,34 @@ PRE(sysctl) { break; case VKI_XEN_SYSCTL_pcitopoinfo: switch (sysctl->interface_version) { case 0x0000000c: PRE_XEN_SYSCTL_READ(pcitopoinfo_0000000c, num_devs); PRE_XEN_SYSCTL_READ(pcitopoinfo_0000000c, devs); break; } break; + case VKI_XEN_SYSCTL_get_cpu_featureset: + switch (sysctl->interface_version) + { + case 0x0000000d: + PRE_XEN_SYSCTL_READ(cpu_featureset_0000000d, index); + PRE_XEN_SYSCTL_READ(cpu_featureset_0000000d, nr_features); + break; + } + break; + default: bad_subop(tid, layout, arrghs, status, flags, "__HYPERVISOR_sysctl", sysctl->cmd); break; } #undef PRE_XEN_SYSCTL_READ #undef __PRE_XEN_SYSCTL_READ } PRE(domctl) { struct vki_xen_domctl *domctl = (struct vki_xen_domctl *)ARG1; @@ -2221,24 +2231,36 @@ POST(sysctl) break; case VKI_XEN_SYSCTL_pcitopoinfo: switch (sysctl->interface_version) { case 0x0000000c: POST_XEN_SYSCTL_WRITE(pcitopoinfo_0000000c, num_devs); POST_MEM_WRITE((Addr)sysctl->u.pcitopoinfo_0000000c.nodes.p, sizeof(uint32_t) * sysctl->u.pcitopoinfo_0000000c.num_devs); break; } break; + + case VKI_XEN_SYSCTL_get_cpu_featureset: + switch (sysctl->interface_version) + { + case 0x0000000d: + POST_XEN_SYSCTL_WRITE(cpu_featureset_0000000d, nr_features); + POST_MEM_WRITE((Addr)sysctl->u.cpu_featureset_0000000d.features.p, + sizeof(uint32_t) * sysctl->u.cpu_featureset_0000000d.nr_features); + break; + } + break; + /* No outputs */ case VKI_XEN_SYSCTL_debug_keys: break; } #undef POST_XEN_SYSCTL_WRITE #undef __POST_XEN_SYSCTL_WRITE } POST(domctl){ struct vki_xen_domctl *domctl = (struct vki_xen_domctl *)ARG1; switch (domctl->interface_version) { --- a/include/vki/vki-xen-sysctl.h +++ b/include/vki/vki-xen-sysctl.h @@ -40,24 +40,25 @@ #define VKI_XEN_SYSCTL_page_offline_op 14 #define VKI_XEN_SYSCTL_lockprof_op 15 #define VKI_XEN_SYSCTL_topologyinfo 16 #define VKI_XEN_SYSCTL_cputopoinfo 16 /* Since xen-4.6 */ #define VKI_XEN_SYSCTL_numainfo 17 #define VKI_XEN_SYSCTL_cpupool_op 18 #define VKI_XEN_SYSCTL_scheduler_op 19 #define VKI_XEN_SYSCTL_coverage_op 20 #define VKI_XEN_SYSCTL_psr_cmt_op 21 #define VKI_XEN_SYSCTL_pcitopoinfo 22 #define VKI_XEN_SYSCTL_psr_cat_op 23 #define VKI_XEN_SYSCTL_tmem_op 24 +#define VKI_XEN_SYSCTL_get_cpu_featureset 26 struct vki_xen_sysctl_readconsole { /* IN */ vki_uint8_t clear; vki_uint8_t incremental; vki_uint8_t pad0, pad1; /* * IN: Start index for consumption if @incremental. * OUT: End index after consuming from the console. */ @@ -226,24 +227,30 @@ struct vki_xen_sysctl_physinfo_00000010 { vki_xen_uint64_aligned_t scrub_pages; vki_xen_uint64_aligned_t outstanding_pages; vki_xen_uint64_aligned_t max_mfn; vki_uint32_t hw_cap[8]; }; struct vki_xen_sysctl_sched_id { /* OUT variable. */ vki_uint32_t sched_id; }; +struct vki_xen_sysctl_cpu_featureset_0000000d { + vki_uint32_t index; + vki_uint32_t nr_features; + VKI_XEN_GUEST_HANDLE_64(vki_uint32) features; +}; + struct vki_xen_sysctl { vki_uint32_t cmd; vki_uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */ union { struct vki_xen_sysctl_readconsole readconsole; //struct vki_xen_sysctl_tbuf_op tbuf_op; struct vki_xen_sysctl_physinfo_00000008 physinfo_00000008; struct vki_xen_sysctl_physinfo_0000000a physinfo_0000000a; struct vki_xen_sysctl_physinfo_00000010 physinfo_00000010; struct vki_xen_sysctl_topologyinfo topologyinfo; struct vki_xen_sysctl_cputopoinfo_0000000c cputopoinfo_0000000c; struct vki_xen_sysctl_pcitopoinfo_0000000c pcitopoinfo_0000000c; @@ -260,22 +267,23 @@ struct vki_xen_sysctl { //struct vki_xen_sysctl_availheap availheap; //struct vki_xen_sysctl_get_pmstat get_pmstat; //struct vki_xen_sysctl_cpu_hotplug cpu_hotplug; //struct vki_xen_sysctl_pm_op pm_op; //struct vki_xen_sysctl_page_offline_op page_offline; //struct vki_xen_sysctl_lockprof_op lockprof_op; struct vki_xen_sysctl_cpupool_op cpupool_op; //struct vki_xen_sysctl_scheduler_op scheduler_op; //struct vki_xen_sysctl_coverage_op coverage_op; //struct vki_xen_sysctl_psr_cmt_op psr_cmt_op; //struct vki_xen_sysctl_psr_cat_op psr_cat_op; //struct vki_xen_sysctl_tmem_op tmem_op; + struct vki_xen_sysctl_cpu_featureset_0000000d cpu_featureset_0000000d; vki_uint8_t pad[128]; } u; }; #endif // __VKI_XEN_SYSCTL_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