File xen.xenalyze-EXIT_REASONS.patch of Package xen

From: Olaf Hering <olaf@aepfle.de>
Date: Thu, 1 Jun 2023 12:15:43 +0000
Subject: xenalyze EXIT_REASONS

xenalyze: handle more potential exit reason values from vmx.h

Copy and use more constants from vmx.h, to turn numbers into strings.
Adjust the REASON_MAX value accordingly.
Remove the size constraint from string array, the compiler will grow it
as needed.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 tools/xentrace/xenalyze.c | 28 +++++++--
 1 file changed, 24 insertions(+), 4 deletions(-)

--- a/tools/xentrace/xenalyze.c
+++ b/tools/xentrace/xenalyze.c
@@ -473,38 +473,47 @@ struct {
 #define EXIT_REASON_IO_INSTRUCTION      30
 #define EXIT_REASON_MSR_READ            31
 #define EXIT_REASON_MSR_WRITE           32
 #define EXIT_REASON_INVALID_GUEST_STATE 33
 #define EXIT_REASON_MSR_LOADING         34
 #define EXIT_REASON_MWAIT_INSTRUCTION   36
 #define EXIT_REASON_MONITOR_TRAP_FLAG   37
 #define EXIT_REASON_MONITOR_INSTRUCTION 39
 #define EXIT_REASON_PAUSE_INSTRUCTION   40
 #define EXIT_REASON_MCE_DURING_VMENTRY  41
 #define EXIT_REASON_TPR_BELOW_THRESHOLD 43
 #define EXIT_REASON_APIC_ACCESS         44
+#define EXIT_REASON_EOI_INDUCED         45
 #define EXIT_REASON_ACCESS_GDTR_OR_IDTR 46
 #define EXIT_REASON_ACCESS_LDTR_OR_TR   47
 #define EXIT_REASON_EPT_VIOLATION       48
 #define EXIT_REASON_EPT_MISCONFIG       49
 #define EXIT_REASON_INVEPT              50
 #define EXIT_REASON_RDTSCP              51
 #define EXIT_REASON_VMX_PREEMPTION_TIMER_EXPIRED 52
 #define EXIT_REASON_INVVPID             53
 #define EXIT_REASON_WBINVD              54
 #define EXIT_REASON_XSETBV              55
-
-#define HVM_VMX_EXIT_REASON_MAX (EXIT_REASON_XSETBV+1)
-
-const char * hvm_vmx_exit_reason_name[HVM_VMX_EXIT_REASON_MAX] = {
+#define EXIT_REASON_APIC_WRITE          56
+#define EXIT_REASON_INVPCID             58
+#define EXIT_REASON_VMFUNC              59
+#define EXIT_REASON_PML_FULL            62
+#define EXIT_REASON_XSAVES              63
+#define EXIT_REASON_XRSTORS             64
+#define EXIT_REASON_BUS_LOCK            74
+#define EXIT_REASON_NOTIFY              75
+
+#define HVM_VMX_EXIT_REASON_MAX (EXIT_REASON_NOTIFY+1)
+
+const char * hvm_vmx_exit_reason_name[] = {
     [EXIT_REASON_EXCEPTION_NMI]="EXCEPTION_NMI",
     [EXIT_REASON_EXTERNAL_INTERRUPT]="EXTERNAL_INTERRUPT",
     [EXIT_REASON_TRIPLE_FAULT]="TRIPLE_FAULT",
     [EXIT_REASON_INIT]="INIT",
     [EXIT_REASON_SIPI]="SIPI",
     [EXIT_REASON_IO_SMI]="IO_SMI",
     [EXIT_REASON_OTHER_SMI]="OTHER_SMI",
     [EXIT_REASON_PENDING_VIRT_INTR]="PENDING_VIRT_INTR",
     [EXIT_REASON_PENDING_VIRT_NMI]="PENDING_VIRT_NMI",
     [EXIT_REASON_TASK_SWITCH]="TASK_SWITCH",
     [EXIT_REASON_CPUID]="CPUID",
     [EXIT_REASON_GETSEC]="GETSEC",
@@ -529,32 +538,43 @@ const char * hvm_vmx_exit_reason_name[HVM_VMX_EXIT_REASON_MAX] = {
     [EXIT_REASON_IO_INSTRUCTION]="IO_INSTRUCTION",
     [EXIT_REASON_MSR_READ]="MSR_READ",
     [EXIT_REASON_MSR_WRITE]="MSR_WRITE",
     [EXIT_REASON_INVALID_GUEST_STATE]="INVALID_GUEST_STATE",
     [EXIT_REASON_MSR_LOADING]="MSR_LOADING",
     [EXIT_REASON_MWAIT_INSTRUCTION]="MWAIT_INSTRUCTION",
     [EXIT_REASON_MONITOR_TRAP_FLAG]="MONITOR_TRAP_FLAG",
     [EXIT_REASON_MONITOR_INSTRUCTION]="MONITOR_INSTRUCTION",
     [EXIT_REASON_PAUSE_INSTRUCTION]="PAUSE_INSTRUCTION",
     [EXIT_REASON_MCE_DURING_VMENTRY]="MCE_DURING_VMENTRY",
     [EXIT_REASON_TPR_BELOW_THRESHOLD]="TPR_BELOW_THRESHOLD",
     [EXIT_REASON_APIC_ACCESS]="APIC_ACCESS",
+    [EXIT_REASON_EOI_INDUCED]="EOI_INDUCED",
+    [EXIT_REASON_ACCESS_GDTR_OR_IDTR]="ACCESS_GDTR_OR_IDTR",
+    [EXIT_REASON_ACCESS_LDTR_OR_TR]="ACCESS_LDTR_OR_TR",
     [EXIT_REASON_EPT_VIOLATION]="EPT_VIOLATION",
     [EXIT_REASON_EPT_MISCONFIG]="EPT_MISCONFIG",
     [EXIT_REASON_INVEPT]="INVEPT",
     [EXIT_REASON_RDTSCP]="RDTSCP",
     [EXIT_REASON_VMX_PREEMPTION_TIMER_EXPIRED]="VMX_PREEMPTION_TIMER_EXPIRED",
     [EXIT_REASON_INVVPID]="INVVPID",
     [EXIT_REASON_WBINVD]="WBINVD",
     [EXIT_REASON_XSETBV]="XSETBV",
+    [EXIT_REASON_APIC_WRITE]="APIC_WRITE",
+    [EXIT_REASON_INVPCID]="INVPCID",
+    [EXIT_REASON_VMFUNC]="VMFUNC",
+    [EXIT_REASON_PML_FULL]="PML_FULL",
+    [EXIT_REASON_XSAVES]="XSAVES",
+    [EXIT_REASON_XRSTORS]="XRSTORS",
+    [EXIT_REASON_BUS_LOCK]="BUS_LOCK",
+    [EXIT_REASON_NOTIFY]="NOTIFY",
 };
 
 /* SVM data */
 enum VMEXIT_EXITCODE
 {
     /* control register read exitcodes */
     VMEXIT_CR0_READ    =   0,
     VMEXIT_CR1_READ    =   1,
     VMEXIT_CR2_READ    =   2,
     VMEXIT_CR3_READ    =   3,
     VMEXIT_CR4_READ    =   4,
     VMEXIT_CR5_READ    =   5,
openSUSE Build Service is sponsored by