SS_SIZE
return (void *)syscall(__NR_map_shadow_stack, addr, SS_SIZE, SHADOW_STACK_SET_TOKEN);
return mmap(addr, SS_SIZE, PROT_READ | PROT_WRITE,
munmap(shstk, SS_SIZE);
return madvise(shstk, SS_SIZE, MADV_DONTNEED);
try_shstk((unsigned long)shstk + SS_SIZE - 8);
if (mprotect(shstk_ptr, SS_SIZE, PROT_READ) < 0) {
if (mprotect(shstk_ptr, SS_SIZE, PROT_READ) < 0) {
if (mprotect(shstk_ptr, SS_SIZE, PROT_WRITE | PROT_READ) < 0) {
free_area = mmap(0, SS_SIZE * 3, PROT_READ | PROT_WRITE,
munmap(free_area, SS_SIZE * 3);
shstk = create_shstk(free_area + SS_SIZE);