/* * Kernel-based Virtual Machine driver for Linux * * This module enables machines with Intel VT-x extensions to run virtual * machines without emulation or binary translation. * * Copyright (C) 2006 Qumranet, Inc. * * Authors: * Avi Kivity <avi@qumranet.com> * Yaniv Kamay <yaniv@qumranet.com> * * This work is licensed under the terms of the GNU GPL, version 2. See * the COPYING file in the top-level directory. * */#include"iodev.h"#include<linux/kvm_host.h>#include<linux/kvm.h>#include<linux/module.h>#include<linux/errno.h>#include<linux/percpu.h>#include<linux/gfp.h>#include<linux/mm.h>#include<linux/miscdevice.h>#include<linux/vmalloc.h>#include<linux/reboot.h>#include<linux/debugfs.h>#include<linux/highmem.h>#include<linux/file.h>#include<linux/sysdev.h>#include<linux/cpu.h>#include<linux/sched.h>#include<linux/cpumask.h>#include<linux/smp.h>#include<linux/anon_inodes.h>#include<linux/profile.h>#include<linux/kvm_para.h>#include<linux/pagemap.h>#include<linux/mman.h>#include<asm/processor.h>#include<asm/io.h>#include<asm/uaccess.h>#include<asm/pgtable.h>MODULE_AUTHOR("Qumranet");MODULE_LICENSE("GPL");DEFINE_SPINLOCK(kvm_lock);LIST_HEAD(vm_list);staticcpumask_tcpus_hardware_enabled;structkmem_cache*kvm_vcpu_cache;EXPORT_SYMBOL_GPL(kvm_vcpu_cache);static__read_mostlystructpreempt_opskvm_preempt_ops;staticstructdentry*debugfs_dir;staticlongkvm_vcpu_ioctl(struct