summaryrefslogtreecommitdiff
path: root/tcg/tcg.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2016-10-27 16:10:03 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2016-10-31 10:51:16 +0100
commit7d7500d99895f888f97397ef32bb536bb0df3b74 (patch)
tree74c162202469e3996321e543814aec348f3064d8 /tcg/tcg.h
parent4426f83a9ac7bbce48602c712333efc79cd57b29 (diff)
downloadqemu-7d7500d99895f888f97397ef32bb536bb0df3b74.zip
tcg: comment on which functions have to be called with tb_lock held
softmmu requires more functions to be thread-safe, because translation blocks can be invalidated from e.g. notdirty callbacks. Probably the same holds for user-mode emulation, it's just that no one has ever tried to produce a coherent locking there. This patch will guide the introduction of more tb_lock and tb_unlock calls for system emulation. Note that after this patch some (most) of the mentioned functions are still called outside tb_lock/tb_unlock. The next one will rectify this. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Message-Id: <20161027151030.20863-7-alex.bennee@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tcg/tcg.h')
-rw-r--r--tcg/tcg.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/tcg/tcg.h b/tcg/tcg.h
index b34b5fbc2f..dc1281fb4e 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -726,6 +726,7 @@ static inline bool tcg_op_buf_full(void)
/* pool based memory allocation */
+/* tb_lock must be held for tcg_malloc_internal. */
void *tcg_malloc_internal(TCGContext *s, int size);
void tcg_pool_reset(TCGContext *s);
@@ -733,6 +734,7 @@ void tb_lock(void);
void tb_unlock(void);
void tb_lock_reset(void);
+/* Called with tb_lock held. */
static inline void *tcg_malloc(int size)
{
TCGContext *s = &tcg_ctx;