xref: /openbmc/qemu/target/i386/kvm/xen-emu.h (revision ddf0fd9a)
161491cf4SDavid Woodhouse /*
261491cf4SDavid Woodhouse  * Xen HVM emulation support in KVM
361491cf4SDavid Woodhouse  *
461491cf4SDavid Woodhouse  * Copyright © 2019 Oracle and/or its affiliates. All rights reserved.
561491cf4SDavid Woodhouse  * Copyright © 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
661491cf4SDavid Woodhouse  *
761491cf4SDavid Woodhouse  * This work is licensed under the terms of the GNU GPL, version 2 or later.
861491cf4SDavid Woodhouse  * See the COPYING file in the top-level directory.
961491cf4SDavid Woodhouse  *
1061491cf4SDavid Woodhouse  */
1161491cf4SDavid Woodhouse 
1261491cf4SDavid Woodhouse #ifndef QEMU_I386_KVM_XEN_EMU_H
1361491cf4SDavid Woodhouse #define QEMU_I386_KVM_XEN_EMU_H
1461491cf4SDavid Woodhouse 
1561491cf4SDavid Woodhouse #define XEN_HYPERCALL_MSR               0x40000000
16f66b8a83SJoao Martins #define XEN_HYPERCALL_MSR_HYPERV        0x40000200
1761491cf4SDavid Woodhouse 
18f66b8a83SJoao Martins #define XEN_CPUID_SIGNATURE        0
19f66b8a83SJoao Martins #define XEN_CPUID_VENDOR           1
20f66b8a83SJoao Martins #define XEN_CPUID_HVM_MSR          2
21f66b8a83SJoao Martins #define XEN_CPUID_TIME             3
22f66b8a83SJoao Martins #define XEN_CPUID_HVM              4
23f66b8a83SJoao Martins 
24f66b8a83SJoao Martins #define XEN_VERSION(maj, min) ((maj) << 16 | (min))
25f66b8a83SJoao Martins 
26f66b8a83SJoao Martins int kvm_xen_init(KVMState *s, uint32_t hypercall_msr);
275e691a95SDavid Woodhouse int kvm_xen_init_vcpu(CPUState *cs);
2855a3f666SJoao Martins int kvm_xen_handle_exit(X86CPU *cpu, struct kvm_xen_exit *exit);
29c345104cSJoao Martins int kvm_put_xen_state(CPUState *cs);
30c345104cSJoao Martins int kvm_get_xen_state(CPUState *cs);
31*ddf0fd9aSDavid Woodhouse void kvm_xen_maybe_deassert_callback(CPUState *cs);
3261491cf4SDavid Woodhouse 
3361491cf4SDavid Woodhouse #endif /* QEMU_I386_KVM_XEN_EMU_H */
34