From: Joao Martins <joao.m.martins@oracle.com>
Specifically XENMEM_add_to_physmap with space XENMAPSPACE_shared_info to
allow the guest to set its shared_info page.
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
[dwmw2: Use the xen_overlay device]
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
target/i386/trace-events | 1 +
target/i386/xen.c | 59 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 59 insertions(+), 1 deletion(-)
+static bool kvm_xen_hcall_memory_op(struct kvm_xen_exit *exit,
+ int cmd, uint64_t arg, X86CPU *cpu)
+{
+ CPUState *cs = CPU(cpu);
+ int err = 0;
+
+ switch (cmd) {
+ case XENMEM_add_to_physmap: {
+ struct xen_add_to_physmap xatp;
+
+ err = kvm_copy_from_gva(cs, arg, &xatp, sizeof(xatp));
+ if (err) {
+ break;
+ }
+
+ switch (xatp.space) {
+ case XENMAPSPACE_shared_info:
+ break;
+ default:
+ err = -ENOSYS;
+ break;