From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerone Young Subject: [PATCH 08 of 27] Modify out arch specific code from kvm_create function Date: Wed, 31 Oct 2007 12:05:13 -0500 Message-ID: <179d9b30ab973e6676dc.1193850313@thinkpad> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Return-path: In-Reply-To: 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 # HG changeset patch # User Jerone Young # Date 1193849564 18000 # Node ID 179d9b30ab973e6676dcd0b6fa08e9635969d44c # Parent 7445bcdab796596fb97312b97393e4f2936e5450 Modify out arch specific code from kvm_create function This function removes all x86 specific code and creates a hook function arch_kvm_create to accomidate for this code. arch_kvm_create is a hook that is placed in kvmctl-$(ARCH).c & h. Signed-off-by: Jerone Young diff --git a/libkvm/libkvm-x86.c b/libkvm/libkvm-x86.c --- a/libkvm/libkvm-x86.c +++ b/libkvm/libkvm-x86.c @@ -253,3 +253,18 @@ static int x86_create_default_phys_mem(k kvm->physical_memory = *vm_mem; return 0; } + +int arch_kvm_create(kvm_context_t kvm, unsigned long phys_mem_bytes, + void **vm_mem) +{ + int r = 0; + + r = kvm_init_tss(kvm); + if (r < 0) + return r; + r = x86_create_default_phys_mem(kvm, phys_mem_bytes, vm_mem); + if (r < 0) + return r; + + return 0; +} diff --git a/libkvm/libkvm-x86.h b/libkvm/libkvm-x86.h --- a/libkvm/libkvm-x86.h +++ b/libkvm/libkvm-x86.h @@ -15,4 +15,12 @@ int kvm_alloc_userspace_memory(kvm_conte void **vm_mem); int kvm_set_tss_addr(kvm_context_t kvm, unsigned long addr); +/* + * \brief Architecutre hook for kvm_create + * + * This function adds architcutre specific functionality to kvm_create + */ +int arch_kvm_create(kvm_context_t kvm, unsigned long phys_mem_bytes, + void **vm_mem); + #endif diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c --- a/libkvm/libkvm.c +++ b/libkvm/libkvm.c @@ -356,13 +356,10 @@ int kvm_create(kvm_context_t kvm, unsign r = kvm_create_vm(kvm); if (r < 0) return r; - r = kvm_init_tss(kvm); + r = arch_kvm_create(kvm, phys_mem_bytes, vm_mem); if (r < 0) return r; init_slots(); - r = kvm_create_default_phys_mem(kvm, phys_mem_bytes, vm_mem); - if (r < 0) - return r; kvm_create_irqchip(kvm); r = kvm_create_vcpu(kvm, 0); if (r < 0) ------------------------------------------------------------------------- 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/