Commit | Line | Data |
---|---|---|
6aa8b732 AK |
1 | #ifndef __KVM_SVM_H |
2 | #define __KVM_SVM_H | |
3 | ||
9d8f549d | 4 | #include <linux/kernel.h> |
6aa8b732 AK |
5 | #include <linux/types.h> |
6 | #include <linux/list.h> | |
7 | #include <asm/msr.h> | |
8 | ||
9 | #include "svm.h" | |
10 | #include "kvm.h" | |
11 | ||
94dfbdb3 | 12 | static const u32 host_save_user_msrs[] = { |
05b3e0c2 | 13 | #ifdef CONFIG_X86_64 |
6aa8b732 | 14 | MSR_STAR, MSR_LSTAR, MSR_CSTAR, MSR_SYSCALL_MASK, MSR_KERNEL_GS_BASE, |
94dfbdb3 | 15 | MSR_FS_BASE, |
6aa8b732 AK |
16 | #endif |
17 | MSR_IA32_SYSENTER_CS, MSR_IA32_SYSENTER_ESP, MSR_IA32_SYSENTER_EIP, | |
6aa8b732 AK |
18 | }; |
19 | ||
94dfbdb3 | 20 | #define NR_HOST_SAVE_USER_MSRS ARRAY_SIZE(host_save_user_msrs) |
6aa8b732 AK |
21 | #define NUM_DB_REGS 4 |
22 | ||
a2fa3e9f GH |
23 | struct kvm_vcpu; |
24 | ||
6aa8b732 | 25 | struct vcpu_svm { |
fb3f0f51 | 26 | struct kvm_vcpu vcpu; |
6aa8b732 AK |
27 | struct vmcb *vmcb; |
28 | unsigned long vmcb_pa; | |
29 | struct svm_cpu_data *svm_data; | |
30 | uint64_t asid_generation; | |
31 | ||
6aa8b732 AK |
32 | unsigned long db_regs[NUM_DB_REGS]; |
33 | ||
34 | u64 next_rip; | |
35 | ||
94dfbdb3 AL |
36 | u64 host_user_msrs[NR_HOST_SAVE_USER_MSRS]; |
37 | u64 host_gs_base; | |
6aa8b732 AK |
38 | unsigned long host_cr2; |
39 | unsigned long host_db_regs[NUM_DB_REGS]; | |
40 | unsigned long host_dr6; | |
41 | unsigned long host_dr7; | |
42 | }; | |
43 | ||
44 | #endif | |
45 |