|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 5/8] xen/mem: handle XENMEM_get_cpu_topology in compat_memory_op
hvmloader needs to get cpu topology to build ACPI and boot APs.
Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx>
---
xen/common/compat/memory.c | 21 +++++++++++++++++++++
xen/include/xlat.lst | 1 +
2 files changed, 22 insertions(+)
diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
index 35bb259..b41f210 100644
--- a/xen/common/compat/memory.c
+++ b/xen/common/compat/memory.c
@@ -71,6 +71,7 @@ int compat_memory_op(unsigned int cmd,
XEN_GUEST_HANDLE_PARAM(void) compat)
struct xen_remove_from_physmap *xrfp;
struct xen_vnuma_topology_info *vnuma;
struct xen_mem_access_op *mao;
+ struct xen_cpu_topology_info *cti;
} nat;
union {
struct compat_memory_reservation rsrv;
@@ -79,6 +80,7 @@ int compat_memory_op(unsigned int cmd,
XEN_GUEST_HANDLE_PARAM(void) compat)
struct compat_add_to_physmap_batch atpb;
struct compat_vnuma_topology_info vnuma;
struct compat_mem_access_op mao;
+ struct compat_cpu_topology_info cti;
} cmp;
set_xen_guest_handle(nat.hnd, COMPAT_ARG_XLAT_VIRT_BASE);
@@ -395,6 +397,21 @@ int compat_memory_op(unsigned int cmd,
XEN_GUEST_HANDLE_PARAM(void) compat)
}
#endif
+ case XENMEM_get_cpu_topology:
+ {
+ enum XLAT_cpu_topology_info_tid tid = XLAT_cpu_topology_info_tid_h;
+
+ if ( copy_from_guest(&cmp.cti, compat, 1) )
+ return -EFAULT;
+#define XLAT_cpu_topology_info_HNDL_tid_h(_d_, _s_) \
+ guest_from_compat_handle((_d_)->tid.h, (_s_)->tid.h)
+
+ XLAT_cpu_topology_info(nat.cti, &cmp.cti);
+
+#undef XLAT_cpu_topology_info_HNDL_tid_h
+ break;
+ }
+
default:
return compat_arch_memory_op(cmd, compat);
}
@@ -527,6 +544,10 @@ int compat_memory_op(unsigned int cmd,
XEN_GUEST_HANDLE_PARAM(void) compat)
case XENMEM_access_op:
break;
+ case XENMEM_get_cpu_topology:
+ printk("finish getting cpu topology\n");
+ break;
+
case XENMEM_get_vnumainfo:
cmp.vnuma.nr_vnodes = nat.vnuma->nr_vnodes;
cmp.vnuma.nr_vcpus = nat.vnuma->nr_vcpus;
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 4346cbe..8380bb7 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -89,6 +89,7 @@
! reserved_device_memory_map memory.h
? vmemrange memory.h
! vnuma_topology_info memory.h
+! cpu_topology_info memory.h
? physdev_eoi physdev.h
? physdev_get_free_pirq physdev.h
? physdev_irq physdev.h
--
1.8.3.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |