#include <inttypes.h>
#include <sys/resource.h>
#include <sys/mman.h>
int
main(void)
{
void*addr=(void*)0x20000000;
mmap(addr,0x1000000,PROT_READ|PROT_WRITE,MAP_ANONYMOUS,-1,0);
struct rlimit rlim;
rlim.rlim_cur=rlim.rlim_max=1;
setrlimit(RLIMIT_MEMLOCK,&rlim);
mlockall(MCL_FUTURE);
mprotect((void*)((intptr_t)addr+0x00ffb000),0x4000,PROT_NONE);
mprotect((void*)((intptr_t)addr+0x00ffb000),0x2000,PROT_READ);
mprotect((void*)((intptr_t)addr+0x00ffa000),0x4000,PROT_WRITE);
*((char *)((intptr_t)addr+0x0ffa000)) = 0x42;
return 0;
}