xref: /xnu-8020.140.41/tests/hvtest_x86_guest.h (revision 27b03b360a988dfd3dfdf34262bb0042026747cc)
1 #pragma once
2 
3 #include <os/base.h>
4 #include <stdint.h>
5 
6 extern void save_restore_regs_entry(uint64_t arg) OS_NORETURN;
7 extern void save_restore_debug_regs_entry(uint64_t arg) OS_NORETURN;
8 extern void simple_real_mode_vcpu_entry(uint64_t arg) OS_NORETURN;
9 extern void simple_protected_mode_vcpu_entry(uint64_t arg) OS_NORETURN;
10 extern void simple_long_mode_vcpu_entry(uint64_t arg) OS_NORETURN;
11 extern void smp_vcpu_entry(uint64_t) OS_NORETURN;
12 extern void radar61961809_entry(uint64_t) OS_NORETURN;
13 extern void radar61961809_prepare(uint64_t) OS_NORETURN;
14 extern void radar61961809_loop64(uint64_t) OS_NORETURN;
15 extern void radar60691363_entry(uint64_t) OS_NORETURN;
16 extern void pio_entry(uint64_t) OS_NORETURN;
17 extern void pio_entry_basic(uint64_t) OS_NORETURN;
18 
19 #define MSR_IA32_STAR           0xc0000081
20 #define MSR_IA32_LSTAR          0xc0000082
21 #define MSR_IA32_CSTAR          0xc0000083
22 #define MSR_IA32_FMASK          0xc0000084
23 #define MSR_IA32_KERNEL_GS_BASE 0xc0000102
24 #define MSR_IA32_TSC            0x00000010
25 #define MSR_IA32_TSC_AUX        0xc0000103
26 
27 #define MSR_IA32_SYSENTER_CS    0x00000174
28 #define MSR_IA32_SYSENTER_ESP   0x00000175
29 #define MSR_IA32_SYSENTER_EIP   0x00000176
30 #define MSR_IA32_FS_BASE        0xc0000100
31 #define MSR_IA32_GS_BASE        0xc0000101
32 
33 extern void native_msr_vcpu_entry(uint64_t) OS_NORETURN;
34