from Christian Ehrhardt This contains the basic mechanism introducing new files and Kconfig/Makefile changes
Signed-off-by: Christian Ehrhardt <[EMAIL PROTECTED]> --- Kconfig | 20 ++++++++++++++++---- Makefile | 14 ++++++++++++-- kvm_arch.h | 14 ++++++++++++++ x86.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ x86.h | 9 +++++++++ 5 files changed, 102 insertions(+), 6 deletions(-) diff --git a/drivers/kvm/Kconfig b/drivers/kvm/Kconfig index 445c6e4..c971d81 100644 --- a/drivers/kvm/Kconfig +++ b/drivers/kvm/Kconfig @@ -3,14 +3,14 @@ # menuconfig VIRTUALIZATION bool "Virtualization" - depends on X86 + depends on X86 || POWERPC default y if VIRTUALIZATION config KVM tristate "Kernel-based Virtual Machine (KVM) support" - depends on X86 && EXPERIMENTAL + depends on EXPERIMENTAL select PREEMPT_NOTIFIERS select ANON_INODES ---help--- @@ -29,16 +29,28 @@ config KVM config KVM_INTEL tristate "KVM for Intel processors support" - depends on KVM + depends on KVM && X86 ---help--- Provides support for KVM on Intel processors equipped with the VT extensions. config KVM_AMD tristate "KVM for AMD processors support" - depends on KVM + depends on KVM && X86 ---help--- Provides support for KVM on AMD processors equipped with the AMD-V (SVM) extensions. +config KVM_POWERPC_440 + tristate "KVM for embedded PowerPC 440 cores" + depends on KVM && POWERPC + ---help--- + Provides support for KVM on embedded PowerPC 440 cores + +config KVM_POWERPC_E500 + tristate "KVM for embedded PowerPC e500 cores" + depends on KVM && POWERPC + ---help--- + Provides support for KVM on embedded PowerPC e500 cores + endif # VIRTUALIZATION diff --git a/drivers/kvm/Makefile b/drivers/kvm/Makefile index c0a789f..c18431b 100644 --- a/drivers/kvm/Makefile +++ b/drivers/kvm/Makefile @@ -2,9 +2,19 @@ # Makefile for Kernel-based Virtual Machine module # -kvm-objs := kvm_main.o mmu.o x86_emulate.o -obj-$(CONFIG_KVM) += kvm.o +kvm-objs := kvm_main.o + +ifeq ($(CONFIG_X86),y) +kvm-objs += x86.o mmu.o x86_emulate.o + kvm-intel-objs = vmx.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o kvm-amd-objs = svm.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o +endif + +ifeq ($(CONFIG_POWERPC),y) +kvm-objs += powerpc.o +endif + +obj-$(CONFIG_KVM) += kvm.o diff --git a/drivers/kvm/kvm_arch.h b/drivers/kvm/kvm_arch.h new file mode 100644 index 0000000..6658948 --- /dev/null +++ b/drivers/kvm/kvm_arch.h @@ -0,0 +1,14 @@ +#ifndef __KVM_ARCH_H +#define __KVM_ARCH_H + +/* + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + * This is the interface an arch module has to implement because this is what + * kvm_main gets linked against depending on arch selection. + */ + +#include <linux/module.h> + +#endif diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c new file mode 100644 index 0000000..5c72fee --- /dev/null +++ b/drivers/kvm/x86.c @@ -0,0 +1,51 @@ +/* + * 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 <[EMAIL PROTECTED]> + * Yaniv Kamay <[EMAIL PROTECTED]> + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include "kvm.h" +#include "kvm_arch.h" +#include "x86.h" +#include "x86_emulate.h" +#include "segment_descriptor.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/vmalloc.h> +#include <linux/reboot.h> +#include <linux/debugfs.h> +#include <linux/highmem.h> +#include <linux/file.h> +#include <linux/miscdevice.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 <asm/processor.h> +#include <asm/msr.h> +#include <asm/io.h> +#include <asm/uaccess.h> +#include <asm/desc.h> + +MODULE_AUTHOR("Qumranet"); +MODULE_LICENSE("GPL"); + diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h new file mode 100644 index 0000000..021385e --- /dev/null +++ b/drivers/kvm/x86.h @@ -0,0 +1,9 @@ +#ifndef __KVM_X86_H +#define __KVM_X86_H + +/* + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#endif -- Grüsse / regards, Christian Ehrhardt IBM Linux Technology Center, Open Virtualization +49 7031/16-3385 [EMAIL PROTECTED] [EMAIL PROTECTED] IBM Deutschland Entwicklung GmbH Vorsitzender des Aufsichtsrats: Johann Weihen Geschäftsführung: Herbert Kircher Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel