vm_page_free(9)
NAME
- vm_page_free, vm_page_free_toq, vm_page_free_zero,
- vm_page_try_to_free free a page
SYNOPSIS
#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 the
PG_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@ac
- ns.ab.ca>.
- BSD July 24, 2001