projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lock_init => lockinit
[unix-history]
/
usr
/
src
/
sys
/
vm
/
vm_map.c
diff --git
a/usr/src/sys/vm/vm_map.c
b/usr/src/sys/vm/vm_map.c
index
22a2230
..
b2daa99
100644
(file)
--- a/
usr/src/sys/vm/vm_map.c
+++ b/
usr/src/sys/vm/vm_map.c
@@
-7,7
+7,7
@@
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)vm_map.c 8.
5
(Berkeley) %G%
+ * @(#)vm_map.c 8.
7
(Berkeley) %G%
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
@@
-46,7
+46,6
@@
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
-#include <vm/vm_object.h>
/*
* Virtual memory maps provide for the mapping, protection,
/*
* Virtual memory maps provide for the mapping, protection,
@@
-238,7
+237,7
@@
vm_map_init(map, min, max, pageable)
map->first_free = &map->header;
map->hint = &map->header;
map->timestamp = 0;
map->first_free = &map->header;
map->hint = &map->header;
map->timestamp = 0;
- lock
_init(&map->lock, TRUE
);
+ lock
init(&map->lock, PVM, "thrd_sleep", 0, 0
);
simple_lock_init(&map->ref_lock);
simple_lock_init(&map->hint_lock);
}
simple_lock_init(&map->ref_lock);
simple_lock_init(&map->hint_lock);
}
@@
-1166,7
+1165,7
@@
vm_map_pageable(map, start, end, new_pageable)
* If a region becomes completely unwired,
* unwire its physical pages and mappings.
*/
* If a region becomes completely unwired,
* unwire its physical pages and mappings.
*/
-
lock
_set_recursive(&map->lock);
+
vm_map
_set_recursive(&map->lock);
entry = start_entry;
while ((entry != &map->header) && (entry->start < end)) {
entry = start_entry;
while ((entry != &map->header) && (entry->start < end)) {
@@
-1178,7
+1177,7
@@
vm_map_pageable(map, start, end, new_pageable)
entry = entry->next;
}
entry = entry->next;
}
-
lock
_clear_recursive(&map->lock);
+
vm_map
_clear_recursive(&map->lock);
}
else {
}
else {
@@
-1287,8
+1286,8
@@
vm_map_pageable(map, start, end, new_pageable)
vm_map_unlock(map); /* trust me ... */
}
else {
vm_map_unlock(map); /* trust me ... */
}
else {
-
lock
_set_recursive(&map->lock);
- lock
_write_to_read(&map->lock
);
+
vm_map
_set_recursive(&map->lock);
+ lock
mgr(&map->lock, LK_DOWNGRADE, (void *)0, LOCKPID
);
}
rv = 0;
}
rv = 0;
@@
-1319,7
+1318,7
@@
vm_map_pageable(map, start, end, new_pageable)
vm_map_lock(map);
}
else {
vm_map_lock(map);
}
else {
-
lock
_clear_recursive(&map->lock);
+
vm_map
_clear_recursive(&map->lock);
}
if (rv) {
vm_map_unlock(map);
}
if (rv) {
vm_map_unlock(map);
@@
-1972,7
+1971,7
@@
vm_map_copy(dst_map, src_map,
else {
new_src_map = src_map;
new_src_start = src_entry->start;
else {
new_src_map = src_map;
new_src_start = src_entry->start;
-
lock
_set_recursive(&src_map->lock);
+
vm_map
_set_recursive(&src_map->lock);
}
if (dst_entry->is_a_map) {
}
if (dst_entry->is_a_map) {
@@
-2010,7
+2009,7
@@
vm_map_copy(dst_map, src_map,
else {
new_dst_map = dst_map;
new_dst_start = dst_entry->start;
else {
new_dst_map = dst_map;
new_dst_start = dst_entry->start;
-
lock
_set_recursive(&dst_map->lock);
+
vm_map
_set_recursive(&dst_map->lock);
}
/*
}
/*
@@
-2022,9
+2021,9
@@
vm_map_copy(dst_map, src_map,
FALSE, FALSE);
if (dst_map == new_dst_map)
FALSE, FALSE);
if (dst_map == new_dst_map)
-
lock
_clear_recursive(&dst_map->lock);
+
vm_map
_clear_recursive(&dst_map->lock);
if (src_map == new_src_map)
if (src_map == new_src_map)
-
lock
_clear_recursive(&src_map->lock);
+
vm_map
_clear_recursive(&src_map->lock);
}
/*
}
/*
@@
-2393,7
+2392,8
@@
vm_map_lookup(var_map, vaddr, fault_type, out_entry,
* share map to the new object.
*/
* share map to the new object.
*/
- if (lock_read_to_write(&share_map->lock)) {
+ if (lockmgr(&share_map->lock, LK_EXCLUPGRADE,
+ (void *)0, LOCKPID)) {
if (share_map != map)
vm_map_unlock_read(map);
goto RetryLookup;
if (share_map != map)
vm_map_unlock_read(map);
goto RetryLookup;
@@
-2406,7
+2406,8
@@
vm_map_lookup(var_map, vaddr, fault_type, out_entry,
entry->needs_copy = FALSE;
entry->needs_copy = FALSE;
- lock_write_to_read(&share_map->lock);
+ lockmgr(&share_map->lock, LK_DOWNGRADE,
+ (void *)0, LOCKPID);
}
else {
/*
}
else {
/*
@@
-2423,7
+2424,8
@@
vm_map_lookup(var_map, vaddr, fault_type, out_entry,
*/
if (entry->object.vm_object == NULL) {
*/
if (entry->object.vm_object == NULL) {
- if (lock_read_to_write(&share_map->lock)) {
+ if (lockmgr(&share_map->lock, LK_EXCLUPGRADE,
+ (void *)0, LOCKPID)) {
if (share_map != map)
vm_map_unlock_read(map);
goto RetryLookup;
if (share_map != map)
vm_map_unlock_read(map);
goto RetryLookup;
@@
-2432,7
+2434,7
@@
vm_map_lookup(var_map, vaddr, fault_type, out_entry,
entry->object.vm_object = vm_object_allocate(
(vm_size_t)(entry->end - entry->start));
entry->offset = 0;
entry->object.vm_object = vm_object_allocate(
(vm_size_t)(entry->end - entry->start));
entry->offset = 0;
- lock
_write_to_read(&share_map->lock
);
+ lock
mgr(&share_map->lock, LK_DOWNGRADE, (void *)0, LOCKPID
);
}
/*
}
/*