1bd5e5d2dSVenkatesh Srinivas.\" 2bd5e5d2dSVenkatesh Srinivas.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved. 3bd5e5d2dSVenkatesh Srinivas.\" 4bd5e5d2dSVenkatesh Srinivas.\" Redistribution and use in source and binary forms, with or without 5bd5e5d2dSVenkatesh Srinivas.\" modification, are permitted provided that the following conditions 6bd5e5d2dSVenkatesh Srinivas.\" are met: 7bd5e5d2dSVenkatesh Srinivas.\" 1. Redistributions of source code must retain the above copyright 8bd5e5d2dSVenkatesh Srinivas.\" notice(s), this list of conditions and the following disclaimer as 9bd5e5d2dSVenkatesh Srinivas.\" the first lines of this file unmodified other than the possible 10bd5e5d2dSVenkatesh Srinivas.\" addition of one or more copyright notices. 11bd5e5d2dSVenkatesh Srinivas.\" 2. Redistributions in binary form must reproduce the above copyright 12bd5e5d2dSVenkatesh Srinivas.\" notice(s), this list of conditions and the following disclaimer in the 13bd5e5d2dSVenkatesh Srinivas.\" documentation and/or other materials provided with the distribution. 14bd5e5d2dSVenkatesh Srinivas.\" 15bd5e5d2dSVenkatesh Srinivas.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY 16bd5e5d2dSVenkatesh Srinivas.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17bd5e5d2dSVenkatesh Srinivas.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18bd5e5d2dSVenkatesh Srinivas.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY 19bd5e5d2dSVenkatesh Srinivas.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20bd5e5d2dSVenkatesh Srinivas.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21bd5e5d2dSVenkatesh Srinivas.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 22bd5e5d2dSVenkatesh Srinivas.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23bd5e5d2dSVenkatesh Srinivas.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24bd5e5d2dSVenkatesh Srinivas.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 25bd5e5d2dSVenkatesh Srinivas.\" DAMAGE. 26bd5e5d2dSVenkatesh Srinivas.\" 27bd5e5d2dSVenkatesh Srinivas.\" $FreeBSD: src/share/man/man9/vm_page_alloc.9,v 1.6 2005/06/28 20:15:18 hmp Exp $ 28bd5e5d2dSVenkatesh Srinivas.\" 29*4235e936SSascha Wildner.Dd May 20, 2018 30bd5e5d2dSVenkatesh Srinivas.Dt VM_PAGE_ALLOC 9 31bd5e5d2dSVenkatesh Srinivas.Os 32bd5e5d2dSVenkatesh Srinivas.Sh NAME 33bd5e5d2dSVenkatesh Srinivas.Nm vm_page_alloc 34bd5e5d2dSVenkatesh Srinivas.Nd "allocate a page for a" 35bd5e5d2dSVenkatesh Srinivas.Vt vm_object 36bd5e5d2dSVenkatesh Srinivas.Sh SYNOPSIS 37bd5e5d2dSVenkatesh Srinivas.In sys/param.h 38bd5e5d2dSVenkatesh Srinivas.In vm/vm.h 39bd5e5d2dSVenkatesh Srinivas.In vm/vm_page.h 40bd5e5d2dSVenkatesh Srinivas.Ft vm_page_t 41bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc "vm_object_t object" "vm_pindex_t pindex" "int page_req" 42bd5e5d2dSVenkatesh Srinivas.Sh DESCRIPTION 43bd5e5d2dSVenkatesh SrinivasThe 44bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc 45bd5e5d2dSVenkatesh Srinivasfunction allocates a page at 46bd5e5d2dSVenkatesh Srinivas.Fa pindex 47bd5e5d2dSVenkatesh Srinivaswithin 48bd5e5d2dSVenkatesh Srinivas.Fa object . 49bd5e5d2dSVenkatesh SrinivasIt is assumed that a page has not already been allocated at 50bd5e5d2dSVenkatesh Srinivas.Fa pindex . 51bd5e5d2dSVenkatesh SrinivasThe page returned is inserted into the object, but is not inserted 522192e32eSSascha Wildnerinto the pmap. 532192e32eSSascha WildnerThe vm_object must be locked on entry. 54bd5e5d2dSVenkatesh Srinivas.Pp 55bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc 56bd5e5d2dSVenkatesh Srinivaswill not block. 57bd5e5d2dSVenkatesh Srinivas.Pp 58bd5e5d2dSVenkatesh SrinivasIts arguments are: 59bd5e5d2dSVenkatesh Srinivas.Bl -tag -width ".Fa page_req" 60bd5e5d2dSVenkatesh Srinivas.It Fa object 61bd5e5d2dSVenkatesh SrinivasThe VM object to allocate the page for. 62bd5e5d2dSVenkatesh Srinivas.It Fa pindex 63bd5e5d2dSVenkatesh SrinivasThe index into the object at which the page should be inserted. 64bd5e5d2dSVenkatesh Srinivas.It Fa page_req 65bd5e5d2dSVenkatesh SrinivasA flag indicating how the page should be allocated. 66bd5e5d2dSVenkatesh Srinivas.Bl -tag -width ".Dv VM_ALLOC_INTERRUPT" 67bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_NORMAL 68bd5e5d2dSVenkatesh SrinivasThe page should be allocated with no special treatment. 69bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_QUICK 70bd5e5d2dSVenkatesh SrinivasThe page should only be allocated from the free queue. 71bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_SYSTEM 72bd5e5d2dSVenkatesh SrinivasThe page can be allocated if the cache queue is empty and the free 73bd5e5d2dSVenkatesh Srinivaspage count is above the interrupt reserved water mark. 74bd5e5d2dSVenkatesh SrinivasIf 75bd5e5d2dSVenkatesh Srinivas.Dv VM_ALLOC_INTERRUPT 76bd5e5d2dSVenkatesh Srinivasis set, the page can be allocated as long as the free page count is 77bd5e5d2dSVenkatesh Srinivasgreater than zero. 78bd5e5d2dSVenkatesh SrinivasThis flag should be used only when the system really needs the page. 79bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_INTERRUPT 80bd5e5d2dSVenkatesh Srinivas.Fn vm_page_alloc 81bd5e5d2dSVenkatesh Srinivasis being called during an interrupt and therefore the cache cannot 82bd5e5d2dSVenkatesh Srinivasbe accessed. 83bd5e5d2dSVenkatesh SrinivasThe page will only be returned successfully if the free count is greater 84bd5e5d2dSVenkatesh Srinivasthan zero. 85bd5e5d2dSVenkatesh Srinivas.It Dv VM_ALLOC_ZERO 86bd5e5d2dSVenkatesh SrinivasIndicate a preference for a pre-zeroed page. 87bd5e5d2dSVenkatesh SrinivasThere is no guarantee that the page thus returned will be zeroed, but 88bd5e5d2dSVenkatesh Srinivasit will be marked as such. 89bd5e5d2dSVenkatesh Srinivas.El 90bd5e5d2dSVenkatesh Srinivas.El 91bd5e5d2dSVenkatesh Srinivas.Sh RETURN VALUES 92bd5e5d2dSVenkatesh SrinivasThe 93bd5e5d2dSVenkatesh Srinivas.Vt vm_page_t 94bd5e5d2dSVenkatesh Srinivasthat was allocated is returned if successful; otherwise, 95bd5e5d2dSVenkatesh Srinivas.Dv NULL 962192e32eSSascha Wildneris returned. 97*4235e936SSascha WildnerThe returned page will be marked busy. 98bd5e5d2dSVenkatesh Srinivas.Sh AUTHORS 99bd5e5d2dSVenkatesh SrinivasThis manual page was written by 100c616d378SFranco Fichtner.An Chad David Aq Mt davidc@acns.ab.ca . 101