diff options
Diffstat (limited to 'static/netbsd/man9/physio.9 3.html')
| -rw-r--r-- | static/netbsd/man9/physio.9 3.html | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/static/netbsd/man9/physio.9 3.html b/static/netbsd/man9/physio.9 3.html deleted file mode 100644 index 6f566d57..00000000 --- a/static/netbsd/man9/physio.9 3.html +++ /dev/null @@ -1,93 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">PHYSIO(9)</td> - <td class="head-vol">Kernel Developer's Manual</td> - <td class="head-rtitle">PHYSIO(9)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">physio</code> — <span class="Nd">initiate - I/O on raw devices</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">physio</code>(<var class="Fa">void (*strategy)(buf_t - *)</var>, <var class="Fa">buf_t *bp</var>, <var class="Fa">dev_t dev</var>, - <var class="Fa">int flags</var>, <var class="Fa">void (*minphys)(buf_t - *)</var>, <var class="Fa">struct uio *uio</var>);</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The - <a class="permalink" href="#physio"><code class="Fn" id="physio">physio</code></a>() - is a helper function typically called from character device read and write - routines to start I/O on a user process buffer. It calls back on the - provided <var class="Fa">strategy</var> routine one or more times to - complete the transfer described by <var class="Fa">uio</var>. The maximum - amount of data to transfer with each call to <var class="Fa">strategy</var> - is determined by the <var class="Fa">minphys</var> routine.</p> -<p class="Pp" id="physio~2">Since <var class="Fa">uio</var> normally describes - user space addresses, - <a class="permalink" href="#physio~2"><code class="Fn">physio</code></a>() - needs to lock the appropriate data area into memory before each transaction - with <var class="Fa">strategy</var> (see <a class="Xr">uvm_vslock(9)</a> and - <a class="Xr">uvm_vsunlock(9)</a>). The <code class="Fn">physio</code>() - 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 <var class="Fa">bp</var> is locked (marked as - “busy”) for the duration of the entire transfer.</p> -<p class="Pp">A break-down of the arguments follows:</p> -<dl class="Bl-tag"> - <dt><var class="Fa">strategy</var></dt> - <dd>The device strategy routine to call for each chunk of data to initiate - device I/O.</dd> - <dt><var class="Fa">bp</var></dt> - <dd>The buffer to use with the strategy routine. The buffer flags will have - <code class="Dv">B_BUSY</code>, <code class="Dv">B_PHYS</code>, and - <code class="Dv">B_RAW</code> set when passed to the strategy routine. If - <code class="Dv">NULL</code>, a buffer is allocated from a system - pool.</dd> - <dt><var class="Fa">dev</var></dt> - <dd>The device number identifying the device to interact with.</dd> - <dt><var class="Fa">flags</var></dt> - <dd>Direction of transfer; the only valid settings are - <code class="Dv">B_READ</code> or <code class="Dv">B_WRITE</code>.</dd> - <dt><var class="Fa">minphys</var></dt> - <dd>A device specific routine called to determine the maximum transfer size - that the device's strategy routine can handle.</dd> - <dt><var class="Fa">uio</var></dt> - <dd>The description of the entire transfer as requested by the user process. - Currently, the results of passing a <var class="Fa">uio</var> structure - with the ‘uio_segflg’ set to anything other than - <code class="Dv">UIO_USERSPACE</code>, are undefined.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN - VALUES</a></h1> -<p class="Pp">If successful <code class="Fn">physio</code>() returns 0. - <code class="Er">EFAULT</code> is returned if the address range described by - <var class="Fa">uio</var> is not accessible by the requesting process. - <code class="Fn">physio</code>() will return any error resulting from calls - to the device strategy routine, by examining the - <code class="Dv">B_ERROR</code> buffer flag and the ‘b_error’ - field. Note that the actual transfer size may be less than requested by - <var class="Fa">uio</var> if the device signals an “end of - file” condition.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">read(2)</a>, <a class="Xr">write(2)</a></p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">September 12, 2019</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
