17d216f0fSBruce M Simpson.\" 27d216f0fSBruce M Simpson.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org> 37d216f0fSBruce M Simpson.\" All rights reserved. 47d216f0fSBruce M Simpson.\" 57d216f0fSBruce M Simpson.\" Redistribution and use in source and binary forms, with or without 67d216f0fSBruce M Simpson.\" modification, are permitted provided that the following conditions 77d216f0fSBruce M Simpson.\" are met: 87d216f0fSBruce M Simpson.\" 1. Redistributions of source code must retain the above copyright 97d216f0fSBruce M Simpson.\" notice, this list of conditions and the following disclaimer. 107d216f0fSBruce M Simpson.\" 2. Redistributions in binary form must reproduce the above copyright 117d216f0fSBruce M Simpson.\" notice, this list of conditions and the following disclaimer in the 127d216f0fSBruce M Simpson.\" documentation and/or other materials provided with the distribution. 137d216f0fSBruce M Simpson.\" 147d216f0fSBruce M Simpson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 157d216f0fSBruce M Simpson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 167d216f0fSBruce M Simpson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 177d216f0fSBruce M Simpson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 187d216f0fSBruce M Simpson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 197d216f0fSBruce M Simpson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 207d216f0fSBruce M Simpson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 217d216f0fSBruce M Simpson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 227d216f0fSBruce M Simpson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 237d216f0fSBruce M Simpson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 247d216f0fSBruce M Simpson.\" SUCH DAMAGE. 257d216f0fSBruce M Simpson.\" 267d216f0fSBruce M Simpson.Dd July 19, 2003 27a970c85cSRuslan Ermilov.Dt VM_MAP_LOCK 9 28b4ca3754SRuslan Ermilov.Os 297d216f0fSBruce M Simpson.Sh NAME 307d216f0fSBruce M Simpson.Nm vm_map_lock , 317d216f0fSBruce M Simpson.Nm vm_map_unlock , 327d216f0fSBruce M Simpson.Nm vm_map_lock_read , 337d216f0fSBruce M Simpson.Nm vm_map_unlock_read , 347d216f0fSBruce M Simpson.Nm vm_map_trylock , 357d216f0fSBruce M Simpson.Nm vm_map_trylock_read , 367d216f0fSBruce M Simpson.Nm vm_map_lock_upgrade , 377d216f0fSBruce M Simpson.Nm vm_map_lock_downgrade 387d216f0fSBruce M Simpson.Nd vm_map locking macros 397d216f0fSBruce M Simpson.Sh SYNOPSIS 407d216f0fSBruce M Simpson.In sys/param.h 417d216f0fSBruce M Simpson.In vm/vm.h 427d216f0fSBruce M Simpson.In vm/vm_map.h 437d216f0fSBruce M Simpson.Ft void 447d216f0fSBruce M Simpson.Fn vm_map_lock "vm_map_t map" 457d216f0fSBruce M Simpson.Ft void 467d216f0fSBruce M Simpson.Fn vm_map_unlock "vm_map_t map" 477d216f0fSBruce M Simpson.Ft void 487d216f0fSBruce M Simpson.Fn vm_map_lock_read "vm_map_t map" 497d216f0fSBruce M Simpson.Ft void 507d216f0fSBruce M Simpson.Fn vm_map_unlock_read "vm_map_t map" 517d216f0fSBruce M Simpson.Ft int 527d216f0fSBruce M Simpson.Fn vm_map_trylock "vm_map_t map" 537d216f0fSBruce M Simpson.Ft int 547d216f0fSBruce M Simpson.Fn vm_map_trylock_read "vm_map_t map" 557d216f0fSBruce M Simpson.Ft int 567d216f0fSBruce M Simpson.Fn vm_map_lock_upgrade "vm_map_t map" 577d216f0fSBruce M Simpson.Ft int 587d216f0fSBruce M Simpson.Fn vm_map_lock_downgrade "vm_map_t map" 597d216f0fSBruce M Simpson.Sh DESCRIPTION 607d216f0fSBruce M SimpsonThe 617d216f0fSBruce M Simpson.Fn vm_map_lock 627d216f0fSBruce M Simpsonmacro obtains an exclusive lock on 637d216f0fSBruce M Simpson.Fa map . 647d216f0fSBruce M Simpson.Pp 657d216f0fSBruce M SimpsonThe 667d216f0fSBruce M Simpson.Fn vm_map_unlock 677d216f0fSBruce M Simpsonmacro releases an exclusive lock on 687d216f0fSBruce M Simpson.Fa map . 697d216f0fSBruce M Simpson.Pp 707d216f0fSBruce M SimpsonThe 717d216f0fSBruce M Simpson.Fn vm_map_lock_read 727d216f0fSBruce M Simpsonmacro obtains a read-lock on 737d216f0fSBruce M Simpson.Fa map . 747d216f0fSBruce M Simpson.Pp 757d216f0fSBruce M SimpsonThe 767d216f0fSBruce M Simpson.Fn vm_map_unlock_read 777d216f0fSBruce M Simpsonmacro releases a read-lock on 787d216f0fSBruce M Simpson.Fa map . 797d216f0fSBruce M Simpson.Pp 807d216f0fSBruce M SimpsonThe 817d216f0fSBruce M Simpson.Fn vm_map_trylock 827d216f0fSBruce M Simpsonmacro attempts to obtain an exclusive lock on 837d216f0fSBruce M Simpson.Fa map . 847d216f0fSBruce M SimpsonIt returns FALSE if the lock cannot be immediately acquired; 857d216f0fSBruce M Simpsonotherwise return TRUE with the lock acquired. 867d216f0fSBruce M Simpson.Pp 877d216f0fSBruce M SimpsonThe 887d216f0fSBruce M Simpson.Fn vm_map_trylock_read 897d216f0fSBruce M Simpsonmacro attempts to obtain a read-lock on 907d216f0fSBruce M Simpson.Fa map . 917d216f0fSBruce M SimpsonIt returns FALSE if the lock cannot be immediately acquired; 927d216f0fSBruce M Simpsonotherwise return TRUE with the lock acquired. 937d216f0fSBruce M Simpson.Pp 947d216f0fSBruce M SimpsonThe 957d216f0fSBruce M Simpson.Fn vm_map_lock_upgrade 967d216f0fSBruce M Simpsonmacro attempts to atomically upgrade a read-lock on 977d216f0fSBruce M Simpson.Fa map 987d216f0fSBruce M Simpsonto an exclusive lock. 997d216f0fSBruce M Simpson.Pp 1007d216f0fSBruce M SimpsonThe 1017d216f0fSBruce M Simpson.Fn vm_map_lock_downgrade 1027d216f0fSBruce M Simpsonmacro attempts to downgrade an exclusive lock on 1037d216f0fSBruce M Simpson.Fa map 1047d216f0fSBruce M Simpsonto a read-lock. 1057d216f0fSBruce M Simpson.Sh IMPLEMENTATION NOTES 1067d216f0fSBruce M SimpsonCurrently, all of the locking macros implement their locks as sleep locks. 1077d216f0fSBruce M Simpson.Sh SEE ALSO 1087d216f0fSBruce M Simpson.Xr vm_map 9 1097d216f0fSBruce M Simpson.Sh AUTHORS 110571dba6eSHiten PandyaThis manual page was written by 111*8a7314fcSBaptiste Daroussin.An Bruce M Simpson Aq Mt bms@spc.org . 112