summaryrefslogtreecommitdiff
path: root/src/cpu/kvm/vm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/kvm/vm.cc')
-rw-r--r--src/cpu/kvm/vm.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/cpu/kvm/vm.cc b/src/cpu/kvm/vm.cc
index 604d182ab..47e749247 100644
--- a/src/cpu/kvm/vm.cc
+++ b/src/cpu/kvm/vm.cc
@@ -50,6 +50,7 @@
#include <cerrno>
#include <memory>
+#include "cpu/kvm/base.hh"
#include "debug/Kvm.hh"
#include "params/KvmVM.hh"
#include "sim/system.hh"
@@ -528,12 +529,21 @@ KvmVM::createDevice(uint32_t type, uint32_t flags)
}
void
-KvmVM::setSystem(System *s) {
+KvmVM::setSystem(System *s)
+{
panic_if(system != nullptr, "setSystem() can only be called once");
panic_if(s == nullptr, "setSystem() called with null System*");
system = s;
}
+long
+KvmVM::contextIdToVCpuId(ContextID ctx) const
+{
+ assert(system != nullptr);
+ return dynamic_cast<BaseKvmCPU*>
+ (system->getThreadContext(ctx)->getCpuPtr())->getVCpuID();
+}
+
int
KvmVM::createVCPU(long vcpuID)
{