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.mayd...@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.mayd...@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.kis...@siemens.com> -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux