sys_mman: adding madvise.
This commit is contained in:
+4
-2
@@ -12,11 +12,13 @@ int main() {
|
||||
puts("Mapping 1 page of memory...");
|
||||
char *map1 = mmap((void *) 0x200000000, (size_t) page_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE, -1, 0);
|
||||
puts("Mapping 3 pages of memory...");
|
||||
char *map2 = mmap(map1 + page_size, (size_t) page_size * 3, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE, -1, 0);
|
||||
char *map2 = mmap(map1 + page_size, (size_t) page_size * 4, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED_NOREPLACE, -1, 0);
|
||||
|
||||
ERROR_IF(mmap, map1, == MAP_FAILED);
|
||||
ERROR_IF(mmap, map2, == MAP_FAILED);
|
||||
|
||||
(void)madvise(map1 + page_size + 3, page_size, PROT_NONE);
|
||||
|
||||
puts("Randomizing mapping #1");
|
||||
for (int i = 0; i < page_size; ++i) {
|
||||
map1[i] = (char) (rand() & 0xFF);
|
||||
@@ -43,7 +45,7 @@ int main() {
|
||||
// map2[page_size] = 0;
|
||||
|
||||
puts("Unmapping it all at once!");
|
||||
munmap(map1, (size_t) page_size * 4);
|
||||
munmap(map1, (size_t) page_size * 5);
|
||||
|
||||
// Page fault:
|
||||
// *map2 = 0;
|
||||
|
||||
Reference in New Issue
Block a user