121642577SAlfred Perlstein.\" 221642577SAlfred Perlstein.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved. 3*00cf6892SKonstantin Belousov.\" Copyright (c) 2013 The FreeBSD Foundation 4*00cf6892SKonstantin Belousov.\" 5*00cf6892SKonstantin Belousov.\" Portions of this documentation were written by Konstantin Belousov 6*00cf6892SKonstantin Belousov.\" under sponsorship from the FreeBSD Foundation. 721642577SAlfred Perlstein.\" 821642577SAlfred Perlstein.\" Redistribution and use in source and binary forms, with or without 921642577SAlfred Perlstein.\" modification, are permitted provided that the following conditions 1021642577SAlfred Perlstein.\" are met: 1121642577SAlfred Perlstein.\" 1. Redistributions of source code must retain the above copyright 1221642577SAlfred Perlstein.\" notice(s), this list of conditions and the following disclaimer as 1321642577SAlfred Perlstein.\" the first lines of this file unmodified other than the possible 1421642577SAlfred Perlstein.\" addition of one or more copyright notices. 1521642577SAlfred Perlstein.\" 2. Redistributions in binary form must reproduce the above copyright 1621642577SAlfred Perlstein.\" notice(s), this list of conditions and the following disclaimer in the 1721642577SAlfred Perlstein.\" documentation and/or other materials provided with the distribution. 1821642577SAlfred Perlstein.\" 1921642577SAlfred Perlstein.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY 2021642577SAlfred Perlstein.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2121642577SAlfred Perlstein.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2221642577SAlfred Perlstein.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY 2321642577SAlfred Perlstein.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2421642577SAlfred Perlstein.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2521642577SAlfred Perlstein.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 2621642577SAlfred Perlstein.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2721642577SAlfred Perlstein.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2821642577SAlfred Perlstein.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 2921642577SAlfred Perlstein.\" DAMAGE. 3021642577SAlfred Perlstein.\" 3121642577SAlfred Perlstein.\" $FreeBSD$ 3221642577SAlfred Perlstein.\" 33*00cf6892SKonstantin Belousov.Dd August 23, 2013 3421642577SAlfred Perlstein.Dt VM_PAGE_GRAB 9 3521642577SAlfred Perlstein.Os 3621642577SAlfred Perlstein.Sh NAME 3721642577SAlfred Perlstein.Nm vm_page_grab 3821642577SAlfred Perlstein.Nd "returns a page from an object" 3921642577SAlfred Perlstein.Sh SYNOPSIS 4021642577SAlfred Perlstein.In sys/param.h 4121642577SAlfred Perlstein.In vm/vm.h 4221642577SAlfred Perlstein.In vm/vm_page.h 4321642577SAlfred Perlstein.Ft vm_page_t 4421642577SAlfred Perlstein.Fn vm_page_grab "vm_object_t object" "vm_pindex_t pindex" "int allocflags" 4521642577SAlfred Perlstein.Sh DESCRIPTION 4621642577SAlfred PerlsteinThe 4721642577SAlfred Perlstein.Fn vm_page_grab 4821642577SAlfred Perlsteinfunction returns the page at 4921642577SAlfred Perlstein.Fa pindex 5021642577SAlfred Perlsteinfrom the given object. 511f620c2eSRuslan ErmilovIf the page exists and is busy, 5221642577SAlfred Perlstein.Fn vm_page_grab 5321642577SAlfred Perlsteinwill sleep while waiting for it. 541f620c2eSRuslan ErmilovIf the page does not exist, it is allocated. 55*00cf6892SKonstantin BelousovThe function sleeps until the allocation request can be satisfied. 5621642577SAlfred Perlstein.Pp 57*00cf6892SKonstantin BelousovThe function requires the 58*00cf6892SKonstantin Belousov.Fa object 59*00cf6892SKonstantin Belousovto be locked on entry, and returns with the object locked. 60*00cf6892SKonstantin BelousovIf the 6121642577SAlfred Perlstein.Fn vm_page_grab 62*00cf6892SKonstantin Belousovfunction sleeps for any reason, the object lock is temporary dropped. 63*00cf6892SKonstantin Belousov.Pp 64*00cf6892SKonstantin BelousovThe 65*00cf6892SKonstantin Belousov.Fn vm_page_grab 66*00cf6892SKonstantin Belousovsupports all of the flags supported by 67*00cf6892SKonstantin Belousov.Xr vm_page_alloc . 68*00cf6892SKonstantin BelousovIn addition, 69*00cf6892SKonstantin Belousov.Fn vm_page_grab 70*00cf6892SKonstantin Belousovsupports the following flags: 71*00cf6892SKonstantin Belousov.Bl -tag -width ".Dv VM_ALLOC_IGN_SBUSY" 72*00cf6892SKonstantin Belousov.It Dv VM_ALLOC_IGN_SBUSY 73*00cf6892SKonstantin BelousovWhen waiting for the busy state of the existing page to drain, 74*00cf6892SKonstantin Belousovonly test for exclusive busy; ignore the shared busy counter. 75*00cf6892SKonstantin Belousov.El 76*00cf6892SKonstantin Belousov.Sh RETURN VALUES 77*00cf6892SKonstantin BelousovThe 78*00cf6892SKonstantin Belousov.Fn vm_page_grab 79*00cf6892SKonstantin Belousovalways returns the page. 8021642577SAlfred Perlstein.Sh SEE ALSO 8121642577SAlfred Perlstein.Xr vm_page_alloc 9 8221642577SAlfred Perlstein.Sh AUTHORS 83571dba6eSHiten PandyaThis manual page was written by 8421642577SAlfred Perlstein.An Chad David Aq davidc@acns.ab.ca . 85