lock_init => lockinit
[unix-history] / usr / src / sys / vm / vm_map.c
index 22a2230..b2daa99 100644 (file)
@@ -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);
+       lockinit(&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);
+                   lockmgr(&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);
+               lockmgr(&share_map->lock, LK_DOWNGRADE, (void *)0, LOCKPID);
        }
 
        /*
        }
 
        /*