summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ppi.4 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ppi.4 4.html')
-rw-r--r--static/freebsd/man4/ppi.4 4.html111
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> &#x2014; <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 &lt;<a class="In">dev/ppbus/ppi.h</a>&gt;</code>
+ <br/>
+ <code class="In">#include
+ &lt;<a class="In">dev/ppbus/ppbconf.h</a>&gt;</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;">&#x00A0;</dd>
+ <dt id="AUTOFEED"><a class="permalink" href="#AUTOFEED"><code class="Dv">AUTOFEED</code></a></dt>
+ <dd style="width: auto;">&#x00A0;</dd>
+ <dt id="nINIT"><a class="permalink" href="#nINIT"><code class="Dv">nINIT</code></a></dt>
+ <dd style="width: auto;">&#x00A0;</dd>
+ <dt id="SELECTIN"><a class="permalink" href="#SELECTIN"><code class="Dv">SELECTIN</code></a></dt>
+ <dd style="width: auto;">&#x00A0;</dd>
+ <dt id="PCD"><a class="permalink" href="#PCD"><code class="Dv">PCD</code></a></dt>
+ <dd style="width: auto;">&#x00A0;</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, &amp;val);
+ ioctl(fd, PPIGCTRL, &amp;val);
+ val |= STROBE;
+ ioctl(fd, PPISCTRL, &amp;val);
+ val &amp;= ~STROBE;
+ ioctl(fd, PPISCTRL, &amp;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>