From 9f57061c3555690af352b6abf9213471d70a1327 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 22 Dec 2016 17:12:33 +0100 Subject: acpi: filter based on CONFIG_ACPI_X86 rather than TARGET Copy the mechanism of hw/smbios/smbios-stub.c to implement an ACPI-stub instead, so that -acpitable can be later extended to ARM. Signed-off-by: Paolo Bonzini --- arch_init.c | 13 ------------- hw/Makefile.objs | 2 +- hw/acpi/Makefile.objs | 7 ++++++- hw/acpi/acpi-stub.c | 29 +++++++++++++++++++++++++++++ include/sysemu/arch_init.h | 1 - vl.c | 3 ++- 6 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 hw/acpi/acpi-stub.c diff --git a/arch_init.c b/arch_init.c index 34e7694e4c..6c4e287d57 100644 --- a/arch_init.c +++ b/arch_init.c @@ -234,19 +234,6 @@ void audio_init(void) } } -void do_acpitable_option(const QemuOpts *opts) -{ -#ifdef TARGET_I386 - Error *err = NULL; - - acpi_table_add(opts, &err); - if (err) { - error_reportf_err(err, "Wrong acpi table provided: "); - exit(1); - } -#endif -} - int kvm_available(void) { #ifdef CONFIG_KVM diff --git a/hw/Makefile.objs b/hw/Makefile.objs index 7be399e922..a2c61f6b09 100644 --- a/hw/Makefile.objs +++ b/hw/Makefile.objs @@ -1,5 +1,5 @@ devices-dirs-$(call land, $(CONFIG_VIRTIO),$(call land,$(CONFIG_VIRTFS),$(CONFIG_PCI))) += 9pfs/ -devices-dirs-$(CONFIG_ACPI) += acpi/ +devices-dirs-$(CONFIG_SOFTMMU) += acpi/ devices-dirs-$(CONFIG_SOFTMMU) += adc/ devices-dirs-$(CONFIG_SOFTMMU) += audio/ devices-dirs-$(CONFIG_SOFTMMU) += block/ diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs index dfc8229d2c..6acf79860a 100644 --- a/hw/acpi/Makefile.objs +++ b/hw/acpi/Makefile.objs @@ -1,9 +1,11 @@ +ifeq ($(CONFIG_ACPI),y) common-obj-$(CONFIG_ACPI_X86) += core.o piix4.o pcihp.o common-obj-$(CONFIG_ACPI_X86_ICH) += ich9.o tco.o common-obj-$(CONFIG_ACPI_CPU_HOTPLUG) += cpu_hotplug.o common-obj-$(CONFIG_ACPI_MEMORY_HOTPLUG) += memory_hotplug.o common-obj-$(CONFIG_ACPI_CPU_HOTPLUG) += cpu.o common-obj-$(CONFIG_ACPI_NVDIMM) += nvdimm.o +common-obj-$(call lnot,$(CONFIG_ACPI_X86)) += acpi-stub.o common-obj-y += acpi_interface.o common-obj-y += bios-linker-loader.o @@ -11,4 +13,7 @@ common-obj-y += aml-build.o common-obj-$(CONFIG_IPMI) += ipmi.o common-obj-$(call lnot,$(CONFIG_IPMI)) += ipmi-stub.o -common-obj-$(CONFIG_ALL) += ipmi-stub.o +else +common-obj-y += acpi-stub.o +endif +common-obj-$(CONFIG_ALL) += acpi-stub.o ipmi-stub.o diff --git a/hw/acpi/acpi-stub.c b/hw/acpi/acpi-stub.c new file mode 100644 index 0000000000..26bd22f7ec --- /dev/null +++ b/hw/acpi/acpi-stub.c @@ -0,0 +1,29 @@ +/* + * ACPI stubs for platforms that don't support ACPI. + * + * Copyright (c) 2006 Fabrice Bellard + * Copyright (c) 2016 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "qemu/osdep.h" +#include "qapi/qmp/qerror.h" +#include "qmp-commands.h" +#include "hw/acpi/acpi.h" + +void acpi_table_add(const QemuOpts *opts, Error **errp) +{ + error_setg(errp, QERR_UNSUPPORTED); +} diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h index 88dcf77a62..20b01e3004 100644 --- a/include/sysemu/arch_init.h +++ b/include/sysemu/arch_init.h @@ -28,7 +28,6 @@ enum { extern const uint32_t arch_type; void select_soundhw(const char *optarg); -void do_acpitable_option(const QemuOpts *opts); void audio_init(void); int kvm_available(void); int xen_available(void); diff --git a/vl.c b/vl.c index a2aff237ee..a52c5f2448 100644 --- a/vl.c +++ b/vl.c @@ -65,6 +65,7 @@ int main(int argc, char **argv) #include "hw/bt.h" #include "sysemu/watchdog.h" #include "hw/smbios/smbios.h" +#include "hw/acpi/acpi.h" #include "hw/xen/xen.h" #include "hw/qdev.h" #include "hw/loader.h" @@ -3657,7 +3658,7 @@ int main(int argc, char **argv, char **envp) if (!opts) { exit(1); } - do_acpitable_option(opts); + acpi_table_add(opts, &error_fatal); break; case QEMU_OPTION_smbios: opts = qemu_opts_parse_noisily(qemu_find_opts("smbios"), -- cgit v1.2.3