blob: 2c2dbc753b31ac8133cf64fa2c9ae3594475a8c8 [file]
/*
* 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.
*/
/* header to be included in non-TCG-specific code */
#ifndef SYSTEM_TCG_H
#define SYSTEM_TCG_H
#ifdef CONFIG_TCG
extern bool tcg_allowed;
#define tcg_enabled() (tcg_allowed)
#else
#define tcg_enabled() 0
#endif
/*
* Recompute the parts of CPUState::tcg_cflags that TB dispatch consumes but
* tcg_cflags_set() does not provide: gdb single-step, one-insn-per-tb and
* the CPU_LOG_TB_NOCHAIN log flag. Call whenever one of those changes.
*
* tcg_update_cflags() updates one CPU and must be called from that CPU's
* thread, or with it stopped. tcg_update_all_cflags() updates every CPU
* and is safe to call from the monitor while the vCPUs run.
*/
void tcg_update_cflags(CPUState *cpu);
void tcg_update_all_cflags(void);
/**
* qemu_tcg_mttcg_enabled:
* Check whether we are running MultiThread TCG or not.
*
* Returns: %true if we are in MTTCG mode %false otherwise.
*/
bool qemu_tcg_mttcg_enabled(void);
#endif