diff --git a/share/man/man9/physio.9 b/share/man/man9/physio.9 index 6d6645951126..2d0ba873ccab 100644 --- a/share/man/man9/physio.9 +++ b/share/man/man9/physio.9 @@ -1,4 +1,4 @@ -.\" $NetBSD: physio.9,v 1.10 2008/04/30 13:10:58 martin Exp $ +.\" $NetBSD: physio.9,v 1.11 2010/04/13 10:06:43 jruoho Exp $ .\" .\" Copyright (c) 1996 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 15, 1996 +.Dd April 13, 2010 .Dt PHYSIO 9 .Os .Sh NAME @@ -47,7 +47,9 @@ The .Fn physio is a helper function typically called from character device read and write -routines to start I/O on a user process buffer. +routines to start +.Tn I/O +on a user process buffer. It calls back on the provided .Fa strategy routine one or more times to complete the transfer described by @@ -57,18 +59,21 @@ The maximum amount of data to transfer with each call to is determined by the .Fa minphys routine. +.Pp Since .Fa uio normally describes user space addresses, .Fn physio needs to lock the appropriate data area into memory before each transaction with -.Fa strategy ( see +.Fa strategy +(see .Xr uvm_vslock 9 and .Xr uvm_vsunlock 9 ) . +The .Fn physio -always awaits the completion of the entire requested transfer before +function always awaits the completion of the entire requested transfer before returning, unless an error condition is detected earlier. In all cases, the buffer passed in .Fa bp @@ -77,10 +82,11 @@ is locked (marked as for the duration of the entire transfer. .Pp A break-down of the arguments follows: -.Bl -tag -width indent +.Bl -tag -width "strategy " .It Fa strategy The device strategy routine to call for each chunk of data to initiate -device I/O. +device +.Tn I/O . .It Fa bp The buffer to use with the strategy routine. The buffer flags will have