FreeBSD manual
download PDF document: vm_page_grab.9.pdf
VM_PAGE_GRAB(9) FreeBSD Kernel Developer's Manual VM_PAGE_GRAB(9)
NAME
vm_page_grab - returns a page from an object
SYNOPSIS
#include <sys/param.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
vm_page_t
vm_page_grab(vm_object_t object, vm_pindex_t pindex, int allocflags);
DESCRIPTION
The vm_page_grab() function returns the page at pindex from the given
object. If the page exists and is busy, vm_page_grab() will sleep while
waiting for it. If the page does not exist, it is allocated. The
function sleeps until the allocation request can be satisfied.
The function requires the object to be locked on entry, and returns with
the object locked. If the vm_page_grab() function sleeps for any reason,
the object lock is temporary dropped.
The vm_page_grab() supports all of the flags supported by
vm_page_alloc(9). In addition, vm_page_grab() supports the following
flags:
VM_ALLOC_IGN_SBUSY When waiting for the busy state of the existing page
to drain, only test for exclusive busy; ignore the
shared busy counter.
RETURN VALUES
The vm_page_grab() always returns the page.
SEE ALSO
vm_page_alloc(9)
AUTHORS
This manual page was written by Chad David <davidc@acns.ab.ca>.
FreeBSD 14.0-RELEASE-p11 August 23, 2013 FreeBSD 14.0-RELEASE-p11