The
vm_page_alloc ();
function allocates a page at
Fa pindex
within
Fa object .
It is assumed that a page has not already been allocated at
Fa pindex .
The page returned is inserted into the object, but is not inserted
into the pmap.
vm_page_alloc ();
will not block.
Its arguments are:
Fa object
The VM object to allocate the page for.
Fa pindex
The index into the object at which the page should be inserted.
Fa page_req
A flag indicating how the page should be allocated.
VM_ALLOC_NORMAL
The page should be allocated with no special treatment.
VM_ALLOC_SYSTEM
The page can be allocated 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 being called during an interrupt and therefore the cache cannot
be accessed.
The page will only be returned 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 returned will be zeroed, but
it will be marked as such.
VM_ALLOC_NOOBJ
The page is associated with an unmanaged memory region, that is, there
is no backing VM object.
This is typically used to allocate pages within the kernel virtual
address space.
RETURN VALUES
The
Vt 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
unless
VM_ALLOC_INTERRUPT
is set.
AUTHORS
This manual page was written by
An Chad David Aq davidc@acns.ab.ca .