
#include <stdio.h>
#include <sys/mman.h>
#include <unistd.h>   

int main()
{
    // mlockall(MCL_FUTURE);
    void *addr = mmap(NULL, 4096*3, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0);
    if(addr==MAP_FAILED){
	perror("mmap failed: ");
	return -1;
    }

    printf("%p\n", addr);
    
    *(unsigned long*)addr = 0xdeadbeef;
    *(unsigned long*)(addr+4097) = 0xdeadbeef;
    *(unsigned long*)(addr+4097*2) = 0xdeadbeef;
    
    void *addr1 = mmap(NULL, 4096*3, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0);
    if(addr1==MAP_FAILED){
	perror("mmap failed: ");
	return -1;
    }
    
    printf("%p\n", addr1);
    
    sleep(10); // so we can catch and stop it
    
    return 0;
}
