Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 1a595394b241504ff370a8d12ebfcea7 > files > 770

kernel-doc-3.11.10-100.fc18.noarch.rpm

<?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>device_add</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="ch02s02.html" title="Device Drivers Base" /><link rel="prev" href="API-dev-set-name.html" title="dev_set_name" /><link rel="next" href="API-device-register.html" title="device_register" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">device_add</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-dev-set-name.html">Prev</a>&#160;</td><th width="60%" align="center">Device Drivers Base</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-device-register.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="API-device-add"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>device_add &#8212; 
     add device to device hierarchy.
 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <strong class="fsfunc">device_add </strong>(</code></td><td>struct device * <var class="pdparam">dev</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a id="idm140404964959840"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
     device.
    </p></dd></dl></div></div><div class="refsect1"><a id="idm140404964956688"></a><h2>Description</h2><p>
   This is part 2 of <code class="function">device_register</code>, though may be called
   separately _iff_ <code class="function">device_initialize</code> has been called separately.
   </p><p>

   This adds <em class="parameter"><code>dev</code></em> to the kobject hierarchy via <code class="function">kobject_add</code>, adds it
   to the global and sibling lists for the device, then
   adds it to the other relevant subsystems of the driver model.
   </p><p>

   Do not call this routine or <code class="function">device_register</code> more than once for
   any device structure.  The driver model core is not designed to work
   with devices that get unregistered and then spring back to life.
   (Among other things, it's very hard to guarantee that all references
   to the previous incarnation of <em class="parameter"><code>dev</code></em> have been dropped.)  Allocate
   and register a fresh new struct device instead.
</p></div><div class="refsect1"><a id="idm140404964950128"></a><h2>NOTE</h2><p>
   _Never_ directly free <em class="parameter"><code>dev</code></em> after calling this function, even
   if it returned an error! Always use <code class="function">put_device</code> to give up your
   reference instead.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-dev-set-name.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch02s02.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-device-register.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">dev_set_name</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">device_register</span></td></tr></table></div></body></html>