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