56#define SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec) \
57 sljit_update_wx_flags((from), (to), (enable_exec))
59#if !(defined SLJIT_SINGLE_THREADED && SLJIT_SINGLE_THREADED)
61#define SLJIT_SE_LOCK() pthread_mutex_lock(&se_lock)
62#define SLJIT_SE_UNLOCK() pthread_mutex_unlock(&se_lock)
64#define SLJIT_SE_LOCK()
65#define SLJIT_SE_UNLOCK()
68#define SLJIT_WX_IS_BLOCK(ptr, size) generic_check_is_wx_block(ptr, size)
80#if !(defined SLJIT_SINGLE_THREADED && SLJIT_SINGLE_THREADED)
81 static pthread_mutex_t se_lock = PTHREAD_MUTEX_INITIALIZER;
83 static int wx_block = -1;
114#undef SLJIT_SE_UNLOCK
120 munmap((
void*)start_ptr, *start_ptr);
123static void sljit_update_wx_flags(
void *from,
void *to,
int enable_exec)
133 end = (
end + page_mask) & ~page_mask;
unsigned const char * end
int mprotect(void *addr, size_t size, int protection)
#define SLJIT_UNLIKELY(x)
#define SLJIT_API_FUNC_ATTRIBUTE
SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void *ptr)
#define SLJIT_WX_IS_BLOCK(ptr, size)
SLJIT_API_FUNC_ATTRIBUTE void * sljit_malloc_exec(sljit_uw size)
#define SLJIT_SE_UNLOCK()
SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void)