xref: /openbsd-src/regress/sys/uvm/mmap_fixed/mmap_fixed.c (revision 91f110e064cd7c194e59e019b83bb7496c1c84d4)
1 /*	$OpenBSD: mmap_fixed.c,v 1.1.1.1 2006/04/06 20:39:03 kurt Exp $	*/
2 
3 /*
4  * Public domain. 2006, Kurt Miller <kurt@intricatesoftware.com>
5  */
6 
7 #include <sys/types.h>
8 #include <sys/mman.h>
9 #include <err.h>
10 
11 #define MEM_SIZE        1024*1024
12 
13 /*
14  * Repetitively call mmap with MMAP_FIXED on the same region of memory
15  * to ensure process datasize is properly calculated.
16  */
17 
18 int
19 main(void)
20 {
21 	void *mem_area;
22 	int i;
23 
24 	mem_area = mmap(0, MEM_SIZE, PROT_NONE, MAP_ANON, -1, 0);
25 
26 	for (i = 0; i < 20000; i++) {
27 		if (mmap(mem_area, MEM_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
28 		    MAP_ANON|MAP_FIXED, -1, 0) == MAP_FAILED)
29 			err(1, NULL);
30 	}
31 
32 	return (0);
33 }
34