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 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