diff options
Diffstat (limited to 'static/freebsd/man4/ppi.4 4.html')
| -rw-r--r-- | static/freebsd/man4/ppi.4 4.html | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/static/freebsd/man4/ppi.4 4.html b/static/freebsd/man4/ppi.4 4.html new file mode 100644 index 00000000..ed868513 --- /dev/null +++ b/static/freebsd/man4/ppi.4 4.html @@ -0,0 +1,111 @@ +<table class="head"> + <tr> + <td class="head-ltitle">PPI(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">PPI(4)</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">ppi</code> — <span class="Nd">user-space + interface to ppbus parallel 'geek' port</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp"><code class="Cd">device ppi</code></p> +<p class="Pp">Minor numbering: unit numbers correspond directly to ppbus + numbers.</p> +<p class="Pp"> + <br/> + <code class="In">#include <<a class="In">dev/ppbus/ppi.h</a>></code> + <br/> + <code class="In">#include + <<a class="In">dev/ppbus/ppbconf.h</a>></code></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">ppi</code> driver provides a convenient means + for user applications to manipulate the state of the parallel port, enabling + easy low-speed I/O operations without the security problems inherent with + the use of the <span class="Pa">/dev/io</span> interface.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="PROGRAMMING_INTERFACE"><a class="permalink" href="#PROGRAMMING_INTERFACE">PROGRAMMING + INTERFACE</a></h1> +<p class="Pp">All I/O on the <code class="Nm">ppi</code> interface is performed + using + <a class="permalink" href="#ioctl"><code class="Fn" id="ioctl">ioctl</code></a>() + calls. Each command takes a single <var class="Ft">uint8_t</var> argument, + transferring one byte of data. The following commands are available:</p> +<dl class="Bl-tag"> + <dt id="PPIGDATA"><a class="permalink" href="#PPIGDATA"><code class="Dv">PPIGDATA</code></a>, + <code class="Dv">PPISDATA</code></dt> + <dd>Get and set the contents of the data register.</dd> + <dt id="PPIGSTATUS"><a class="permalink" href="#PPIGSTATUS"><code class="Dv">PPIGSTATUS</code></a>, + <code class="Dv">PPISSTATUS</code></dt> + <dd>Get and set the contents of the status register.</dd> + <dt id="PPIGCTRL"><a class="permalink" href="#PPIGCTRL"><code class="Dv">PPIGCTRL</code></a>, + <code class="Dv">PPISCTRL</code></dt> + <dd>Get and set the contents of the control register. The following defines + correspond to bits in this register. Setting a bit in the control register + drives the corresponding output low. + <dl class="Bl-tag Bl-compact"> + <dt id="STROBE"><a class="permalink" href="#STROBE"><code class="Dv">STROBE</code></a></dt> + <dd style="width: auto;"> </dd> + <dt id="AUTOFEED"><a class="permalink" href="#AUTOFEED"><code class="Dv">AUTOFEED</code></a></dt> + <dd style="width: auto;"> </dd> + <dt id="nINIT"><a class="permalink" href="#nINIT"><code class="Dv">nINIT</code></a></dt> + <dd style="width: auto;"> </dd> + <dt id="SELECTIN"><a class="permalink" href="#SELECTIN"><code class="Dv">SELECTIN</code></a></dt> + <dd style="width: auto;"> </dd> + <dt id="PCD"><a class="permalink" href="#PCD"><code class="Dv">PCD</code></a></dt> + <dd style="width: auto;"> </dd> + </dl> + </dd> + <dt id="PPIGEPP"><a class="permalink" href="#PPIGEPP"><code class="Dv">PPIGEPP</code></a>, + <code class="Dv">PPISEPP</code></dt> + <dd>Get and set the contents of the EPP control register.</dd> + <dt id="PPIGECR"><a class="permalink" href="#PPIGECR"><code class="Dv">PPIGECR</code></a>, + <code class="Dv">PPISECR</code></dt> + <dd>Get and set the contents of the ECP control register.</dd> + <dt id="PPIGFIFO"><a class="permalink" href="#PPIGFIFO"><code class="Dv">PPIGFIFO</code></a>, + <code class="Dv">PPISFIFO</code></dt> + <dd>Read and write the ECP FIFO (8-bit operations only).</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1> +<p class="Pp">To present the value 0x5a to the data port, drive STROBE low and + then high again, the following code fragment can be used:</p> +<div class="Bd Li"> +<pre> + int fd; + uint8_t val; + + val = 0x5a; + ioctl(fd, PPISDATA, &val); + ioctl(fd, PPIGCTRL, &val); + val |= STROBE; + ioctl(fd, PPISCTRL, &val); + val &= ~STROBE; + ioctl(fd, PPISCTRL, &val); + +</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> +<p class="Pp">The inverse sense of signals is confusing.</p> +<p class="Pp">The <code class="Fn">ioctl</code>() interface is slow, and there + is no way (yet) to chain multiple operations together.</p> +<p class="Pp">The headers required for user applications are not installed as + part of the standard system.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">January 2, 1998</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
