From a0fa1e03b2dde7e5b9994dd4b4a3fbb4c27ef4e6 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 18 May 2021 18:05:37 -0700 Subject: [PATCH] cpu: Check the KVM API version with a static_assert instead of macros. Change-Id: Id8d52e25c4582ad802ee59facad5a1c31c2aa216 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/45743 Reviewed-by: Andreas Sandberg Reviewed-by: Daniel Carvalho Maintainer: Andreas Sandberg Tested-by: kokoro --- src/cpu/kvm/vm.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/cpu/kvm/vm.cc b/src/cpu/kvm/vm.cc index e0a500c540..13f774e446 100644 --- a/src/cpu/kvm/vm.cc +++ b/src/cpu/kvm/vm.cc @@ -53,11 +53,14 @@ #include "params/KvmVM.hh" #include "sim/system.hh" -#define EXPECTED_KVM_API_VERSION 12 +namespace +{ -#if EXPECTED_KVM_API_VERSION != KVM_API_VERSION -#error Unsupported KVM version -#endif +constexpr int ExpectedKvmApiVersion = 12; +static_assert(KVM_API_VERSION == ExpectedKvmApiVersion, + "Unsupported KVM version"); + +} // anonymous namespace Kvm *Kvm::instance = NULL; @@ -75,7 +78,7 @@ Kvm::Kvm() fatal("KVM: Failed to open /dev/kvm\n"); apiVersion = ioctl(KVM_GET_API_VERSION); - if (apiVersion != EXPECTED_KVM_API_VERSION) + if (apiVersion != ExpectedKvmApiVersion) fatal("KVM: Incompatible API version\n"); vcpuMMapSize = ioctl(KVM_GET_VCPU_MMAP_SIZE);