… | |
… | |
3585 | |
3585 | |
3586 | map_len = load_len + save_len + 16; |
3586 | map_len = load_len + save_len + 16; |
3587 | |
3587 | |
3588 | map_base = mmap (0, map_len, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |
3588 | map_base = mmap (0, map_len, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |
3589 | |
3589 | |
|
|
3590 | if (map_base == (char *)MAP_FAILED) |
|
|
3591 | map_base = mmap (0, map_len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |
|
|
3592 | |
3590 | assert (("Coro: unable to mmap jit code page, cannot continue.", map_base != (char *)MAP_FAILED)); |
3593 | assert (("Coro: unable to mmap jit code page, cannot continue.", map_base != (char *)MAP_FAILED)); |
3591 | |
3594 | |
3592 | load_perl_slots = (load_save_perl_slots_type)map_base; |
3595 | load_perl_slots = (load_save_perl_slots_type)map_base; |
3593 | memcpy (map_base, load_ptr, load_len); |
3596 | memcpy (map_base, load_ptr, load_len); |
3594 | |
3597 | |