xref: /openbmc/qemu/accel/tcg/internal-common.h (revision 43e7a2d3)
15934660fSPhilippe Mathieu-Daudé /*
25934660fSPhilippe Mathieu-Daudé  * Internal execution defines for qemu (target agnostic)
35934660fSPhilippe Mathieu-Daudé  *
45934660fSPhilippe Mathieu-Daudé  *  Copyright (c) 2003 Fabrice Bellard
55934660fSPhilippe Mathieu-Daudé  *
65934660fSPhilippe Mathieu-Daudé  * SPDX-License-Identifier: LGPL-2.1-or-later
75934660fSPhilippe Mathieu-Daudé  */
85934660fSPhilippe Mathieu-Daudé 
95934660fSPhilippe Mathieu-Daudé #ifndef ACCEL_TCG_INTERNAL_COMMON_H
105934660fSPhilippe Mathieu-Daudé #define ACCEL_TCG_INTERNAL_COMMON_H
115934660fSPhilippe Mathieu-Daudé 
12*43e7a2d3SPhilippe Mathieu-Daudé #include "exec/translation-block.h"
13*43e7a2d3SPhilippe Mathieu-Daudé 
145934660fSPhilippe Mathieu-Daudé extern int64_t max_delay;
155934660fSPhilippe Mathieu-Daudé extern int64_t max_advance;
165934660fSPhilippe Mathieu-Daudé 
175934660fSPhilippe Mathieu-Daudé void dump_exec_info(GString *buf);
185934660fSPhilippe Mathieu-Daudé 
19*43e7a2d3SPhilippe Mathieu-Daudé /*
20*43e7a2d3SPhilippe Mathieu-Daudé  * Return true if CS is not running in parallel with other cpus, either
21*43e7a2d3SPhilippe Mathieu-Daudé  * because there are no other cpus or we are within an exclusive context.
22*43e7a2d3SPhilippe Mathieu-Daudé  */
23*43e7a2d3SPhilippe Mathieu-Daudé static inline bool cpu_in_serial_context(CPUState *cs)
24*43e7a2d3SPhilippe Mathieu-Daudé {
25*43e7a2d3SPhilippe Mathieu-Daudé     return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs);
26*43e7a2d3SPhilippe Mathieu-Daudé }
27*43e7a2d3SPhilippe Mathieu-Daudé 
285934660fSPhilippe Mathieu-Daudé #endif
29