Provided by: freebsd-manpages_11.1-3_all bug

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@acns.ab.ca>.