From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Ehrhardt Subject: [PATCH 2/5] Architecture independence layer - v1 - basic mechanism Date: Fri, 24 Aug 2007 13:52:44 +0200 Message-ID: <46CEC68C.2040901@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: "kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org from Christian Ehrhardt This contains the basic mechanism introducing new files and = Kconfig/Makefile changes Signed-off-by: Christian Ehrhardt --- 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 :=3D kvm_main.o mmu.o x86_emulate.o -obj-$(CONFIG_KVM) +=3D kvm.o +kvm-objs :=3D kvm_main.o + +ifeq ($(CONFIG_X86),y) +kvm-objs +=3D x86.o mmu.o x86_emulate.o + kvm-intel-objs =3D vmx.o obj-$(CONFIG_KVM_INTEL) +=3D kvm-intel.o kvm-amd-objs =3D svm.o obj-$(CONFIG_KVM_AMD) +=3D kvm-amd.o +endif + +ifeq ($(CONFIG_POWERPC),y) +kvm-objs +=3D powerpc.o +endif + +obj-$(CONFIG_KVM) +=3D 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 + +#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 + * Yaniv Kamay + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +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=FCsse / regards, = Christian Ehrhardt IBM Linux Technology Center, Open Virtualization +49 7031/16-3385 Ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org Ehrhardt-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org IBM Deutschland Entwicklung GmbH Vorsitzender des Aufsichtsrats: Johann Weihen = Gesch=E4ftsf=FChrung: Herbert Kircher = Sitz der Gesellschaft: B=F6blingen 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/