00001 /* Verifies that overlapping memory mappings are disallowed. */ 00002 00003 #include <syscall.h> 00004 #include "tests/vm/sample.inc" 00005 #include "tests/lib.h" 00006 #include "tests/main.h" 00007 00008 void 00009 test_main (void) 00010 { 00011 char *start = (char *) 0x10000000; 00012 int fd[2]; 00013 00014 CHECK ((fd[0] = open ("zeros")) > 1, "open \"zeros\" once"); 00015 CHECK (mmap (fd[0], start) != MAP_FAILED, "mmap \"zeros\""); 00016 CHECK ((fd[1] = open ("zeros")) > 1 && fd[0] != fd[1], 00017 "open \"zeros\" again"); 00018 CHECK (mmap (fd[1], start + 4096) == MAP_FAILED, 00019 "try to mmap \"zeros\" again"); 00020 }