]> git.proxmox.com Git - mirror_qemu.git/commitdiff
kvm: Create kvm_arch_vcpu_id() function
authorEduardo Habkost <ehabkost@redhat.com>
Tue, 22 Jan 2013 20:25:01 +0000 (18:25 -0200)
committerAndreas Färber <afaerber@suse.de>
Sun, 27 Jan 2013 13:34:26 +0000 (14:34 +0100)
This will allow each architecture to define how the VCPU ID is set on
the KVM_CREATE_VCPU ioctl call.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Acked-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
include/sysemu/kvm.h
kvm-all.c
target-i386/kvm.c
target-ppc/kvm.c
target-s390x/kvm.c

index 22acf91de7d1351581accb3179415afe79845bfd..384ee66c46f4def945f2c1d761f4c4126af75dd1 100644 (file)
@@ -196,6 +196,9 @@ int kvm_arch_init(KVMState *s);
 
 int kvm_arch_init_vcpu(CPUState *cpu);
 
+/* Returns VCPU ID to be used on KVM_CREATE_VCPU ioctl() */
+unsigned long kvm_arch_vcpu_id(CPUState *cpu);
+
 void kvm_arch_reset_vcpu(CPUState *cpu);
 
 int kvm_arch_on_sigbus_vcpu(CPUState *cpu, int code, void *addr);
index 6278d615b1572b8f1df1e95c6e5de541a50db35c..363a358a398ba5c865d8821feda94df76444ca37 100644 (file)
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -222,7 +222,7 @@ int kvm_init_vcpu(CPUState *cpu)
 
     DPRINTF("kvm_init_vcpu\n");
 
-    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, cpu->cpu_index);
+    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, (void *)kvm_arch_vcpu_id(cpu));
     if (ret < 0) {
         DPRINTF("kvm_create_vcpu failed\n");
         goto err;
index 3acff40c47fe9e2dadd6e1da89a1de4aa8674d99..5f3f7894c1866e8639ba9f4d4295174ed8445e09 100644 (file)
@@ -411,6 +411,11 @@ static void cpu_update_state(void *opaque, int running, RunState state)
     }
 }
 
+unsigned long kvm_arch_vcpu_id(CPUState *cpu)
+{
+    return cpu->cpu_index;
+}
+
 int kvm_arch_init_vcpu(CPUState *cs)
 {
     struct {
index 2f4f06818aabc11d2d8401f17e26e8e0d3068fef..2c64c634f13f05edc0072da724176d3ee91b02af 100644 (file)
@@ -384,6 +384,11 @@ static inline void kvm_fixup_page_sizes(PowerPCCPU *cpu)
 
 #endif /* !defined (TARGET_PPC64) */
 
+unsigned long kvm_arch_vcpu_id(CPUState *cpu)
+{
+    return cpu->cpu_index;
+}
+
 int kvm_arch_init_vcpu(CPUState *cs)
 {
     PowerPCCPU *cpu = POWERPC_CPU(cs);
index add6a58f9c0a64744dc432cee1c0751abd0c605a..99deddf96d5cff3d6df9d727c8dff240d873fbb9 100644 (file)
@@ -76,6 +76,11 @@ int kvm_arch_init(KVMState *s)
     return 0;
 }
 
+unsigned long kvm_arch_vcpu_id(CPUState *cpu)
+{
+    return cpu->cpu_index;
+}
+
 int kvm_arch_init_vcpu(CPUState *cpu)
 {
     int ret = 0;