On Thu, 11 Apr 2013 14:45:42 -0300 Eduardo Habkost <ehabk...@redhat.com> wrote:
> On Thu, Apr 11, 2013 at 04:51:42PM +0200, Igor Mammedov wrote: > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > --- > > Makefile.target | 13 +++++++------ > > include/hw/pci/msi.h | 2 ++ > > include/sysemu/kvm.h | 4 ++-- > > kvm-stub.c | 2 ++ > > 4 files changed, 13 insertions(+), 8 deletions(-) > > > > diff --git a/Makefile.target b/Makefile.target > > index 2bd6d14..18f348c 100644 > > --- a/Makefile.target > > +++ b/Makefile.target > > @@ -64,6 +64,12 @@ all: $(PROGS) stap > > # Dummy command so that make thinks it has done something > > @true > > > > +CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y) > > +CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y) > > +CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y) > > +CONFIG_NO_GET_MEMORY_MAPPING = $(if $(subst > > n,,$(CONFIG_HAVE_GET_MEMORY_MAPPING)),n,y) > > +CONFIG_NO_CORE_DUMP = $(if $(subst n,,$(CONFIG_HAVE_CORE_DUMP)),n,y) > > + > > ######################################################### > > # cpu emulator library > > obj-y = exec.o translate-all.o cpu-exec.o > > @@ -74,6 +80,7 @@ obj-y += fpu/softfloat.o > > obj-y += target-$(TARGET_BASE_ARCH)/ > > obj-y += disas.o > > obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o > > +obj-$(CONFIG_NO_KVM) += kvm-stub.o > > The kvm-stub.o line at the "System emulator target" section is redundant > now, isn't it? Any specific reason you didn't remove it? Nope, I just forgot it. Thanks, I'll fix it. > > > > > ######################################################### > > # Linux user emulator target > > @@ -102,12 +109,6 @@ endif #CONFIG_BSD_USER > > ######################################################### > > # System emulator target > > ifdef CONFIG_SOFTMMU > > -CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y) > > -CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y) > > -CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y) > > -CONFIG_NO_GET_MEMORY_MAPPING = $(if $(subst > > n,,$(CONFIG_HAVE_GET_MEMORY_MAPPING)),n,y) > > -CONFIG_NO_CORE_DUMP = $(if $(subst n,,$(CONFIG_HAVE_CORE_DUMP)),n,y) > > - > > obj-y += arch_init.o cpus.o monitor.o gdbstub.o balloon.o ioport.o > > obj-y += qtest.o > > obj-y += hw/ > > diff --git a/include/hw/pci/msi.h b/include/hw/pci/msi.h > > index 81a3848..d4d0450 100644 > > --- a/include/hw/pci/msi.h > > +++ b/include/hw/pci/msi.h > > @@ -21,6 +21,7 @@ > > #ifndef QEMU_MSI_H > > #define QEMU_MSI_H > > > > +#ifndef CONFIG_USER_ONLY > > I would simply #ifdef the "#include pci/msi.h" line on kvm-stub.c > instead. But I guess it doesn't hurt to have the #ifdef here. It's more robust to not ifdef at source rather then at places where it's used. > > > #include "qemu-common.h" > > #include "hw/pci/pci.h" > > > > @@ -47,4 +48,5 @@ static inline bool msi_present(const PCIDevice *dev) > > return dev->cap_present & QEMU_PCI_CAP_MSI; > > } > > > > +#endif > > #endif /* QEMU_MSI_H */ > > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h > > index 495e6f8..93cef28 100644 > > --- a/include/sysemu/kvm.h > > +++ b/include/sysemu/kvm.h > > @@ -144,10 +144,10 @@ int kvm_cpu_exec(CPUArchState *env); > > #if !defined(CONFIG_USER_ONLY) > > void *kvm_vmalloc(ram_addr_t size); > > void *kvm_arch_vmalloc(ram_addr_t size); > > -void kvm_setup_guest_memory(void *start, size_t size); > > +#endif > > > > +void kvm_setup_guest_memory(void *start, size_t size); > > void kvm_flush_coalesced_mmio_buffer(void); > > -#endif > > > > int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr, > > target_ulong len, int type); > > diff --git a/kvm-stub.c b/kvm-stub.c > > index 82875dd..b34064a 100644 > > --- a/kvm-stub.c > > +++ b/kvm-stub.c > > @@ -122,6 +122,7 @@ int kvm_on_sigbus(int code, void *addr) > > return 1; > > } > > > > +#ifndef CONFIG_USER_ONLY > > int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg) > > { > > return -ENOSYS; > > @@ -145,3 +146,4 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s, > > EventNotifier *n, int virq) > > { > > return -ENOSYS; > > } > > +#endif > > What about making MSIMessage definition available on CONFIG_USER_ONLY, > so we don't even need to #ifdef this part? it might work, but it causes #includes split which I don't like much. Anyway here is patch on top of this one. If it looks more acceptable to you this way, I'll merge it. --- diff --git a/include/hw/pci/msi.h b/include/hw/pci/msi.h index d4d0450..c159a15 100644 --- a/include/hw/pci/msi.h +++ b/include/hw/pci/msi.h @@ -21,15 +21,15 @@ #ifndef QEMU_MSI_H #define QEMU_MSI_H -#ifndef CONFIG_USER_ONLY #include "qemu-common.h" -#include "hw/pci/pci.h" struct MSIMessage { uint64_t address; uint32_t data; }; +#ifndef CONFIG_USER_ONLY +#include "hw/pci/pci.h" extern bool msi_supported; void msi_set_message(PCIDevice *dev, MSIMessage msg); diff --git a/kvm-stub.c b/kvm-stub.c index 8cb81c4..b5d4446 100644 --- a/kvm-stub.c +++ b/kvm-stub.c @@ -123,7 +123,6 @@ int kvm_on_sigbus(int code, void *addr) return 1; } -#ifndef CONFIG_USER_ONLY int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg) { return -ENOSYS; @@ -147,4 +146,3 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, int virq) { return -ENOSYS; } -#endif > > -- > Eduardo -- Regards, Igor