<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>parport_register_port</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="ch03.html" title="Chapter 3. Parallel Port Devices" /><link rel="prev" href="re287.html" title="parport_put_port" /><link rel="next" href="re289.html" title="parport_announce_port" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>parport_register_port</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re287.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Parallel Port Devices</th><td width="20%" align="right"> <a accesskey="n" href="re289.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="parport_register_port"><a id="API-parport-register-port"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>parport_register_port — register a parallel port </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">struct parport * <b class="fsfunc">parport_register_port </b>(</code></td><td>unsigned long <var class="pdparam">base</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">irq</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">dma</var>, </td></tr><tr><td> </td><td>struct parport_operations * <var class="pdparam">ops</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Arguments"><a id="id2635965"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>base</code></em></span></dt><dd><p> base I/O address </p></dd><dt><span class="term"><em class="parameter"><code>irq</code></em></span></dt><dd><p> IRQ line </p></dd><dt><span class="term"><em class="parameter"><code>dma</code></em></span></dt><dd><p> DMA channel </p></dd><dt><span class="term"><em class="parameter"><code>ops</code></em></span></dt><dd><p> pointer to the port driver's port operations structure </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2636043"></a><h2>Description</h2><p> When a parallel port (lowlevel) driver finds a port that should be made available to parallel port device drivers, it should call <code class="function">parport_register_port</code>. The <em class="parameter"><code>base</code></em>, <em class="parameter"><code>irq</code></em>, and <em class="parameter"><code>dma</code></em> parameters are for the convenience of port drivers, and for ports where they aren't meaningful needn't be set to anything special. They can be altered afterwards by adjusting the relevant members of the parport structure that is returned and represents the port. They should not be tampered with after calling parport_announce_port, however. </p><p> If there are parallel port device drivers in the system that have registered themselves using <code class="function">parport_register_driver</code>, they are not told about the port at this time; that is done by <code class="function">parport_announce_port</code>. </p><p> The <em class="parameter"><code>ops</code></em> structure is allocated by the caller, and must not be deallocated before calling <code class="function">parport_remove_port</code>. </p><p> If there is no memory to allocate a new parport structure, this function will return <code class="constant">NULL</code>. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re287.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re289.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>parport_put_port</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>parport_announce_port</span></td></tr></table></div></body></html>