aboutsummaryrefslogtreecommitdiff
path: root/vm/vm_map.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2021-01-04 01:53:01 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-01-04 03:29:09 +0100
commitd7278d1176391dc717293111042c3fcb56e6ca85 (patch)
treef9e2be107b876c59a46cd9d965cf0571e95713b0 /vm/vm_map.h
parentae7bdaf9ed238500aaa91080126fff356e5e2800 (diff)
downloadgnumach-d7278d1176391dc717293111042c3fcb56e6ca85.tar.gz
gnumach-d7278d1176391dc717293111042c3fcb56e6ca85.tar.bz2
gnumach-d7278d1176391dc717293111042c3fcb56e6ca85.zip
vm_map: Avoid linking gaps for vm_copy_t
This does not make sense, and produces incorrect results (since vme_end is 0, etc.) * vm/vm_map.h (_vm_map_clip_start, _vm_map_clip_end): Add link_gap parameter. * vm/vm_map.c (_vm_map_entry_link): Add link_gap parameter, do not call vm_map_gap_insert if it is 0. (vm_map_entry_link): Set link_gap to 1 in _vm_map_entry_link call. (_vm_map_clip_start): Add link_gap parameter, pass it to _vm_map_entry_link call.. (vm_map_clip_start): Set link_gap_to 1 in _vm_map_clip_start call. (vm_map_copy_entry_link): Set link_gap to 0 in _vm_map_entry_link call. (vm_map_copy_clip_start): Set link_gap_to 0 in _vm_map_clip_start call. (_vm_map_entry_unlink): Add unlink_gap parameter, do not call vm_map_gap_remove if it is 0. (vm_map_entry_unlink): Set unlink_gap to 1 in _vm_map_entry_unlink call. (_vm_map_clip_end): Add link_gap parameter, pass it to _vm_map_entry_link call.. (vm_map_clip_end): Set link_gap_to 1 in _vm_map_clip_end call. (vm_map_copy_entry_unlink): Set unlink_gap to 0 in _vm_map_entry_unlink call. (vm_map_copy_clip_end): Set link_gap_to 0 in _vm_map_clip_end call. * vm/vm_kern.c (projected_buffer_deallocate): set link_gap to 1 in _vm_map_clip_start and _vm_map_clip_end calls.
Diffstat (limited to 'vm/vm_map.h')
-rw-r--r--vm/vm_map.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/vm/vm_map.h b/vm/vm_map.h
index 2561ec44..57bdf651 100644
--- a/vm/vm_map.h
+++ b/vm/vm_map.h
@@ -560,7 +560,8 @@ extern kern_return_t vm_map_submap(
extern void _vm_map_clip_start(
struct vm_map_header *map_header,
vm_map_entry_t entry,
- vm_offset_t start);
+ vm_offset_t start,
+ boolean_t link_gap);
/*
* vm_map_clip_end: [ internal use only ]
@@ -572,6 +573,7 @@ extern void _vm_map_clip_start(
void _vm_map_clip_end(
struct vm_map_header *map_header,
vm_map_entry_t entry,
- vm_offset_t end);
+ vm_offset_t end,
+ boolean_t link_gap);
#endif /* _VM_VM_MAP_H_ */