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;
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;
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 */
//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;