diff --git a/kvm.c b/kvm.c index faa5bc1..fce2401 100644 --- a/kvm.c +++ b/kvm.c @@ -219,25 +219,27 @@ static uint32_t kvm__load_kernel(struct kvm *kvm, const char *kernel_filename) 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[])