| .. | .. |
|---|
| 29 | 29 | #define SVM_EXIT_WRITE_DR6 0x036 |
|---|
| 30 | 30 | #define SVM_EXIT_WRITE_DR7 0x037 |
|---|
| 31 | 31 | #define SVM_EXIT_EXCP_BASE 0x040 |
|---|
| 32 | +#define SVM_EXIT_LAST_EXCP 0x05f |
|---|
| 32 | 33 | #define SVM_EXIT_INTR 0x060 |
|---|
| 33 | 34 | #define SVM_EXIT_NMI 0x061 |
|---|
| 34 | 35 | #define SVM_EXIT_SMI 0x062 |
|---|
| .. | .. |
|---|
| 75 | 76 | #define SVM_EXIT_MWAIT 0x08b |
|---|
| 76 | 77 | #define SVM_EXIT_MWAIT_COND 0x08c |
|---|
| 77 | 78 | #define SVM_EXIT_XSETBV 0x08d |
|---|
| 79 | +#define SVM_EXIT_RDPRU 0x08e |
|---|
| 80 | +#define SVM_EXIT_INVPCID 0x0a2 |
|---|
| 78 | 81 | #define SVM_EXIT_NPF 0x400 |
|---|
| 79 | 82 | #define SVM_EXIT_AVIC_INCOMPLETE_IPI 0x401 |
|---|
| 80 | 83 | #define SVM_EXIT_AVIC_UNACCELERATED_ACCESS 0x402 |
|---|
| 84 | + |
|---|
| 85 | +/* SEV-ES software-defined VMGEXIT events */ |
|---|
| 86 | +#define SVM_VMGEXIT_MMIO_READ 0x80000001 |
|---|
| 87 | +#define SVM_VMGEXIT_MMIO_WRITE 0x80000002 |
|---|
| 88 | +#define SVM_VMGEXIT_NMI_COMPLETE 0x80000003 |
|---|
| 89 | +#define SVM_VMGEXIT_AP_HLT_LOOP 0x80000004 |
|---|
| 90 | +#define SVM_VMGEXIT_AP_JUMP_TABLE 0x80000005 |
|---|
| 91 | +#define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0 |
|---|
| 92 | +#define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1 |
|---|
| 93 | +#define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff |
|---|
| 81 | 94 | |
|---|
| 82 | 95 | #define SVM_EXIT_ERR -1 |
|---|
| 83 | 96 | |
|---|
| .. | .. |
|---|
| 170 | 183 | { SVM_EXIT_MONITOR, "monitor" }, \ |
|---|
| 171 | 184 | { SVM_EXIT_MWAIT, "mwait" }, \ |
|---|
| 172 | 185 | { SVM_EXIT_XSETBV, "xsetbv" }, \ |
|---|
| 186 | + { SVM_EXIT_INVPCID, "invpcid" }, \ |
|---|
| 173 | 187 | { SVM_EXIT_NPF, "npf" }, \ |
|---|
| 174 | 188 | { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, \ |
|---|
| 175 | 189 | { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, \ |
|---|