28#if HAVE_MMAP && HAVE_MPROTECT
29# define _DEFAULT_SOURCE
31# define _DARWIN_C_SOURCE
33# if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
34# define MAP_ANONYMOUS MAP_ANON
38#if HAVE_MMAP && HAVE_MPROTECT && defined(MAP_ANONYMOUS)
42 void *ptr = mmap(
NULL,
size, PROT_READ | PROT_WRITE,
43 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
44 if (ptr == MAP_FAILED)
51 if (mprotect(ptr,
size, PROT_READ | PROT_EXEC) == -1)
62#elif HAVE_VIRTUALALLOC
68 return VirtualAlloc(
NULL,
size, MEM_COMMIT, PAGE_READWRITE);
74 if (!VirtualProtect(ptr,
size, PAGE_EXECUTE_READ, &old_protect))
82 VirtualFree(ptr, 0, MEM_RELEASE);
void * ff_sws_jit_alloc(size_t size)
void ff_sws_jit_free(void *ptr, size_t size)
int ff_sws_jit_protect(void *ptr, size_t size)
Memory handling functions.