#pragma once

/* MSRs needed for vmx */
#define IA32_VMX_BASIC			0x00000480
#define IA32_VMX_PINBASED_CTLS		0x00000481
#define IA32_VMX_PROCBASED_CTLS		0x00000482
#define IA32_VMX_EXIT_CTLS		0x00000483
#define IA32_VMX_ENTRY_CTLS		0x00000484
#define IA32_VMX_MISC			0x00000485
#define IA32_VMX_CR0_FIXED0		0x00000486
#define IA32_VMX_CR0_FIXED1		0x00000487
#define IA32_VMX_CR4_FIXED0		0x00000488
#define IA32_VMX_CR4_FIXED1		0x00000489

#define IA32_VMX_PROCBASED_CTLS2	0x0000048B
#define IA32_VMX_EPT_VPID_CAP		0x0000048C
#define IA32_VMX_TRUE_PINBASED_CTLS	0x0000048D
#define IA32_VMX_TRUE_PROCBASED_CTLS	0x0000048E
#define IA32_VMX_TRUE_EXIT_CTLS		0x0000048F
#define IA32_VMX_TRUE_ENTRY_CTLS	0x00000490
#define IA32_VMX_PROCBASED_CTLS3	0x00000492

#define IA32_PAT			0x00000277
#define IA32_FS_BASE			0xC0000100
#define IA32_GS_BASE			0xC0000101
#define IA32_KERNEL_GSBASE		0xC0000102
#define IA32_EFER			0xC0000080

#define IA32_VMX_PINBASED_CTLS		0x00000481
#define IA32_VMX_PROCBASED_CTLS		0x00000482

#define IA32_BIOS_SIGN_ID		0x0000008B

#define IA32_TSC_AUX			0xC0000103
#define IA32_STAR			0xC0000081
#define IA32_LSTAR			0xC0000082
#define IA32_CSTAR			0xC0000083
#define IA32_SYSENTER_CS		0x00000174
#define IA32_SYSENTER_ESP		0x00000175
#define IA32_SYSENTER_EIP		0x00000176
#define IA32_FMASK			0xC0000084
