1*d2a70789SRichard Lowe #include <sys/mman.h>
2*d2a70789SRichard Lowe 
3*d2a70789SRichard Lowe #include <stdlib.h>
4*d2a70789SRichard Lowe #include <unistd.h>
5*d2a70789SRichard Lowe #include <err.h>
6*d2a70789SRichard Lowe 
7*d2a70789SRichard Lowe int
main(int argc,char ** argv)8*d2a70789SRichard Lowe main(int argc, char **argv)
9*d2a70789SRichard Lowe {
10*d2a70789SRichard Lowe 	int stack = 0;
11*d2a70789SRichard Lowe 	void *heap = NULL;
12*d2a70789SRichard Lowe 	void *mapping = NULL;
13*d2a70789SRichard Lowe 
14*d2a70789SRichard Lowe 	if ((heap = malloc(10)) == NULL)
15*d2a70789SRichard Lowe 		err(1, "couldn't allocate");
16*d2a70789SRichard Lowe 
17*d2a70789SRichard Lowe 	if ((mapping = mmap((caddr_t)0, 10, (PROT_READ | PROT_WRITE),
18*d2a70789SRichard Lowe 	    MAP_ANON|MAP_PRIVATE, -1, 0)) == (void*)-1)
19*d2a70789SRichard Lowe 		err(1, "couldn't map");
20*d2a70789SRichard Lowe 
21*d2a70789SRichard Lowe 	printf("  stack: 0x%p\n", &stack);
22*d2a70789SRichard Lowe 	printf("   heap: 0x%p\n", heap);
23*d2a70789SRichard Lowe 	printf("mapping: 0x%p\n", mapping);
24*d2a70789SRichard Lowe 	printf("   text: 0x%p\n", &main);
25*d2a70789SRichard Lowe 	return (0);
26*d2a70789SRichard Lowe }
27