xref: /openbsd-src/regress/sys/uvm/mmap_fixed/mmap_fixed.c (revision 38f718e5b60da5e425d01fc6376e87fe19c08fbf)
1 /*	$OpenBSD: mmap_fixed.c,v 1.3 2016/08/27 04:35:19 guenther 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 #include <stdio.h>
11 
12 #define MEM_SIZE        1024*1024
13 
14 /*
15  * Repetitively call mmap with MMAP_FIXED on the same region of memory
16  * to ensure process datasize is properly calculated.
17  */
18 
19 int
main(void)20 main(void)
21 {
22 	void *mem_area;
23 	int i;
24 
25 	mem_area = mmap(0, MEM_SIZE, PROT_NONE, MAP_ANON, -1, 0);
26 
27 	for (i = 0; i < 20000; i++) {
28 		if (mmap(mem_area, MEM_SIZE, PROT_READ|PROT_WRITE,
29 		    MAP_ANON|MAP_FIXED, -1, 0) == MAP_FAILED)
30 			err(1, NULL);
31 	}
32 
33 	return (0);
34 }
35