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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout