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.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cpu/kvm/vm.cc b/src/cpu/kvm/vm.cc
index 01670fab4..a12374aa5 100644
--- a/src/cpu/kvm/vm.cc
+++ b/src/cpu/kvm/vm.cc
@@ -1,6 +1,6 @@
/*
* Copyright 2014 Google, Inc.
- * Copyright (c) 2012 ARM Limited
+ * Copyright (c) 2012, 2015 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -486,6 +486,23 @@ KvmVM::setIRQLine(uint32_t irq, bool high)
}
int
+KvmVM::createDevice(uint32_t type, uint32_t flags)
+{
+#if defined(KVM_CREATE_DEVICE)
+ struct kvm_create_device dev = { type, 0, flags };
+
+ if (ioctl(KVM_CREATE_DEVICE, &dev) == -1) {
+ panic("KVM: Failed to create device (errno: %i)\n",
+ errno);
+ }
+
+ return dev.fd;
+#else
+ panic("Kernel headers don't support KVM_CREATE_DEVICE\n");
+#endif
+}
+
+int
KvmVM::createVCPU(long vcpuID)
{
int fd;