summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_map.c
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2000-02-28 04:10:35 +0000
committerps <ps@FreeBSD.org>2000-02-28 04:10:35 +0000
commitc3800346ab46195181630945b2f40e1fee7853d0 (patch)
treec1fe153aebcc58e892bd5d2eea0b026feb20e562 /sys/vm/vm_map.c
parent1e4770cd942238b5157e2b25cd92594590c69b9d (diff)
downloadFreeBSD-src-c3800346ab46195181630945b2f40e1fee7853d0.zip
FreeBSD-src-c3800346ab46195181630945b2f40e1fee7853d0.tar.gz
Add MAP_NOCORE to mmap(2), and MADV_NOCORE and MADV_CORE to madvise(2).
This This feature allows you to specify if mmap'd data is included in an application's corefile. Change the type of eflags in struct vm_map_entry from u_char to vm_eflags_t (an unsigned int). Reviewed by: dillon,jdp,alfred Approved by: jkh
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r--sys/vm/vm_map.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 7acaa51..835ed15 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -427,7 +427,7 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset,
vm_map_entry_t new_entry;
vm_map_entry_t prev_entry;
vm_map_entry_t temp_entry;
- u_char protoeflags;
+ vm_eflags_t protoeflags;
/*
* Check that the start and end points are not bogus.
@@ -468,6 +468,8 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset,
}
if (cow & MAP_DISABLE_SYNCER)
protoeflags |= MAP_ENTRY_NOSYNC;
+ if (cow & MAP_DISABLE_COREDUMP)
+ protoeflags |= MAP_ENTRY_NOCOREDUMP;
if (object) {
/*
@@ -1039,6 +1041,8 @@ vm_map_madvise(map, start, end, behav)
case MADV_RANDOM:
case MADV_NOSYNC:
case MADV_AUTOSYNC:
+ case MADV_NOCORE:
+ case MADV_CORE:
modify_map = 1;
vm_map_lock(map);
break;
@@ -1096,6 +1100,12 @@ vm_map_madvise(map, start, end, behav)
case MADV_AUTOSYNC:
current->eflags &= ~MAP_ENTRY_NOSYNC;
break;
+ case MADV_NOCORE:
+ current->eflags |= MAP_ENTRY_NOCOREDUMP;
+ break;
+ case MADV_CORE:
+ current->eflags &= ~MAP_ENTRY_NOCOREDUMP;
+ break;
default:
break;
}
OpenPOWER on IntegriCloud