Reorganize UFP_* flags with markup and more detail.

This commit is contained in:
riastradh 2015-03-23 08:19:12 +00:00
parent 0e9029ef91
commit d06a75e7df

View File

@ -1,4 +1,4 @@
.\" $NetBSD: uvm.9,v 1.109 2015/03/23 08:11:10 wiz Exp $
.\" $NetBSD: uvm.9,v 1.110 2015/03/23 08:19:12 riastradh Exp $
.\"
.\" Copyright (c) 1998 Matthew R. Green
.\" All rights reserved.
@ -459,43 +459,42 @@ must be a vnode object.
The number of pages requested is pointed to by
.Fa npagesp ,
and this value is updated with the actual number of pages returned.
The flags can be
.Bd -literal
#define UFP_ALL 0x00 /* return all pages requested */
#define UFP_NOWAIT 0x01 /* don't sleep */
#define UFP_NOALLOC 0x02 /* don't allocate new pages */
#define UFP_NOCACHE 0x04 /* don't return pages which already exist */
#define UFP_NORDONLY 0x08 /* don't return PG_READONLY pages */
#define UFP_DIRTYONLY 0x10 /* stop at first clean pg, clean dirty pgs */
#define UFP_BACKWARD 0x20 /* find pages in reverse order */
.Ed
The flags can be any bitwise inclusive-or of:
.Pp
.Dv UFP_ALL
is a pseudo-flag meaning all requested pages should be returned.
.Dv UFP_NOWAIT
means that we must not sleep.
.Dv UFP_NOALLOC
causes any pages which do not already exist to be skipped.
.Dv UFP_NOCACHE
causes any pages which do already exist to be skipped.
.Dv UFP_NORDONLY
causes any pages which are marked PG_READONLY to be skipped.
.Dv UFP_DIRTYONLY
causes
.Fn uvn_findpages
to stop early at the first clean page, and as a side effect to mark
each dirty page as clean.
It is the caller's responsibility to write the pages back to permanent
storage before unbusying them.
.Dv UFP_BACKWARD
causes
.Fn uvn_findpages
to traverse the array of pages in reverse order, starting at the end.
.Bl -tag -offset abcd -compact -width UVM_ADV_SEQUENTIAL
.It Dv UFP_ALL
Zero pseudo-flag meaning return all pages.
.It Dv UFP_NOWAIT
Don't sleep -- yield
.Dv NULL
for busy pages or for uncached pages for which allocation would sleep.
.It Dv UFP_NOALLOC
Don't allocate -- yield
.Dv NULL
for uncached pages.
.It Dv UFP_NOCACHE
Don't use cached pages -- yield
.Dv NULL
instead.
.It Dv UFP_NORDONLY
Don't yield read-only pages -- yield
.Dv NULL
for pages marked
.Dv PG_READONLY .
.It Dv UFP_DIRTYONLY
Don't yield clean pages -- stop early at the first clean one.
As a side effect, mark yielded dirty pages clean.
Caller must write them to permanent storage before unbusying.
.It Dv UFP_BACKWARD
Traverse pages in reverse order.
If
.Fn uvn_findpages
returns early in this case, it will have filled
returns early, it will have filled
.Li * Ns Fa npagesp
entries at the end rather than beginning of the page array.
entries at the end of
.Fa pps
rather than the beginning.
.El
.Pp
.Fn uvm_vnp_setsize
sets the size of vnode