1+ /*******************************************************************************
2+ * Copyright (c) 2026 École Polytechnique de Montréal
3+ *
4+ * All rights reserved. This program and the accompanying materials are
5+ * made available under the terms of the Eclipse Public License 2.0 which
6+ * accompanies this distribution, and is available at
7+ * https://www.eclipse.org/legal/epl-2.0/
8+ *
9+ * SPDX-License-Identifier: EPL-2.0
10+ *******************************************************************************/
111package org .eclipse .tracecompass .incubator .internal .virtual .machine .analysis .core .flow .analysis ;
212
313import java .util .HashMap ;
616
717/**
818 * Mapping of Exit reason number to their text description
19+ *
920 * @author Francois Belias
1021 */
1122public class ExitReasonMap {
1223
13- private static final Map <Integer , String > exitReasonMap = new HashMap <>();
24+ private static final Map <Integer , String > fExitReasonMap = new HashMap <>();
1425
1526 static {
1627 // VMX specific reasons
17- exitReasonMap .put (0x80000000 , "VMX_EXIT_REASONS_FAILED_VMENTRY" ); //$NON-NLS-1$
18- exitReasonMap .put (0x08000000 , "VMX_EXIT_REASONS_SGX_ENCLAVE_MODE" ); //$NON-NLS-1$
28+ fExitReasonMap .put (0x80000000 , "VMX_EXIT_REASONS_FAILED_VMENTRY" ); //$NON-NLS-1$
29+ fExitReasonMap .put (0x08000000 , "VMX_EXIT_REASONS_SGX_ENCLAVE_MODE" ); //$NON-NLS-1$
1930
2031 // General exit reasons
21- exitReasonMap .put (0 , "EXIT_REASON_EXCEPTION_NMI" ); //$NON-NLS-1$
22- exitReasonMap .put (1 , "EXIT_REASON_EXTERNAL_INTERRUPT" ); //$NON-NLS-1$
23- exitReasonMap .put (2 , "EXIT_REASON_TRIPLE_FAULT" ); //$NON-NLS-1$
24- exitReasonMap .put (3 , "EXIT_REASON_INIT_SIGNAL" ); //$NON-NLS-1$
25- exitReasonMap .put (4 , "EXIT_REASON_SIPI_SIGNAL" ); //$NON-NLS-1$
32+ fExitReasonMap .put (0 , "EXIT_REASON_EXCEPTION_NMI" ); //$NON-NLS-1$
33+ fExitReasonMap .put (1 , "EXIT_REASON_EXTERNAL_INTERRUPT" ); //$NON-NLS-1$
34+ fExitReasonMap .put (2 , "EXIT_REASON_TRIPLE_FAULT" ); //$NON-NLS-1$
35+ fExitReasonMap .put (3 , "EXIT_REASON_INIT_SIGNAL" ); //$NON-NLS-1$
36+ fExitReasonMap .put (4 , "EXIT_REASON_SIPI_SIGNAL" ); //$NON-NLS-1$
2637
27- exitReasonMap .put (7 , "EXIT_REASON_INTERRUPT_WINDOW" ); //$NON-NLS-1$
28- exitReasonMap .put (8 , "EXIT_REASON_NMI_WINDOW" ); //$NON-NLS-1$
29- exitReasonMap .put (9 , "EXIT_REASON_TASK_SWITCH" ); //$NON-NLS-1$
30- exitReasonMap .put (10 , "EXIT_REASON_CPUID" ); //$NON-NLS-1$
31- exitReasonMap .put (12 , "EXIT_REASON_HLT" ); //$NON-NLS-1$
32- exitReasonMap .put (13 , "EXIT_REASON_INVD" ); //$NON-NLS-1$
33- exitReasonMap .put (14 , "EXIT_REASON_INVLPG" ); //$NON-NLS-1$
34- exitReasonMap .put (15 , "EXIT_REASON_RDPMC" ); //$NON-NLS-1$
35- exitReasonMap .put (16 , "EXIT_REASON_RDTSC" ); //$NON-NLS-1$
36- exitReasonMap .put (18 , "EXIT_REASON_VMCALL" ); //$NON-NLS-1$
37- exitReasonMap .put (19 , "EXIT_REASON_VMCLEAR" ); //$NON-NLS-1$
38- exitReasonMap .put (20 , "EXIT_REASON_VMLAUNCH" ); //$NON-NLS-1$
39- exitReasonMap .put (21 , "EXIT_REASON_VMPTRLD" ); //$NON-NLS-1$
40- exitReasonMap .put (22 , "EXIT_REASON_VMPTRST" ); //$NON-NLS-1$
41- exitReasonMap .put (23 , "EXIT_REASON_VMREAD" ); //$NON-NLS-1$
42- exitReasonMap .put (24 , "EXIT_REASON_VMRESUME" ); //$NON-NLS-1$
43- exitReasonMap .put (25 , "EXIT_REASON_VMWRITE" ); //$NON-NLS-1$
44- exitReasonMap .put (26 , "EXIT_REASON_VMOFF" ); //$NON-NLS-1$
45- exitReasonMap .put (27 , "EXIT_REASON_VMON" ); //$NON-NLS-1$
46- exitReasonMap .put (28 , "EXIT_REASON_CR_ACCESS" ); //$NON-NLS-1$
47- exitReasonMap .put (29 , "EXIT_REASON_DR_ACCESS" ); //$NON-NLS-1$
48- exitReasonMap .put (30 , "EXIT_REASON_IO_INSTRUCTION" ); //$NON-NLS-1$
49- exitReasonMap .put (31 , "EXIT_REASON_MSR_READ" ); //$NON-NLS-1$
50- exitReasonMap .put (32 , "EXIT_REASON_MSR_WRITE" ); //$NON-NLS-1$
51- exitReasonMap .put (33 , "EXIT_REASON_INVALID_STATE" ); //$NON-NLS-1$
52- exitReasonMap .put (34 , "EXIT_REASON_MSR_LOAD_FAIL" ); //$NON-NLS-1$
53- exitReasonMap .put (36 , "EXIT_REASON_MWAIT_INSTRUCTION" ); //$NON-NLS-1$
54- exitReasonMap .put (37 , "EXIT_REASON_MONITOR_TRAP_FLAG" ); //$NON-NLS-1$
55- exitReasonMap .put (39 , "EXIT_REASON_MONITOR_INSTRUCTION" ); //$NON-NLS-1$
56- exitReasonMap .put (40 , "EXIT_REASON_PAUSE_INSTRUCTION" ); //$NON-NLS-1$
57- exitReasonMap .put (41 , "EXIT_REASON_MCE_DURING_VMENTRY" ); //$NON-NLS-1$
58- exitReasonMap .put (43 , "EXIT_REASON_TPR_BELOW_THRESHOLD" ); //$NON-NLS-1$
59- exitReasonMap .put (44 , "EXIT_REASON_APIC_ACCESS" ); //$NON-NLS-1$
60- exitReasonMap .put (45 , "EXIT_REASON_EOI_INDUCED" ); //$NON-NLS-1$
61- exitReasonMap .put (46 , "EXIT_REASON_GDTR_IDTR" ); //$NON-NLS-1$
62- exitReasonMap .put (47 , "EXIT_REASON_LDTR_TR" ); //$NON-NLS-1$
63- exitReasonMap .put (48 , "EXIT_REASON_EPT_VIOLATION" ); //$NON-NLS-1$
64- exitReasonMap .put (49 , "EXIT_REASON_EPT_MISCONFIG" ); //$NON-NLS-1$
65- exitReasonMap .put (50 , "EXIT_REASON_INVEPT" ); //$NON-NLS-1$
66- exitReasonMap .put (51 , "EXIT_REASON_RDTSCP" ); //$NON-NLS-1$
67- exitReasonMap .put (52 , "EXIT_REASON_PREEMPTION_TIMER" ); //$NON-NLS-1$
68- exitReasonMap .put (53 , "EXIT_REASON_INVVPID" ); //$NON-NLS-1$
69- exitReasonMap .put (54 , "EXIT_REASON_WBINVD" ); //$NON-NLS-1$
70- exitReasonMap .put (55 , "EXIT_REASON_XSETBV" ); //$NON-NLS-1$
71- exitReasonMap .put (56 , "EXIT_REASON_APIC_WRITE" ); //$NON-NLS-1$
72- exitReasonMap .put (57 , "EXIT_REASON_RDRAND" ); //$NON-NLS-1$
73- exitReasonMap .put (58 , "EXIT_REASON_INVPCID" ); //$NON-NLS-1$
74- exitReasonMap .put (59 , "EXIT_REASON_VMFUNC" ); //$NON-NLS-1$
75- exitReasonMap .put (60 , "EXIT_REASON_ENCLS" ); //$NON-NLS-1$
76- exitReasonMap .put (61 , "EXIT_REASON_RDSEED" ); //$NON-NLS-1$
77- exitReasonMap .put (62 , "EXIT_REASON_PML_FULL" ); //$NON-NLS-1$
78- exitReasonMap .put (63 , "EXIT_REASON_XSAVES" ); //$NON-NLS-1$
79- exitReasonMap .put (64 , "EXIT_REASON_XRSTORS" ); //$NON-NLS-1$
80- exitReasonMap .put (67 , "EXIT_REASON_UMWAIT" ); //$NON-NLS-1$
81- exitReasonMap .put (68 , "EXIT_REASON_TPAUSE" ); //$NON-NLS-1$
82- exitReasonMap .put (74 , "EXIT_REASON_BUS_LOCK" ); //$NON-NLS-1$
83- exitReasonMap .put (75 , "EXIT_REASON_NOTIFY" ); //$NON-NLS-1$
38+ fExitReasonMap .put (7 , "EXIT_REASON_INTERRUPT_WINDOW" ); //$NON-NLS-1$
39+ fExitReasonMap .put (8 , "EXIT_REASON_NMI_WINDOW" ); //$NON-NLS-1$
40+ fExitReasonMap .put (9 , "EXIT_REASON_TASK_SWITCH" ); //$NON-NLS-1$
41+ fExitReasonMap .put (10 , "EXIT_REASON_CPUID" ); //$NON-NLS-1$
42+ fExitReasonMap .put (12 , "EXIT_REASON_HLT" ); //$NON-NLS-1$
43+ fExitReasonMap .put (13 , "EXIT_REASON_INVD" ); //$NON-NLS-1$
44+ fExitReasonMap .put (14 , "EXIT_REASON_INVLPG" ); //$NON-NLS-1$
45+ fExitReasonMap .put (15 , "EXIT_REASON_RDPMC" ); //$NON-NLS-1$
46+ fExitReasonMap .put (16 , "EXIT_REASON_RDTSC" ); //$NON-NLS-1$
47+ fExitReasonMap .put (18 , "EXIT_REASON_VMCALL" ); //$NON-NLS-1$
48+ fExitReasonMap .put (19 , "EXIT_REASON_VMCLEAR" ); //$NON-NLS-1$
49+ fExitReasonMap .put (20 , "EXIT_REASON_VMLAUNCH" ); //$NON-NLS-1$
50+ fExitReasonMap .put (21 , "EXIT_REASON_VMPTRLD" ); //$NON-NLS-1$
51+ fExitReasonMap .put (22 , "EXIT_REASON_VMPTRST" ); //$NON-NLS-1$
52+ fExitReasonMap .put (23 , "EXIT_REASON_VMREAD" ); //$NON-NLS-1$
53+ fExitReasonMap .put (24 , "EXIT_REASON_VMRESUME" ); //$NON-NLS-1$
54+ fExitReasonMap .put (25 , "EXIT_REASON_VMWRITE" ); //$NON-NLS-1$
55+ fExitReasonMap .put (26 , "EXIT_REASON_VMOFF" ); //$NON-NLS-1$
56+ fExitReasonMap .put (27 , "EXIT_REASON_VMON" ); //$NON-NLS-1$
57+ fExitReasonMap .put (28 , "EXIT_REASON_CR_ACCESS" ); //$NON-NLS-1$
58+ fExitReasonMap .put (29 , "EXIT_REASON_DR_ACCESS" ); //$NON-NLS-1$
59+ fExitReasonMap .put (30 , "EXIT_REASON_IO_INSTRUCTION" ); //$NON-NLS-1$
60+ fExitReasonMap .put (31 , "EXIT_REASON_MSR_READ" ); //$NON-NLS-1$
61+ fExitReasonMap .put (32 , "EXIT_REASON_MSR_WRITE" ); //$NON-NLS-1$
62+ fExitReasonMap .put (33 , "EXIT_REASON_INVALID_STATE" ); //$NON-NLS-1$
63+ fExitReasonMap .put (34 , "EXIT_REASON_MSR_LOAD_FAIL" ); //$NON-NLS-1$
64+ fExitReasonMap .put (36 , "EXIT_REASON_MWAIT_INSTRUCTION" ); //$NON-NLS-1$
65+ fExitReasonMap .put (37 , "EXIT_REASON_MONITOR_TRAP_FLAG" ); //$NON-NLS-1$
66+ fExitReasonMap .put (39 , "EXIT_REASON_MONITOR_INSTRUCTION" ); //$NON-NLS-1$
67+ fExitReasonMap .put (40 , "EXIT_REASON_PAUSE_INSTRUCTION" ); //$NON-NLS-1$
68+ fExitReasonMap .put (41 , "EXIT_REASON_MCE_DURING_VMENTRY" ); //$NON-NLS-1$
69+ fExitReasonMap .put (43 , "EXIT_REASON_TPR_BELOW_THRESHOLD" ); //$NON-NLS-1$
70+ fExitReasonMap .put (44 , "EXIT_REASON_APIC_ACCESS" ); //$NON-NLS-1$
71+ fExitReasonMap .put (45 , "EXIT_REASON_EOI_INDUCED" ); //$NON-NLS-1$
72+ fExitReasonMap .put (46 , "EXIT_REASON_GDTR_IDTR" ); //$NON-NLS-1$
73+ fExitReasonMap .put (47 , "EXIT_REASON_LDTR_TR" ); //$NON-NLS-1$
74+ fExitReasonMap .put (48 , "EXIT_REASON_EPT_VIOLATION" ); //$NON-NLS-1$
75+ fExitReasonMap .put (49 , "EXIT_REASON_EPT_MISCONFIG" ); //$NON-NLS-1$
76+ fExitReasonMap .put (50 , "EXIT_REASON_INVEPT" ); //$NON-NLS-1$
77+ fExitReasonMap .put (51 , "EXIT_REASON_RDTSCP" ); //$NON-NLS-1$
78+ fExitReasonMap .put (52 , "EXIT_REASON_PREEMPTION_TIMER" ); //$NON-NLS-1$
79+ fExitReasonMap .put (53 , "EXIT_REASON_INVVPID" ); //$NON-NLS-1$
80+ fExitReasonMap .put (54 , "EXIT_REASON_WBINVD" ); //$NON-NLS-1$
81+ fExitReasonMap .put (55 , "EXIT_REASON_XSETBV" ); //$NON-NLS-1$
82+ fExitReasonMap .put (56 , "EXIT_REASON_APIC_WRITE" ); //$NON-NLS-1$
83+ fExitReasonMap .put (57 , "EXIT_REASON_RDRAND" ); //$NON-NLS-1$
84+ fExitReasonMap .put (58 , "EXIT_REASON_INVPCID" ); //$NON-NLS-1$
85+ fExitReasonMap .put (59 , "EXIT_REASON_VMFUNC" ); //$NON-NLS-1$
86+ fExitReasonMap .put (60 , "EXIT_REASON_ENCLS" ); //$NON-NLS-1$
87+ fExitReasonMap .put (61 , "EXIT_REASON_RDSEED" ); //$NON-NLS-1$
88+ fExitReasonMap .put (62 , "EXIT_REASON_PML_FULL" ); //$NON-NLS-1$
89+ fExitReasonMap .put (63 , "EXIT_REASON_XSAVES" ); //$NON-NLS-1$
90+ fExitReasonMap .put (64 , "EXIT_REASON_XRSTORS" ); //$NON-NLS-1$
91+ fExitReasonMap .put (67 , "EXIT_REASON_UMWAIT" ); //$NON-NLS-1$
92+ fExitReasonMap .put (68 , "EXIT_REASON_TPAUSE" ); //$NON-NLS-1$
93+ fExitReasonMap .put (74 , "EXIT_REASON_BUS_LOCK" ); //$NON-NLS-1$
94+ fExitReasonMap .put (75 , "EXIT_REASON_NOTIFY" ); //$NON-NLS-1$
8495 }
8596
8697 /**
8798 * @param code The code of the exit type
8899 * @return The text describing the exit type
89100 */
90101 public static String getExitReasonName (int code ) {
91- return exitReasonMap .getOrDefault (code , "UNKNOWN_EXIT_REASON" ); //$NON-NLS-1$
102+ return fExitReasonMap .getOrDefault (code , "UNKNOWN_EXIT_REASON" ); //$NON-NLS-1$
92103 }
93104}
0 commit comments