1.\" 2.\" Copyright (c) 2003 Bruce M Simpson <bms@spc.org> 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.Dd July 21, 2003 27.Dt PMAP_EXTRACT 9 28.Os 29.Sh NAME 30.Nm pmap_extract , 31.Nm pmap_extract_and_hold 32.Nd map a virtual address to a physical page 33.Sh SYNOPSIS 34.In sys/param.h 35.In vm/vm.h 36.In vm/pmap.h 37.Ft vm_paddr_t 38.Fn pmap_extract "pmap_t pmap" "vm_offset_t va" 39.Ft vm_page_t 40.Fn pmap_extract_and_hold "pmap_t pmap" "vm_offset_t va" "vm_prot_t prot" 41.Sh DESCRIPTION 42The 43.Fn pmap_extract 44function maps a virtual address to a physical page. 45In certain situations, callers may use 46.Fn pmap_extract_and_hold 47instead, to ensure that the returned page is held. 48.Pp 49The 50.Fn pmap_extract_and_hold 51function maps a virtual address to a physical page, and atomically holds 52the returned page for use by the caller, only if the mapping permits 53the given page protection. 54.Sh IMPLEMENTATION NOTES 55Currently, the page protection requested by the caller is not verified. 56.Sh RETURN VALUES 57The 58.Fn pmap_extract 59function will return the physical page address associated with the 60virtual address 61.Fa va 62inside the physical map 63.Fa pmap . 64If the mapping does not exist, or if the 65.Fa pmap 66parameter is 67.Dv NULL , 68then 69.Dv NULL 70will be returned. 71.Pp 72The 73.Fn pmap_extract_and_hold 74function will return the 75.Ft vm_page_t 76associated with the 77virtual address 78.Fa va 79inside the physical map 80.Fa pmap . 81If the mapping does not exist, the result is a no-op, and 82.Dv NULL 83will 84be returned. 85.Sh SEE ALSO 86.Xr mutex 9 , 87.Xr pmap 9 88.Sh AUTHORS 89.An -nosplit 90The 91.Fn pmap_extract_and_hold 92function was implemented by 93.An Alan L. Cox Aq Mt alc@imimic.com . 94This manual page was written by 95.An Bruce M Simpson Aq Mt bms@spc.org . 96