Reorganize UFP_* flags with markup and more detail.
This commit is contained in:
parent
0e9029ef91
commit
d06a75e7df
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user