From 14a48c1d0d687735c76880e59bcede6e99871ded Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 23 May 2019 16:35:05 +0200 Subject: [PATCH] qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h Other accelerators have their own headers: sysemu/hax.h, sysemu/hvf.h, sysemu/kvm.h, sysemu/whpx.h. Only tcg_enabled() & friends sit in qemu-common.h. This necessitates inclusion of qemu-common.h into headers, which is against the rules spelled out in qemu-common.h's file comment. Move tcg_enabled() & friends into their own header sysemu/tcg.h, and adjust #include directives. Cc: Richard Henderson Cc: Paolo Bonzini Signed-off-by: Markus Armbruster Message-Id: <20190523143508.25387-2-armbru@redhat.com> Reviewed-by: Richard Henderson [Rebased with conflicts resolved automatically, except for accel/tcg/tcg-all.c] --- MAINTAINERS | 1 + accel/tcg/cpu-exec-common.c | 1 + accel/tcg/tcg-all.c | 2 +- accel/tcg/translate-all.c | 3 ++- bsd-user/main.c | 2 ++ cpus.c | 1 + exec.c | 2 ++ hw/i386/pc.c | 1 + hw/ppc/spapr_caps.c | 2 ++ hw/s390x/ipl.c | 1 + include/exec/ram_addr.h | 1 + include/qemu-common.h | 8 -------- include/sysemu/tcg.h | 19 +++++++++++++++++++ linux-user/main.c | 2 ++ memory.c | 2 +- monitor.c | 1 + qemu-nbd.c | 1 + qom/cpu.c | 2 +- target/arm/cpu.c | 2 +- target/i386/cpu.c | 1 + target/i386/cpu.h | 2 +- target/i386/helper.c | 1 + target/i386/machine.c | 2 +- target/ppc/translate_init.inc.c | 1 + target/s390x/cpu.c | 2 +- target/s390x/cpu_models.c | 1 + target/s390x/gdbstub.c | 3 ++- target/s390x/helper.c | 1 + target/s390x/interrupt.c | 1 + target/s390x/machine.c | 1 + target/s390x/mmu_helper.c | 1 + target/s390x/sigp.c | 2 +- vl.c | 1 + 33 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 include/sysemu/tcg.h diff --git a/MAINTAINERS b/MAINTAINERS index 7be122541583..ef00e8a70dbf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -125,6 +125,7 @@ F: include/exec/exec-all.h F: include/exec/helper*.h F: include/exec/tb-hash.h F: include/sysemu/cpus.h +F: include/sysemu/tcg.h FPU emulation M: Aurelien Jarno diff --git a/accel/tcg/cpu-exec-common.c b/accel/tcg/cpu-exec-common.c index 462a1f1865a7..12c1e3e97448 100644 --- a/accel/tcg/cpu-exec-common.c +++ b/accel/tcg/cpu-exec-common.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "sysemu/cpus.h" +#include "sysemu/tcg.h" #include "exec/exec-all.h" bool tcg_allowed; diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 9b215dcc5a86..c92d4c82eddf 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -26,8 +26,8 @@ #include "qemu/osdep.h" #include "sysemu/accel.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "qom/object.h" -#include "qemu-common.h" #include "cpu.h" #include "sysemu/cpus.h" #include "qemu/main-loop.h" diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index e24ee3a17226..5d97a2a65140 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -16,9 +16,9 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see . */ + #include "qemu/osdep.h" -#include "qemu-common.h" #define NO_CPU_IO_DEFS #include "cpu.h" #include "trace.h" @@ -55,6 +55,7 @@ #include "qemu/main-loop.h" #include "exec/log.h" #include "sysemu/cpus.h" +#include "sysemu/tcg.h" /* #define DEBUG_TB_INVALIDATE */ /* #define DEBUG_TB_FLUSH */ diff --git a/bsd-user/main.c b/bsd-user/main.c index c473a99153df..7d4abd20ed3f 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -16,8 +16,10 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ + #include "qemu/osdep.h" #include "qemu/units.h" +#include "sysemu/tcg.h" #include "qemu-version.h" #include diff --git a/cpus.c b/cpus.c index 111ca4ed1cdb..5d7be0c5a2b0 100644 --- a/cpus.c +++ b/cpus.c @@ -33,6 +33,7 @@ #include "qemu/error-report.h" #include "qemu/qemu-print.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "sysemu/block-backend.h" #include "exec/gdbstub.h" #include "sysemu/dma.h" diff --git a/exec.c b/exec.c index 4e734770c20f..0bc59e9a30d1 100644 --- a/exec.c +++ b/exec.c @@ -16,6 +16,7 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see . */ + #include "qemu/osdep.h" #include "qapi/error.h" @@ -32,6 +33,7 @@ #endif #include "sysemu/kvm.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "qemu/timer.h" #include "qemu/config-file.h" #include "qemu/error-report.h" diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 1b08b5636225..2c5446b0951e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -50,6 +50,7 @@ #include "hw/pci/msi.h" #include "hw/sysbus.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "sysemu/numa.h" #include "sysemu/kvm.h" #include "sysemu/qtest.h" diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index 31b466139975..bbb001f84a47 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -21,6 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + #include "qemu/osdep.h" #include "qemu/error-report.h" #include "qapi/error.h" @@ -32,6 +33,7 @@ #include "cpu-models.h" #include "kvm_ppc.h" #include "sysemu/qtest.h" +#include "sysemu/tcg.h" #include "hw/ppc/spapr.h" diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index b93750c14eac..1f3aef051b3d 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -14,6 +14,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "cpu.h" #include "elf.h" #include "hw/loader.h" diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index 139ad79390fa..f96777bb9921 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -21,6 +21,7 @@ #ifndef CONFIG_USER_ONLY #include "hw/xen/xen.h" +#include "sysemu/tcg.h" #include "exec/ramlist.h" struct RAMBlock { diff --git a/include/qemu-common.h b/include/qemu-common.h index f891e05e7e5d..d7f4a4e7eb2c 100644 --- a/include/qemu-common.h +++ b/include/qemu-common.h @@ -77,14 +77,6 @@ int qemu_openpty_raw(int *aslave, char *pty_name); sendto(sockfd, buf, len, flags, destaddr, addrlen) #endif -extern bool tcg_allowed; -void tcg_exec_init(unsigned long tb_size); -#ifdef CONFIG_TCG -#define tcg_enabled() (tcg_allowed) -#else -#define tcg_enabled() 0 -#endif - void cpu_exec_init_all(void); void cpu_exec_step_atomic(CPUState *cpu); diff --git a/include/sysemu/tcg.h b/include/sysemu/tcg.h new file mode 100644 index 000000000000..7d116d2e801a --- /dev/null +++ b/include/sysemu/tcg.h @@ -0,0 +1,19 @@ +/* + * QEMU TCG support + * + * 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 SYSEMU_TCG_H +#define SYSEMU_TCG_H + +extern bool tcg_allowed; +void tcg_exec_init(unsigned long tb_size); +#ifdef CONFIG_TCG +#define tcg_enabled() (tcg_allowed) +#else +#define tcg_enabled() 0 +#endif + +#endif diff --git a/linux-user/main.c b/linux-user/main.c index 97ca22bb042b..a2b4a9f3e29f 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -16,8 +16,10 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ + #include "qemu/osdep.h" #include "qemu/units.h" +#include "sysemu/tcg.h" #include "qemu-version.h" #include #include diff --git a/memory.c b/memory.c index 0920c105aa22..0a089a73ae1a 100644 --- a/memory.c +++ b/memory.c @@ -15,7 +15,6 @@ #include "qemu/osdep.h" #include "qapi/error.h" -#include "qemu-common.h" #include "cpu.h" #include "exec/memory.h" #include "exec/address-spaces.h" @@ -30,6 +29,7 @@ #include "exec/ram_addr.h" #include "sysemu/kvm.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "hw/qdev-properties.h" #include "migration/vmstate.h" diff --git a/monitor.c b/monitor.c index 6428eb3b7ea4..3650ceb57464 100644 --- a/monitor.c +++ b/monitor.c @@ -53,6 +53,7 @@ #include "sysemu/hw_accel.h" #include "authz/list.h" #include "qapi/util.h" +#include "sysemu/tcg.h" #include "sysemu/tpm.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qerror.h" diff --git a/qemu-nbd.c b/qemu-nbd.c index 081fcf74d5c9..25ce71e16003 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -21,6 +21,7 @@ #include #include +#include "qemu-common.h" #include "qapi/error.h" #include "qemu/cutils.h" #include "sysemu/block-backend.h" diff --git a/qom/cpu.c b/qom/cpu.c index 6b4632abda30..f376f782d839 100644 --- a/qom/cpu.c +++ b/qom/cpu.c @@ -20,7 +20,6 @@ #include "qemu/osdep.h" #include "qapi/error.h" -#include "qemu-common.h" #include "qom/cpu.h" #include "sysemu/hw_accel.h" #include "qemu/notify.h" @@ -30,6 +29,7 @@ #include "qemu/error-report.h" #include "qemu/qemu-print.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "hw/boards.h" #include "hw/qdev-properties.h" #include "trace-root.h" diff --git a/target/arm/cpu.c b/target/arm/cpu.c index f70e07fd1185..c2dff10f8205 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -24,13 +24,13 @@ #include "qapi/visitor.h" #include "cpu.h" #include "internals.h" -#include "qemu-common.h" #include "exec/exec-all.h" #include "hw/qdev-properties.h" #if !defined(CONFIG_USER_ONLY) #include "hw/loader.h" #endif #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "sysemu/hw_accel.h" #include "kvm_arm.h" #include "disas/capstone.h" diff --git a/target/i386/cpu.c b/target/i386/cpu.c index b21ecaac17d8..a4bc04ed1dc3 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -47,6 +47,7 @@ #include "standard-headers/asm-x86/kvm_para.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "hw/qdev-properties.h" #include "hw/i386/topology.h" #ifndef CONFIG_USER_ONLY diff --git a/target/i386/cpu.h b/target/i386/cpu.h index edad6e1efb7f..0732e059ec98 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -20,7 +20,7 @@ #ifndef I386_CPU_H #define I386_CPU_H -#include "qemu-common.h" +#include "sysemu/tcg.h" #include "cpu-qom.h" #include "hyperv-proto.h" #include "exec/cpu-defs.h" diff --git a/target/i386/helper.c b/target/i386/helper.c index ff3a60c7cff8..23024926acf3 100644 --- a/target/i386/helper.c +++ b/target/i386/helper.c @@ -25,6 +25,7 @@ #include "kvm_i386.h" #ifndef CONFIG_USER_ONLY #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "sysemu/hw_accel.h" #include "monitor/monitor.h" #include "hw/i386/apic_internal.h" diff --git a/target/i386/machine.c b/target/i386/machine.c index 225b5d433bc4..1150967b9739 100644 --- a/target/i386/machine.c +++ b/target/i386/machine.c @@ -1,5 +1,4 @@ #include "qemu/osdep.h" -#include "qemu-common.h" #include "cpu.h" #include "exec/exec-all.h" #include "hw/hw.h" @@ -10,6 +9,7 @@ #include "hyperv.h" #include "sysemu/kvm.h" +#include "sysemu/tcg.h" #include "qemu/error-report.h" diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index b71b7bac20a9..970171b11690 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -24,6 +24,7 @@ #include "sysemu/arch_init.h" #include "sysemu/cpus.h" #include "sysemu/hw_accel.h" +#include "sysemu/tcg.h" #include "cpu-models.h" #include "mmu-hash32.h" #include "mmu-hash64.h" diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 4ca66fed1a8f..c80743a92374 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -26,7 +26,6 @@ #include "internal.h" #include "kvm_s390x.h" #include "sysemu/kvm.h" -#include "qemu-common.h" #include "qemu/timer.h" #include "qemu/error-report.h" #include "trace.h" @@ -39,6 +38,7 @@ #include "hw/hw.h" #include "sysemu/arch_init.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #endif #include "fpu/softfloat.h" diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index b5d16e4c8966..3fce8114deed 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -15,6 +15,7 @@ #include "internal.h" #include "kvm_s390x.h" #include "sysemu/kvm.h" +#include "sysemu/tcg.h" #include "qapi/error.h" #include "qapi/visitor.h" #include "qemu/error-report.h" diff --git a/target/s390x/gdbstub.c b/target/s390x/gdbstub.c index a45d805a21d3..e24a49f4a915 100644 --- a/target/s390x/gdbstub.c +++ b/target/s390x/gdbstub.c @@ -17,14 +17,15 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see . */ + #include "qemu/osdep.h" -#include "qemu-common.h" #include "cpu.h" #include "internal.h" #include "exec/exec-all.h" #include "exec/gdbstub.h" #include "qemu/bitops.h" #include "sysemu/hw_accel.h" +#include "sysemu/tcg.h" int s390_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n) { diff --git a/target/s390x/helper.c b/target/s390x/helper.c index 52a11daeaea1..13ae9909ad1e 100644 --- a/target/s390x/helper.c +++ b/target/s390x/helper.c @@ -28,6 +28,7 @@ #include "sysemu/hw_accel.h" #ifndef CONFIG_USER_ONLY #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #endif #ifndef CONFIG_USER_ONLY diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c index a8f9b387956d..a841f7187d75 100644 --- a/target/s390x/interrupt.c +++ b/target/s390x/interrupt.c @@ -14,6 +14,7 @@ #include "internal.h" #include "exec/exec-all.h" #include "sysemu/kvm.h" +#include "sysemu/tcg.h" #include "hw/s390x/ioinst.h" #include "tcg_s390x.h" #if !defined(CONFIG_USER_ONLY) diff --git a/target/s390x/machine.c b/target/s390x/machine.c index e6851a57bcc6..1e9526e93762 100644 --- a/target/s390x/machine.c +++ b/target/s390x/machine.c @@ -21,6 +21,7 @@ #include "kvm_s390x.h" #include "tcg_s390x.h" #include "sysemu/kvm.h" +#include "sysemu/tcg.h" static int cpu_post_load(void *opaque, int version_id) { diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 9669bae393ba..6e9c4d6151bb 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -22,6 +22,7 @@ #include "internal.h" #include "kvm_s390x.h" #include "sysemu/kvm.h" +#include "sysemu/tcg.h" #include "exec/exec-all.h" #include "trace.h" #include "hw/s390x/storage-keys.h" diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c index ea5f69d5d862..ce49a792fcee 100644 --- a/target/s390x/sigp.c +++ b/target/s390x/sigp.c @@ -9,13 +9,13 @@ */ #include "qemu/osdep.h" -#include "qemu-common.h" #include "cpu.h" #include "internal.h" #include "sysemu/hw_accel.h" #include "exec/address-spaces.h" #include "exec/exec-all.h" #include "sysemu/sysemu.h" +#include "sysemu/tcg.h" #include "trace.h" #include "qapi/qapi-types-misc.h" diff --git a/vl.c b/vl.c index cd1fbc4cdc53..efdfea26ee9f 100644 --- a/vl.c +++ b/vl.c @@ -30,6 +30,7 @@ #include "qemu/help_option.h" #include "qemu/uuid.h" #include "sysemu/seccomp.h" +#include "sysemu/tcg.h" #ifdef CONFIG_SDL #if defined(__APPLE__) || defined(main)