xref: /openbmc/qemu/accel/tcg/internal-common.h (revision 24a4d59a)
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é 
17*43e7a2d3SPhilippe Mathieu-Daudé /*
18*43e7a2d3SPhilippe Mathieu-Daudé  * Return true if CS is not running in parallel with other cpus, either
19*43e7a2d3SPhilippe Mathieu-Daudé  * because there are no other cpus or we are within an exclusive context.
20*43e7a2d3SPhilippe Mathieu-Daudé  */
cpu_in_serial_context(CPUState * cs)21*43e7a2d3SPhilippe Mathieu-Daudé static inline bool cpu_in_serial_context(CPUState *cs)
22*43e7a2d3SPhilippe Mathieu-Daudé {
23*43e7a2d3SPhilippe Mathieu-Daudé     return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs);
24*43e7a2d3SPhilippe Mathieu-Daudé }
25*43e7a2d3SPhilippe Mathieu-Daudé 
265934660fSPhilippe Mathieu-Daudé #endif
27