Document vm_page_aflag_set(9), vm_page_aflag_clear(9) and vm_page_reference(9).
Retire vm_page_flag_set() and vm_page_flag_clear() functions. Reviewed by: alc Approved by: re (bz)
This commit is contained in:
parent
a9d505a22a
commit
0edd8a1458
@ -38,6 +38,10 @@
|
||||
# xargs -n1 | sort | uniq -d;
|
||||
# done
|
||||
|
||||
# 20110831: atomic page flags operations
|
||||
OLD_FILES+=usr/share/man/man9/vm_page_flag.9.gz
|
||||
OLD_FILES+=usr/share/man/man9/vm_page_flag_clear.9.gz
|
||||
OLD_FILES+=usr/share/man/man9/vm_page_flag_set.9.gz
|
||||
# 20110828: library version bump for 9.0
|
||||
OLD_LIBS+=lib/libcam.so.5
|
||||
OLD_LIBS+=lib/libpcap.so.7
|
||||
|
@ -320,7 +320,7 @@ MAN= accept_filter.9 \
|
||||
vm_page_cache.9 \
|
||||
vm_page_deactivate.9 \
|
||||
vm_page_dontneed.9 \
|
||||
vm_page_flag.9 \
|
||||
vm_page_aflag.9 \
|
||||
vm_page_free.9 \
|
||||
vm_page_grab.9 \
|
||||
vm_page_hold.9 \
|
||||
@ -1372,8 +1372,9 @@ MLINKS+=vm_page_bits.9 vm_page_clear_dirty.9 \
|
||||
vm_page_bits.9 vm_page_test_dirty.9 \
|
||||
vm_page_bits.9 vm_page_undirty.9 \
|
||||
vm_page_bits.9 vm_page_zero_invalid.9
|
||||
MLINKS+=vm_page_flag.9 vm_page_flag_clear.9 \
|
||||
vm_page_flag.9 vm_page_flag_set.9
|
||||
MLINKS+=vm_page_aflag.9 vm_page_aflag_clear.9 \
|
||||
vm_page_aflag.9 vm_page_aflag_set.9 \
|
||||
vm_page_aflag.9 vm_page_reference.9
|
||||
MLINKS+=vm_page_free.9 vm_page_free_toq.9 \
|
||||
vm_page_free.9 vm_page_free_zero.9 \
|
||||
vm_page_free.9 vm_page_try_to_free.9
|
||||
|
@ -26,36 +26,75 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 14, 2001
|
||||
.Dd August 31, 2011
|
||||
.Dt VM_PAGE_FLAG 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vm_page_flag_clear , vm_page_flag_set
|
||||
.Nd "change page flags"
|
||||
.Nm vm_page_aflag_clear , vm_page_aflag_set , vm_page_reference
|
||||
.Nd "change page atomic flags"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In vm/vm.h
|
||||
.In vm/vm_page.h
|
||||
.Ft void
|
||||
.Fn vm_page_flag_clear "vm_page_t m" "unsigned short bits"
|
||||
.Fn vm_page_aflag_clear "vm_page_t m" "uint8_t bits"
|
||||
.Ft void
|
||||
.Fn vm_page_flag_set "vm_page_t m" "unsigned short bits"
|
||||
.Fn vm_page_aflag_set "vm_page_t m" "uint8_t bits"
|
||||
.Ft void
|
||||
.Fn vm_page_reference "vm_page_t m"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn vm_page_flag_clear
|
||||
atomically clears the specified bits on the page's flags.
|
||||
.Fn vm_page_aflag_clear
|
||||
atomically clears the specified bits on the page's
|
||||
.Va aflags .
|
||||
.Pp
|
||||
The
|
||||
.Fn vm_page_flag_set
|
||||
atomically sets the specified bits on the page's flags.
|
||||
.Fn vm_page_aflag_set
|
||||
atomically sets the specified bits on the page's
|
||||
.Va aflags .
|
||||
.Pp
|
||||
The
|
||||
.Fn vm_page_reference m
|
||||
call is the same as
|
||||
.Bd -literal -offset indent
|
||||
vm_page_aflag_set(m, PGA_REFERENCED);
|
||||
.Ed
|
||||
.Lp
|
||||
and is the recommended way to mark the page as referenced from
|
||||
third-party kernel modules.
|
||||
.Pp
|
||||
These functions neither block nor require any locks to be held
|
||||
around the calls for correctness.
|
||||
.Pp
|
||||
The functions arguments are:
|
||||
.Bl -tag -width ".Fa bits"
|
||||
.It Fa m
|
||||
The page whose flags are updated.
|
||||
The page whose
|
||||
.Va aflags
|
||||
are updated.
|
||||
.It Fa bits
|
||||
The bits that are set or cleared on the page's flags.
|
||||
.El
|
||||
.Pp
|
||||
The following
|
||||
.Va aflags
|
||||
can be set or cleared:
|
||||
.Bl -tag -width ".Fa PGA_REFERENCED"
|
||||
.It Fa PGA_REFERENCED
|
||||
The bit may be set to indicate that the page has been recently accessed.
|
||||
For instance,
|
||||
.Xr pmap 9
|
||||
sets this bit to reflect the accessed attribute of the page mapping
|
||||
typically updated by processor's memory management unit on the page access.
|
||||
.It Fa PGA_WRITEABLE
|
||||
A writeable mapping for the page may exist.
|
||||
.El
|
||||
.Pp
|
||||
Both
|
||||
.Dv PGA_REFERENCED
|
||||
and
|
||||
.Dv PGA_WRITEABLE
|
||||
bits are only valid for the managed pages.
|
||||
.Sh AUTHORS
|
||||
This manual page was written by
|
||||
.An Chad David Aq davidc@acns.ab.ca .
|
Loading…
x
Reference in New Issue
Block a user