Message ID | 1343222672-25312-4-git-send-email-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
On 2012-07-25 15:24, Peter Maydell wrote: > kvm_allows_irq0_override() is a totally x86 specific concept: > move it to the target-specific source file where it belongs. > This means we need a new header file for the prototype: > kvm_i386.h, in line with the existing kvm_ppc.h. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > hw/pc.c | 1 + > kvm-all.c | 5 ----- > kvm-stub.c | 5 ----- > kvm.h | 2 -- > target-i386/Makefile.objs | 1 + > target-i386/kvm-stub.c | 17 +++++++++++++++++ > target-i386/kvm.c | 6 ++++++ > target-i386/kvm_i386.h | 16 ++++++++++++++++ > 8 files changed, 41 insertions(+), 12 deletions(-) > create mode 100644 target-i386/kvm-stub.c > create mode 100644 target-i386/kvm_i386.h > > diff --git a/hw/pc.c b/hw/pc.c > index 598267a..4953376 100644 > --- a/hw/pc.c > +++ b/hw/pc.c > @@ -42,6 +42,7 @@ > #include "sysbus.h" > #include "sysemu.h" > #include "kvm.h" > +#include "kvm_i386.h" > #include "xen.h" > #include "blockdev.h" > #include "hw/block-common.h" > diff --git a/kvm-all.c b/kvm-all.c > index 9f14274..8e21d81 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1672,11 +1672,6 @@ int kvm_has_gsi_routing(void) > #endif > } > > -int kvm_allows_irq0_override(void) > -{ > - return !kvm_irqchip_in_kernel() || kvm_has_gsi_routing(); > -} > - > void *kvm_vmalloc(ram_addr_t size) > { > #ifdef TARGET_S390X > diff --git a/kvm-stub.c b/kvm-stub.c > index b4023d1..af1cb5e 100644 > --- a/kvm-stub.c > +++ b/kvm-stub.c > @@ -72,11 +72,6 @@ int kvm_has_many_ioeventfds(void) > return 0; > } > > -int kvm_allows_irq0_override(void) > -{ > - return 1; > -} > - > int kvm_has_pit_state2(void) > { > return 0; > diff --git a/kvm.h b/kvm.h > index cfdc95e..e6cbf12 100644 > --- a/kvm.h > +++ b/kvm.h > @@ -73,8 +73,6 @@ int kvm_has_pit_state2(void); > int kvm_has_many_ioeventfds(void); > int kvm_has_gsi_routing(void); > > -int kvm_allows_irq0_override(void); > - > #ifdef NEED_CPU_H > int kvm_init_vcpu(CPUArchState *env); > > diff --git a/target-i386/Makefile.objs b/target-i386/Makefile.objs > index 683fd59..0715f58 100644 > --- a/target-i386/Makefile.objs > +++ b/target-i386/Makefile.objs > @@ -3,6 +3,7 @@ obj-y += excp_helper.o fpu_helper.o cc_helper.o int_helper.o svm_helper.o > obj-y += smm_helper.o misc_helper.o mem_helper.o seg_helper.o > obj-$(CONFIG_SOFTMMU) += machine.o arch_memory_mapping.o arch_dump.o > obj-$(CONFIG_KVM) += kvm.o hyperv.o > +obj-$(CONFIG_NO_KVM) += kvm-stub.o > obj-$(CONFIG_LINUX_USER) += ioport-user.o > obj-$(CONFIG_BSD_USER) += ioport-user.o > > diff --git a/target-i386/kvm-stub.c b/target-i386/kvm-stub.c > new file mode 100644 > index 0000000..30037e4 > --- /dev/null > +++ b/target-i386/kvm-stub.c > @@ -0,0 +1,17 @@ > +/* > + * QEMU KVM x86 specific function stubs > + * > + * Copyright Linaro Limited 2012 > + * > + * Author: Peter Maydell <peter.maydell@linaro.org> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + * > + */ > +#include "kvm_i386.h" > + > +int kvm_allows_irq0_override(void) > +{ > + return 1; > +} > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > index e53c2f6..503abeb 100644 > --- a/target-i386/kvm.c > +++ b/target-i386/kvm.c > @@ -23,6 +23,7 @@ > #include "qemu-common.h" > #include "sysemu.h" > #include "kvm.h" > +#include "kvm_i386.h" > #include "cpu.h" > #include "gdbstub.h" > #include "host-utils.h" > @@ -65,6 +66,11 @@ static bool has_msr_async_pf_en; > static bool has_msr_misc_enable; > static int lm_capable_kernel; > > +int kvm_allows_irq0_override(void) > +{ > + return !kvm_irqchip_in_kernel() || kvm_has_gsi_routing(); > +} > + > static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max) > { > struct kvm_cpuid2 *cpuid; > diff --git a/target-i386/kvm_i386.h b/target-i386/kvm_i386.h > new file mode 100644 > index 0000000..87031c0 > --- /dev/null > +++ b/target-i386/kvm_i386.h > @@ -0,0 +1,16 @@ > +/* > + * QEMU KVM support -- x86 specific functions. > + * > + * Copyright (c) 2012 Linaro Limited > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + * > + */ > + > +#ifndef QEMU_KVM_I386_H > +#define QEMU_KVM_I386_H > + > +int kvm_allows_irq0_override(void); Make it bool at this chance? > + > +#endif > This looks better. Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
diff --git a/hw/pc.c b/hw/pc.c index 598267a..4953376 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -42,6 +42,7 @@ #include "sysbus.h" #include "sysemu.h" #include "kvm.h" +#include "kvm_i386.h" #include "xen.h" #include "blockdev.h" #include "hw/block-common.h" diff --git a/kvm-all.c b/kvm-all.c index 9f14274..8e21d81 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -1672,11 +1672,6 @@ int kvm_has_gsi_routing(void) #endif } -int kvm_allows_irq0_override(void) -{ - return !kvm_irqchip_in_kernel() || kvm_has_gsi_routing(); -} - void *kvm_vmalloc(ram_addr_t size) { #ifdef TARGET_S390X diff --git a/kvm-stub.c b/kvm-stub.c index b4023d1..af1cb5e 100644 --- a/kvm-stub.c +++ b/kvm-stub.c @@ -72,11 +72,6 @@ int kvm_has_many_ioeventfds(void) return 0; } -int kvm_allows_irq0_override(void) -{ - return 1; -} - int kvm_has_pit_state2(void) { return 0; diff --git a/kvm.h b/kvm.h index cfdc95e..e6cbf12 100644 --- a/kvm.h +++ b/kvm.h @@ -73,8 +73,6 @@ int kvm_has_pit_state2(void); int kvm_has_many_ioeventfds(void); int kvm_has_gsi_routing(void); -int kvm_allows_irq0_override(void); - #ifdef NEED_CPU_H int kvm_init_vcpu(CPUArchState *env); diff --git a/target-i386/Makefile.objs b/target-i386/Makefile.objs index 683fd59..0715f58 100644 --- a/target-i386/Makefile.objs +++ b/target-i386/Makefile.objs @@ -3,6 +3,7 @@ obj-y += excp_helper.o fpu_helper.o cc_helper.o int_helper.o svm_helper.o obj-y += smm_helper.o misc_helper.o mem_helper.o seg_helper.o obj-$(CONFIG_SOFTMMU) += machine.o arch_memory_mapping.o arch_dump.o obj-$(CONFIG_KVM) += kvm.o hyperv.o +obj-$(CONFIG_NO_KVM) += kvm-stub.o obj-$(CONFIG_LINUX_USER) += ioport-user.o obj-$(CONFIG_BSD_USER) += ioport-user.o diff --git a/target-i386/kvm-stub.c b/target-i386/kvm-stub.c new file mode 100644 index 0000000..30037e4 --- /dev/null +++ b/target-i386/kvm-stub.c @@ -0,0 +1,17 @@ +/* + * QEMU KVM x86 specific function stubs + * + * Copyright Linaro Limited 2012 + * + * Author: Peter Maydell <peter.maydell@linaro.org> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ +#include "kvm_i386.h" + +int kvm_allows_irq0_override(void) +{ + return 1; +} diff --git a/target-i386/kvm.c b/target-i386/kvm.c index e53c2f6..503abeb 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -23,6 +23,7 @@ #include "qemu-common.h" #include "sysemu.h" #include "kvm.h" +#include "kvm_i386.h" #include "cpu.h" #include "gdbstub.h" #include "host-utils.h" @@ -65,6 +66,11 @@ static bool has_msr_async_pf_en; static bool has_msr_misc_enable; static int lm_capable_kernel; +int kvm_allows_irq0_override(void) +{ + return !kvm_irqchip_in_kernel() || kvm_has_gsi_routing(); +} + static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max) { struct kvm_cpuid2 *cpuid; diff --git a/target-i386/kvm_i386.h b/target-i386/kvm_i386.h new file mode 100644 index 0000000..87031c0 --- /dev/null +++ b/target-i386/kvm_i386.h @@ -0,0 +1,16 @@ +/* + * QEMU KVM support -- x86 specific functions. + * + * Copyright (c) 2012 Linaro Limited + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#ifndef QEMU_KVM_I386_H +#define QEMU_KVM_I386_H + +int kvm_allows_irq0_override(void); + +#endif
kvm_allows_irq0_override() is a totally x86 specific concept: move it to the target-specific source file where it belongs. This means we need a new header file for the prototype: kvm_i386.h, in line with the existing kvm_ppc.h. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- hw/pc.c | 1 + kvm-all.c | 5 ----- kvm-stub.c | 5 ----- kvm.h | 2 -- target-i386/Makefile.objs | 1 + target-i386/kvm-stub.c | 17 +++++++++++++++++ target-i386/kvm.c | 6 ++++++ target-i386/kvm_i386.h | 16 ++++++++++++++++ 8 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 target-i386/kvm-stub.c create mode 100644 target-i386/kvm_i386.h