Logo Search packages:      
Sourcecode: virtualbox-ose version File versions  Download package

hwacc_svm.h File Reference


Detailed Description

HWACCM - SVM Structures and Definitions. (VMM)

Definition in file hwacc_svm.h.

#include <VBox/types.h>
#include <VBox/err.h>
#include <iprt/assert.h>
#include <iprt/asm.h>

Go to the source code of this file.

Classes

struct  _SVM_VMCB
union  SVM_EVENT
union  SVM_INTCTRL
union  SVM_IOIO_EXIT
union  SVM_NPCTRL
union  SVM_TLBCTRL
struct  SVMGDTR
struct  SVMSEL

Defines

SVM features for cpuid 0x8000000a
#define AMD_CPUID_SVM_FEATURE_EDX_LBR_VIRT   RT_BIT(1)
#define AMD_CPUID_SVM_FEATURE_EDX_NESTED_PAGING   RT_BIT(0)
#define AMD_CPUID_SVM_FEATURE_EDX_NRIP_SAVE   RT_BIT(3)
#define AMD_CPUID_SVM_FEATURE_EDX_PAUSE_FILTER   RT_BIT(10)
#define AMD_CPUID_SVM_FEATURE_EDX_SSE_3_5_DISABLE   RT_BIT(9)
#define AMD_CPUID_SVM_FEATURE_EDX_SVM_LOCK   RT_BIT(2)
SVM_VMCB.ctrl.u32InterceptCtrl1
#define SVM_CTRL1_INTERCEPT_CPUID   RT_BIT(18)
#define SVM_CTRL1_INTERCEPT_CR0   RT_BIT(5)
#define SVM_CTRL1_INTERCEPT_FERR_FREEZE   RT_BIT(30)
#define SVM_CTRL1_INTERCEPT_GDTR_READS   RT_BIT(7)
#define SVM_CTRL1_INTERCEPT_GDTR_WRITES   RT_BIT(11)
#define SVM_CTRL1_INTERCEPT_HLT   RT_BIT(24)
#define SVM_CTRL1_INTERCEPT_IDTR_READS   RT_BIT(6)
#define SVM_CTRL1_INTERCEPT_IDTR_WRITES   RT_BIT(10)
#define SVM_CTRL1_INTERCEPT_INIT   RT_BIT(3)
#define SVM_CTRL1_INTERCEPT_INOUT_BITMAP   RT_BIT(27)
#define SVM_CTRL1_INTERCEPT_INTN   RT_BIT(21)
#define SVM_CTRL1_INTERCEPT_INTR   RT_BIT(0)
#define SVM_CTRL1_INTERCEPT_INVD   RT_BIT(22)
#define SVM_CTRL1_INTERCEPT_INVLPG   RT_BIT(25)
#define SVM_CTRL1_INTERCEPT_INVLPGA   RT_BIT(26)
#define SVM_CTRL1_INTERCEPT_IRET   RT_BIT(20)
#define SVM_CTRL1_INTERCEPT_LDTR_READS   RT_BIT(8)
#define SVM_CTRL1_INTERCEPT_LDTR_WRITES   RT_BIT(12)
#define SVM_CTRL1_INTERCEPT_MSR_SHADOW   RT_BIT(28)
#define SVM_CTRL1_INTERCEPT_NMI   RT_BIT(1)
#define SVM_CTRL1_INTERCEPT_PAUSE   RT_BIT(23)
#define SVM_CTRL1_INTERCEPT_POPF   RT_BIT(17)
#define SVM_CTRL1_INTERCEPT_PUSHF   RT_BIT(16)
#define SVM_CTRL1_INTERCEPT_RDPMC   RT_BIT(15)
#define SVM_CTRL1_INTERCEPT_RDTSC   RT_BIT(14)
#define SVM_CTRL1_INTERCEPT_RSM   RT_BIT(19)
#define SVM_CTRL1_INTERCEPT_SHUTDOWN   RT_BIT(31)
#define SVM_CTRL1_INTERCEPT_SMI   RT_BIT(2)
#define SVM_CTRL1_INTERCEPT_TASK_SWITCH   RT_BIT(29)
#define SVM_CTRL1_INTERCEPT_TR_READS   RT_BIT(9)
#define SVM_CTRL1_INTERCEPT_TR_WRITES   RT_BIT(13)
#define SVM_CTRL1_INTERCEPT_VINTR   RT_BIT(4)
SVM_VMCB.ctrl.u32InterceptCtrl2
#define SVM_CTRL2_INTERCEPT_CLGI   RT_BIT(5)
#define SVM_CTRL2_INTERCEPT_ICEBP   RT_BIT(8)
#define SVM_CTRL2_INTERCEPT_MONITOR   RT_BIT(10)
#define SVM_CTRL2_INTERCEPT_MWAIT_ARMED   RT_BIT(12)
#define SVM_CTRL2_INTERCEPT_MWAIT_UNCOND   RT_BIT(11)
#define SVM_CTRL2_INTERCEPT_RDTSCP   RT_BIT(7)
#define SVM_CTRL2_INTERCEPT_SKINIT   RT_BIT(6)
#define SVM_CTRL2_INTERCEPT_STGI   RT_BIT(4)
#define SVM_CTRL2_INTERCEPT_VMLOAD   RT_BIT(2)
#define SVM_CTRL2_INTERCEPT_VMMCALL   RT_BIT(1)
#define SVM_CTRL2_INTERCEPT_VMRUN   RT_BIT(0)
#define SVM_CTRL2_INTERCEPT_VMSAVE   RT_BIT(3)
#define SVM_CTRL2_INTERCEPT_WBINVD   RT_BIT(9)
SVM_INTCTRL.u3Type
#define SVM_EVENT_EXCEPTION   3
#define SVM_EVENT_EXTERNAL_IRQ   0
#define SVM_EVENT_NMI   2
#define SVM_EVENT_SOFTWARE_INT   4
SVM_VMCB.u64ExitInfo2
#define SVM_EXIT2_TASK_SWITCH_EFLAGS_RF   RT_BIT_64(48)
#define SVM_EXIT2_TASK_SWITCH_HAS_ERROR_CODE   RT_BIT_64(44)
#define SVM_EXIT2_TASK_SWITCH_IRET   RT_BIT_64(36)
#define SVM_EXIT2_TASK_SWITCH_JMP   RT_BIT_64(38)
SVM Basic Exit Reasons.
#define SVM_EXIT_CLGI   0x85
#define SVM_EXIT_CPUID   0x72
#define SVM_EXIT_CR0_SEL_WRITE   0x65
#define SVM_EXIT_EXCEPTION_0   0x40
#define SVM_EXIT_EXCEPTION_1   0x41
#define SVM_EXIT_EXCEPTION_10   0x50
#define SVM_EXIT_EXCEPTION_11   0x51
#define SVM_EXIT_EXCEPTION_12   0x52
#define SVM_EXIT_EXCEPTION_13   0x53
#define SVM_EXIT_EXCEPTION_14   0x54
#define SVM_EXIT_EXCEPTION_15   0x55
#define SVM_EXIT_EXCEPTION_16   0x56
#define SVM_EXIT_EXCEPTION_17   0x57
#define SVM_EXIT_EXCEPTION_18   0x58
#define SVM_EXIT_EXCEPTION_19   0x59
#define SVM_EXIT_EXCEPTION_1A   0x5A
#define SVM_EXIT_EXCEPTION_1B   0x5B
#define SVM_EXIT_EXCEPTION_1C   0x5C
#define SVM_EXIT_EXCEPTION_1D   0x5D
#define SVM_EXIT_EXCEPTION_1E   0x5E
#define SVM_EXIT_EXCEPTION_1F   0x5F
#define SVM_EXIT_EXCEPTION_2   0x42
#define SVM_EXIT_EXCEPTION_3   0x43
#define SVM_EXIT_EXCEPTION_4   0x44
#define SVM_EXIT_EXCEPTION_5   0x45
#define SVM_EXIT_EXCEPTION_6   0x46
#define SVM_EXIT_EXCEPTION_7   0x47
#define SVM_EXIT_EXCEPTION_8   0x48
#define SVM_EXIT_EXCEPTION_9   0x49
#define SVM_EXIT_EXCEPTION_A   0x4A
#define SVM_EXIT_EXCEPTION_B   0x4B
#define SVM_EXIT_EXCEPTION_C   0x4C
#define SVM_EXIT_EXCEPTION_D   0x4D
#define SVM_EXIT_EXCEPTION_E   0x4E
#define SVM_EXIT_EXCEPTION_F   0x4F
#define SVM_EXIT_FERR_FREEZE   0x7E
#define SVM_EXIT_GDTR_READ   0x67
#define SVM_EXIT_GDTR_WRITE   0x6B
#define SVM_EXIT_HLT   0x78
#define SVM_EXIT_ICEBP   0x88
#define SVM_EXIT_IDTR_READ   0x66
#define SVM_EXIT_IDTR_WRITE   0x6A
#define SVM_EXIT_INIT   0x63
#define SVM_EXIT_INTR   0x60
#define SVM_EXIT_INVALID   -1
#define SVM_EXIT_INVD   0x76
#define SVM_EXIT_INVLPG   0x79
#define SVM_EXIT_INVLPGA   0x7A
#define SVM_EXIT_IOIO   0x7B
#define SVM_EXIT_IRET   0x74
#define SVM_EXIT_LDTR_READ   0x68
#define SVM_EXIT_LDTR_WRITE   0x6C
#define SVM_EXIT_MONITOR   0x8A
#define SVM_EXIT_MSR   0x7C
#define SVM_EXIT_MWAIT_ARMED   0x8C
#define SVM_EXIT_MWAIT_UNCOND   0x8B
#define SVM_EXIT_NMI   0x61
#define SVM_EXIT_NPF   0x400
#define SVM_EXIT_PAUSE   0x77
#define SVM_EXIT_POPF   0x71
#define SVM_EXIT_PUSHF   0x70
#define SVM_EXIT_RDPMC   0x6F
#define SVM_EXIT_RDTSC   0x6E
#define SVM_EXIT_RDTSCP   0x87
#define SVM_EXIT_READ_CR0   0x0
#define SVM_EXIT_READ_CR1   0x1
#define SVM_EXIT_READ_CR10   0xA
#define SVM_EXIT_READ_CR11   0xB
#define SVM_EXIT_READ_CR12   0xC
#define SVM_EXIT_READ_CR13   0xD
#define SVM_EXIT_READ_CR14   0xE
#define SVM_EXIT_READ_CR15   0xF
#define SVM_EXIT_READ_CR2   0x2
#define SVM_EXIT_READ_CR3   0x3
#define SVM_EXIT_READ_CR4   0x4
#define SVM_EXIT_READ_CR5   0x5
#define SVM_EXIT_READ_CR6   0x6
#define SVM_EXIT_READ_CR7   0x7
#define SVM_EXIT_READ_CR8   0x8
#define SVM_EXIT_READ_CR9   0x9
#define SVM_EXIT_READ_DR0   0x20
#define SVM_EXIT_READ_DR1   0x21
#define SVM_EXIT_READ_DR10   0x2A
#define SVM_EXIT_READ_DR11   0x2B
#define SVM_EXIT_READ_DR12   0x2C
#define SVM_EXIT_READ_DR13   0x2D
#define SVM_EXIT_READ_DR14   0x2E
#define SVM_EXIT_READ_DR15   0x2F
#define SVM_EXIT_READ_DR2   0x22
#define SVM_EXIT_READ_DR3   0x23
#define SVM_EXIT_READ_DR4   0x24
#define SVM_EXIT_READ_DR5   0x25
#define SVM_EXIT_READ_DR6   0x26
#define SVM_EXIT_READ_DR7   0x27
#define SVM_EXIT_READ_DR8   0x28
#define SVM_EXIT_READ_DR9   0x29
#define SVM_EXIT_RSM   0x73
#define SVM_EXIT_SHUTDOWN   0x7F
#define SVM_EXIT_SKINIT   0x86
#define SVM_EXIT_SMI   0x62
#define SVM_EXIT_STGI   0x84
#define SVM_EXIT_SWINT   0x75
#define SVM_EXIT_TASK_SWITCH   0x7D
#define SVM_EXIT_TR_READ   0x69
#define SVM_EXIT_TR_WRITE   0x6D
#define SVM_EXIT_VINTR   0x64
#define SVM_EXIT_VMLOAD   0x82
#define SVM_EXIT_VMMCALL   0x81
#define SVM_EXIT_VMRUN   0x80
#define SVM_EXIT_VMSAVE   0x83
#define SVM_EXIT_WBINVD   0x89
#define SVM_EXIT_WRITE_CR0   0x10
#define SVM_EXIT_WRITE_CR1   0x11
#define SVM_EXIT_WRITE_CR10   0x1A
#define SVM_EXIT_WRITE_CR11   0x1B
#define SVM_EXIT_WRITE_CR12   0x1C
#define SVM_EXIT_WRITE_CR13   0x1D
#define SVM_EXIT_WRITE_CR14   0x1E
#define SVM_EXIT_WRITE_CR15   0x1F
#define SVM_EXIT_WRITE_CR2   0x12
#define SVM_EXIT_WRITE_CR3   0x13
#define SVM_EXIT_WRITE_CR4   0x14
#define SVM_EXIT_WRITE_CR5   0x15
#define SVM_EXIT_WRITE_CR6   0x16
#define SVM_EXIT_WRITE_CR7   0x17
#define SVM_EXIT_WRITE_CR8   0x18
#define SVM_EXIT_WRITE_CR9   0x19
#define SVM_EXIT_WRITE_DR0   0x30
#define SVM_EXIT_WRITE_DR1   0x31
#define SVM_EXIT_WRITE_DR10   0x3A
#define SVM_EXIT_WRITE_DR11   0x3B
#define SVM_EXIT_WRITE_DR12   0x3C
#define SVM_EXIT_WRITE_DR13   0x3D
#define SVM_EXIT_WRITE_DR14   0x3E
#define SVM_EXIT_WRITE_DR15   0x3F
#define SVM_EXIT_WRITE_DR2   0x32
#define SVM_EXIT_WRITE_DR3   0x33
#define SVM_EXIT_WRITE_DR4   0x34
#define SVM_EXIT_WRITE_DR5   0x35
#define SVM_EXIT_WRITE_DR6   0x36
#define SVM_EXIT_WRITE_DR7   0x37
#define SVM_EXIT_WRITE_DR8   0x38
#define SVM_EXIT_WRITE_DR9   0x39
SVM_VMCB.ctrl.u64IntShadow
#define SVM_INTERRUPT_SHADOW_ACTIVE   RT_BIT(0)
SVM_VMCB.ctrl.u64NestedPaging
#define SVM_NESTED_PAGING_ENABLE   RT_BIT(0)

Typedefs

typedef struct _SVM_VMCB SVM_VMCB
typedef SVMGDTR SVMIDTR


Generated by  Doxygen 1.6.0   Back to index