aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_map.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2024-12-05 22:44:08 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2024-12-09 03:27:44 +0000
commit6ed68e6f5d47ca30716d4e06c1452e68530970db (patch)
tree05ba3c3d97d965b1ca825a838a863c989efb5794 /sys/vm/vm_map.c
parent30e8252353d95cc77f787ef784942a551d3e0567 (diff)
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r--sys/vm/vm_map.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 910ebfb6dc4e..c3aa499e0dc7 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -292,9 +292,7 @@ vmspace_zinit(void *mem, int size, int flags)
vm = (struct vmspace *)mem;
map = &vm->vm_map;
- memset(map, 0, sizeof(*map));
- mtx_init(&map->system_mtx, "vm map (system)", NULL,
- MTX_DEF | MTX_DUPOK);
+ memset(map, 0, sizeof(*map)); /* set map->system_map = false */
sx_init(&map->lock, "vm map (user)");
PMAP_LOCK_INIT(vmspace_pmap(vm));
return (0);
@@ -890,7 +888,6 @@ _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max)
map->header.eflags = MAP_ENTRY_HEADER;
map->needs_wakeup = FALSE;
- map->system_map = 0;
map->pmap = pmap;
map->header.end = min;
map->header.start = max;
@@ -908,13 +905,20 @@ _vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max)
void
vm_map_init(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max)
{
-
_vm_map_init(map, pmap, min, max);
- mtx_init(&map->system_mtx, "vm map (system)", NULL,
- MTX_DEF | MTX_DUPOK);
+ map->system_map = false;
sx_init(&map->lock, "vm map (user)");
}
+void
+vm_map_init_system(vm_map_t map, pmap_t pmap, vm_offset_t min, vm_offset_t max)
+{
+ _vm_map_init(map, pmap, min, max);
+ map->system_map = true;
+ mtx_init(&map->system_mtx, "vm map (system)", NULL, MTX_DEF |
+ MTX_DUPOK);
+}
+
/*
* vm_map_entry_dispose: [ internal use only ]
*