1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>kobject_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="ch01s08.html" title="Kernel objects manipulation"><link rel="prev" href="API-kobject-init.html" title="kobject_init"><link rel="next" href="API-kobject-init-and-add.html" title="kobject_init_and_add"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">kobject_add</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kobject-init.html">Prev</a>&#160;</td><th width="60%" align="center">Kernel objects manipulation</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-kobject-init-and-add.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kobject-add"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kobject_add &#8212; 
2     the main kobject add function
3 </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 <b class="fsfunc">kobject_add </b>(</code></td><td>struct kobject * <var class="pdparam">kobj</var>, </td></tr><tr><td>&#160;</td><td>struct kobject * <var class="pdparam">parent</var>, </td></tr><tr><td>&#160;</td><td>const char * <var class="pdparam">fmt</var>, </td></tr><tr><td>&#160;</td><td> <var class="pdparam">...</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1108211028"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>kobj</code></em></span></dt><dd><p>
4     the kobject to add
5    </p></dd><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p>
6     pointer to the parent of the kobject.
7    </p></dd><dt><span class="term"><em class="parameter"><code>fmt</code></em></span></dt><dd><p>
8     format to name the kobject with.
9    </p></dd><dt><span class="term"><em class="parameter"><code>...</code></em></span></dt><dd><p>
10     variable arguments
11    </p></dd></dl></div></div><div class="refsect1"><a name="idp1108215708"></a><h2>Description</h2><p>
12   The kobject name is set and added to the kobject hierarchy in this
13   function.
14   </p><p>
15
16   If <em class="parameter"><code>parent</code></em> is set, then the parent of the <em class="parameter"><code>kobj</code></em> will be set to it.
17   If <em class="parameter"><code>parent</code></em> is NULL, then the parent of the <em class="parameter"><code>kobj</code></em> will be set to the
18   kobject associated with the kset assigned to this kobject.  If no kset
19   is assigned to the kobject, then the kobject will be located in the
20   root of the sysfs tree.
21   </p><p>
22
23   If this function returns an error, <code class="function">kobject_put</code> must be called to
24   properly clean up the memory associated with the object.
25   Under no instance should the kobject that is passed to this function
26   be directly freed with a call to <code class="function">kfree</code>, that can leak memory.
27   </p><p>
28
29   Note, no <span class="quote">&#8220;<span class="quote">add</span>&#8221;</span> uevent will be created with this call, the caller should set
30   up all of the necessary sysfs files for the object and then call
31   <code class="function">kobject_uevent</code> with the UEVENT_ADD parameter to ensure that
32   userspace is properly notified of this kobject's creation.
33</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kobject-init.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s08.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-kobject-init-and-add.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">kobject_init</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">kobject_init_and_add</span></td></tr></table></div></body></html>
34