From c3800346ab46195181630945b2f40e1fee7853d0 Mon Sep 17 00:00:00 2001 From: ps Date: Mon, 28 Feb 2000 04:10:35 +0000 Subject: 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 --- sys/vm/vm_map.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sys/vm/vm_map.c') 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; } -- cgit v1.1