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