vm_page_alloc(9)
NAME
vm_page_alloc - allocate a page for a vm_object
SYNOPSIS
#include <sys/param.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
vm_page_t
vm_page_alloc(vm_object_t object, vm_pindex_t pindex, int
page_req);
DESCRIPTION
- The vm_page_alloc() function allocates a page at pindex
- within object.
It is assumed that a page has not already been allocated at - pindex. The
page returned is inserted into the object, but is not in - serted into the
pmap. - vm_page_alloc() will not block.
- Its arguments are:
- object The VM object to allocate the page for.
- pindex The index into the object at which the page
- should be
- inserted.
- page_req A flag indicating how the page should be allo
- cated.
VM_ALLOC_NORMAL The page should be al- located with
no special treatment.
- VM_ALLOC_SYSTEM The page can be allo
- cated if the
- cache queue is empty
- and the free
page count is above - the interrupt
reserved water mark. - If
VM_ALLOC_INTERRUPT is - set, the page
can be allocated as - long as the
free page count is - greater than
zero. This flag - should be used
only when the system - really needs
the page. - VM_ALLOC_INTERRUPT vm_page_alloc() is be
- ing called
- during an interrupt
- and therefore
the cache cannot be - accessed. The
page will only be re - turned successfully if the free
- count is greater
than zero. - VM_ALLOC_ZERO Indicate a preference
- for a pre
- zeroed page. There is
- no guarantee
that the page thus re - turned will be
zeroed, but it will be - marked as
such. - VM_ALLOC_NOOBJ The page is associated
- with an
- unmanaged memory re
- gion, that is,
there is no backing VM - object.
This is typically used - to allocate
pages within the ker - nel virtual
address space.
RETURN VALUES
- The vm_page_t that was allocated is returned if successful;
- otherwise,
NULL is returned.
NOTES
- The pager process is always upgraded to VM_ALLOC_SYSTEM un
- less
VM_ALLOC_INTERRUPT is set.
AUTHORS
- This manual page was written by Chad David <davidc@ac
- ns.ab.ca>.
- BSD July 13, 2001