Modernize description of physio. Make explicit that this creates a

request that's passed to the driver's strategy.
This commit is contained in:
Warner Losh 2004-07-10 01:10:17 +00:00
parent 64e6e863ac
commit cd4d01d8a0

View File

@ -36,7 +36,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd June 15, 1996
.Dd July 8, 2004
.Dt PHYSIO 9
.Os
.Sh NAME
@ -60,15 +60,22 @@ routines to start I/O on a user process buffer.
The maximum amount of data to transfer with each call
is determined by
.Fa dev->si_iosize_max .
The
.Fn physio
call converts the I/O request into a
.Fn strategy
request and passes the new request to the driver's
.Fn strategy
routine for processing.
.Pp
Since
.Fa uio
normally describes user space addresses,
.Fn physio
needs to lock the process into memory.
This is done by setting the
.Dv P_PHYSIO
flag on the process.
needs to lock the those pages into memory.
This is done by calling
.Fn vmapbuf
for the appropriate pages.
.Fn physio
always awaits the completion of the entire requested transfer before
returning, unless an error condition is detected earlier.
@ -86,6 +93,13 @@ structure with the
set to anything other than
.Dv UIO_USERSPACE
are undefined.
.It Fa ioflag
The ioflag argument from the
.Fn read
or
.Fn write
function calling
.Fn physio .
.El
.Sh RETURN VALUES
If successful