From: Andrew Cooper <andrew.cooper3@citrix.com> Xen takes a pointer to a sysctl_sched_id struct, and writes a single uint32_t into it. There are no memory reads, and a single memory write. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- coregrind/m_syswrap/syswrap-xen.c | 8 ++++++++ include/vki/vki-xen-sysctl.h | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletions(-) diff --git a/coregrind/m_syswrap/syswrap-xen.c b/coregrind/m_syswrap/syswrap-xen.c index 61aa1e1..8a0196f 100644 --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -400,6 +400,10 @@ PRE(sysctl) { } break; + case VKI_XEN_SYSCTL_sched_id: + /* No inputs */ + break; + case VKI_XEN_SYSCTL_cpupool_op: PRE_XEN_SYSCTL_READ(cpupool_op, op); @@ -791,6 +795,10 @@ POST(sysctl) } break; + case VKI_XEN_SYSCTL_sched_id: + POST_XEN_SYSCTL_WRITE(sched_id, sched_id); + break; + case VKI_XEN_SYSCTL_cpupool_op: if (sysctl->u.cpupool_op.op == VKI_XEN_SYSCTL_CPUPOOL_OP_CREATE || sysctl->u.cpupool_op.op == VKI_XEN_SYSCTL_CPUPOOL_OP_INFO) diff --git a/include/vki/vki-xen-sysctl.h b/include/vki/vki-xen-sysctl.h index 32c8722..453752c 100644 --- a/include/vki/vki-xen-sysctl.h +++ b/include/vki/vki-xen-sysctl.h @@ -120,6 +120,11 @@ struct vki_xen_sysctl_physinfo_0000000a { vki_uint32_t capabilities; }; +struct vki_xen_sysctl_sched_id { + /* OUT variable. */ + vki_uint32_t sched_id; +}; + struct vki_xen_sysctl { vki_uint32_t cmd; vki_uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */ @@ -130,7 +135,7 @@ struct vki_xen_sysctl { struct vki_xen_sysctl_physinfo_0000000a physinfo_0000000a; struct vki_xen_sysctl_topologyinfo topologyinfo; struct vki_xen_sysctl_numainfo numainfo; - //struct vki_xen_sysctl_sched_id sched_id; + struct vki_xen_sysctl_sched_id sched_id; //struct vki_xen_sysctl_perfc_op perfc_op; struct vki_xen_sysctl_getdomaininfolist_00000008 getdomaininfolist_00000008; struct vki_xen_sysctl_getdomaininfolist_00000009 getdomaininfolist_00000009; -- 1.7.2.5