# HG changeset patch
# User Jerone Young <[EMAIL PROTECTED]>
# 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 <[EMAIL PROTECTED]>

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/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to