-static void *psi_ffi_closure_alloc(size_t s, void **code)
-{
-#ifdef PSI_HAVE_FFI_CLOSURE_ALLOC
- return ffi_closure_alloc(s, code);
-#elif HAVE_MMAP
- *code = mmap(NULL, s, PROT_EXEC|PROT_WRITE|PROT_READ,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
- if (MAP_FAILED == *code) {
- return NULL;
- }
- return *code;
-#else
-# error "Neither ffi_closure_alloc() nor mmap() available"