@@ -42,6 +42,13 @@ void mmap_unlock(void)
}
}
+void mmap_lock_reset(void)
+{
+ if (mmap_lock_count) {
+ pthread_mutex_unlock(&mmap_mutex);
+ }
+}
+
/* Grab lock to make sure things are in a consistent state after fork(). */
void mmap_fork_start(void)
{
@@ -369,6 +369,7 @@ void tlb_fill(CPUState *cpu, target_ulong addr, int is_write, int mmu_idx,
#if defined(CONFIG_USER_ONLY)
void mmap_lock(void);
void mmap_unlock(void);
+void mmap_lock_reset(void);
static inline tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong addr)
{
@@ -377,6 +378,7 @@ static inline tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong
#else
static inline void mmap_lock(void) {}
static inline void mmap_unlock(void) {}
+static inline void mmap_lock_reset(void) {}
/* cputlb.c */
tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong addr);
@@ -43,6 +43,13 @@ void mmap_unlock(void)
}
}
+void mmap_lock_reset(void)
+{
+ if (mmap_lock_count) {
+ pthread_mutex_unlock(&mmap_mutex);
+ }
+}
+
/* Grab lock to make sure things are in a consistent state after fork(). */
void mmap_fork_start(void)
{