… | |
… | |
3377 | save = POPs; save_ptr = SvPVbyte (save, save_len); |
3377 | save = POPs; save_ptr = SvPVbyte (save, save_len); |
3378 | load = POPs; load_ptr = SvPVbyte (load, load_len); |
3378 | load = POPs; load_ptr = SvPVbyte (load, load_len); |
3379 | |
3379 | |
3380 | map_base = mmap (0, load_len + save_len + 16, PROT_EXEC | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |
3380 | map_base = mmap (0, load_len + save_len + 16, PROT_EXEC | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |
3381 | |
3381 | |
3382 | assert (("Coro: unable mmap jit code page, cannot continue.", map_base != (char *)MAP_FAILED)); |
3382 | assert (("Coro: unable to mmap jit code page, cannot continue.", map_base != (char *)MAP_FAILED)); |
3383 | |
3383 | |
3384 | load_perl_slots = (load_save_perl_slots_type)map_base; |
3384 | load_perl_slots = (load_save_perl_slots_type)map_base; |
3385 | memcpy (map_base, load_ptr, load_len); |
3385 | memcpy (map_base, load_ptr, load_len); |
3386 | |
3386 | |
3387 | map_base += (load_len + 15) & ~15; |
3387 | map_base += (load_len + 15) & ~15; |