diff options
Diffstat (limited to 'src/cpu/kvm/vm.cc')
-rw-r--r-- | src/cpu/kvm/vm.cc | 19 |
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; |