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é */ 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