return ret;
}
+#define DEFINE_KVM_EXIT_REASON(reason) [reason] = #reason
+
static const char *exit_reasons[] = {
- [KVM_EXIT_UNKNOWN] = "unknown",
- [KVM_EXIT_EXCEPTION] = "exception",
- [KVM_EXIT_IO] = "io",
- [KVM_EXIT_HYPERCALL] = "hypercall",
- [KVM_EXIT_DEBUG] = "debug",
- [KVM_EXIT_HLT] = "hlt",
- [KVM_EXIT_MMIO] = "mmio",
- [KVM_EXIT_IRQ_WINDOW_OPEN] = "irq window open",
- [KVM_EXIT_SHUTDOWN] = "shutdown",
- [KVM_EXIT_FAIL_ENTRY] = "fail entry",
- [KVM_EXIT_INTR] = "intr",
- [KVM_EXIT_SET_TPR] = "set tpr",
- [KVM_EXIT_TPR_ACCESS] = "trp access",
- [KVM_EXIT_S390_SIEIC] = "s390 sieic",
- [KVM_EXIT_S390_RESET] = "s390 reset",
- [KVM_EXIT_DCR] = "dcr",
- [KVM_EXIT_NMI] = "dmi",
- [KVM_EXIT_INTERNAL_ERROR] = "internal error",
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_UNKNOWN),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_EXCEPTION),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_IO),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_HYPERCALL),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_DEBUG),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_HLT),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_MMIO),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_IRQ_WINDOW_OPEN),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_SHUTDOWN),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_FAIL_ENTRY),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_INTR),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_SET_TPR),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_TPR_ACCESS),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_S390_SIEIC),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_S390_RESET),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_DCR),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_NMI),
+ DEFINE_KVM_EXIT_REASON(KVM_EXIT_INTERNAL_ERROR),
};
static void usage(char *argv[])