table of contents
VM_PAGE_FREE(9) | Kernel Developer's Manual | VM_PAGE_FREE(9) |
NAME¶
vm_page_free, vm_page_free_toq, vm_page_free_zero, vm_page_try_to_free — free a pageSYNOPSIS¶
#include <sys/param.h>#include <vm/vm.h>
#include <vm/vm_page.h> void
vm_page_free(vm_page_t m); void
vm_page_free_toq(vm_page_t m); void
vm_page_free_zero(vm_page_t m); int
vm_page_try_to_free(vm_page_t m);
DESCRIPTION¶
The vm_page_free_toq() function moves a page into the free queue, and disassociates it from its object. If the page is held, wired, already free, or its busy count is not zero, the system will panic. If thePG_ZERO
flag is set on the page, it is placed at the
end of the free queue; otherwise, it is placed at the front.
If the page's object is of type OBJT_VNODE
and it is the
last page associated with the object, the underlying vnode may be freed.
The vm_page_free() and vm_page_free_zero()
functions both call vm_page_free_toq() to actually free the
page, but vm_page_free_zero() sets the
PG_ZERO
flag and vm_page_free()
clears the PG_ZERO
flag prior to the call to
vm_page_free_toq().
The vm_page_try_to_free() function verifies that the page is
not held, wired, busy or dirty, and if so, marks the page as busy, drops any
protection that may be set on the page, and frees it.
RETURN VALUES¶
vm_page_try_to_free() returns 1 if it is able to free the page; otherwise, 0 is returned.SEE ALSO¶
vm_page_busy(9), vm_page_hold(9), vm_page_wire(9)AUTHORS¶
This manual page was written by Chad David ⟨davidc@acns.ab.ca⟩.July 24, 2001 | Debian |