#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);

	return 0;
}