From b829b4a8e4ef82345cf81d442dbc6c67016fde98 Mon Sep 17 00:00:00 2001 From: Curtis Dunham Date: Wed, 17 May 2017 21:34:04 +0000 Subject: kvm: move Kvm check from ARM Kvm GIC to System The check was nearly completely generic anyway, with the exception of the Kvm CPU type. This will make it easier for other parts of the codebase to do similar checks. Change-Id: Ibfdd3d65e9e6cc3041b53b73adfabee1999283da Reviewed-on: https://gem5-review.googlesource.com/3540 Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg --- src/sim/system.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/sim/system.cc') diff --git a/src/sim/system.cc b/src/sim/system.cc index 9315882b7..e46c35611 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -55,6 +55,7 @@ #include "base/trace.hh" #include "config/use_kvm.hh" #if USE_KVM +#include "cpu/kvm/base.hh" #include "cpu/kvm/vm.hh" #endif #include "cpu/thread_context.hh" @@ -335,6 +336,24 @@ System::replaceThreadContext(ThreadContext *tc, ContextID context_id) remoteGDB[context_id]->replaceThreadContext(tc); } +bool +System::validKvmEnvironment() const +{ +#if USE_KVM + if (threadContexts.empty()) + return false; + + for (auto tc : threadContexts) { + if (dynamic_cast(tc->getCpuPtr()) == nullptr) { + return false; + } + } + return true; +#else + return false; +#endif +} + Addr System::allocPhysPages(int npages) { -- cgit v1.2.3