[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 01/13] xen: Fix XEN_SYSCTL_getdomaininfolist for version 0xa
Also add a default case so future bumps of the sysctl interface version dont result in spurious passes of the IOCTL handler. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- coregrind/m_syswrap/syswrap-xen.c | 17 +++++++++++++++++ include/vki/vki-xen-sysctl.h | 10 ++++++++++ 2 files changed, 27 insertions(+) diff --git a/coregrind/m_syswrap/syswrap-xen.c b/coregrind/m_syswrap/syswrap-xen.c index ce300e8..0314451 100644 --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -401,6 +401,17 @@ PRE(sysctl) { PRE_XEN_SYSCTL_READ(getdomaininfolist_00000009, max_domains); PRE_XEN_SYSCTL_READ(getdomaininfolist_00000009, buffer); break; + case 0x0000000a: + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000a, first_domain); + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000a, max_domains); + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000a, buffer); + break; + default: + VG_(dmsg)("WARNING: XEN_SYSCTL_getdomaininfolist for sysctl version " + "%"PRIx32" not implemented yet\n", + sysctl->interface_version); + SET_STATUS_Failure(VKI_EINVAL); + return; } break; @@ -801,6 +812,12 @@ POST(sysctl) sizeof(*sysctl->u.getdomaininfolist_00000009.buffer.p) * sysctl->u.getdomaininfolist_00000009.num_domains); break; + case 0x0000000a: + POST_XEN_SYSCTL_WRITE(getdomaininfolist_0000000a, num_domains); + POST_MEM_WRITE((Addr)sysctl->u.getdomaininfolist_0000000a.buffer.p, + sizeof(*sysctl->u.getdomaininfolist_0000000a.buffer.p) + * sysctl->u.getdomaininfolist_0000000a.num_domains); + break; } break; diff --git a/include/vki/vki-xen-sysctl.h b/include/vki/vki-xen-sysctl.h index 453752c..06cbaf6 100644 --- a/include/vki/vki-xen-sysctl.h +++ b/include/vki/vki-xen-sysctl.h @@ -56,6 +56,15 @@ struct vki_xen_sysctl_getdomaininfolist_00000009 { vki_uint32_t num_domains; }; +struct vki_xen_sysctl_getdomaininfolist_0000000a { + /* IN variables. */ + vki_xen_domid_t first_domain; + vki_uint32_t max_domains; + VKI_XEN_GUEST_HANDLE_64(vki_xen_domctl_getdomaininfo_00000009_t) buffer; + /* OUT variables. */ + vki_uint32_t num_domains; +}; + #define VKI_XEN_SYSCTL_CPUPOOL_OP_CREATE 1 /* C */ #define VKI_XEN_SYSCTL_CPUPOOL_OP_DESTROY 2 /* D */ #define VKI_XEN_SYSCTL_CPUPOOL_OP_INFO 3 /* I */ @@ -139,6 +148,7 @@ struct vki_xen_sysctl { //struct vki_xen_sysctl_perfc_op perfc_op; struct vki_xen_sysctl_getdomaininfolist_00000008 getdomaininfolist_00000008; struct vki_xen_sysctl_getdomaininfolist_00000009 getdomaininfolist_00000009; + struct vki_xen_sysctl_getdomaininfolist_0000000a getdomaininfolist_0000000a; //struct vki_xen_sysctl_debug_keys debug_keys; //struct vki_xen_sysctl_getcpuinfo getcpuinfo; //struct vki_xen_sysctl_availheap availheap; -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |