Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 380

kernel-doc-2.6.32-71.14.1.el6.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_schedule_callback_owner</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="ch02.html#id2617423" title="Device Drivers Base" /><link rel="prev" href="re179.html" title="device_remove_bin_file" /><link rel="next" href="re181.html" title="device_initialize" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>device_schedule_callback_owner</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re179.html">Prev</a>&#160;</td><th width="60%" align="center">Device Drivers Base</th><td width="20%" align="right">&#160;<a accesskey="n" href="re181.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="device_schedule_callback_owner"><a id="API-device-schedule-callback-owner"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>device_schedule_callback_owner &#8212; 
     helper to schedule a callback for a device
 </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">int <b class="fsfunc">device_schedule_callback_owner </b>(</code></td><td>struct device * <var class="pdparam">dev</var>, </td></tr><tr><td>&#160;</td><td>void (*<var class="pdparam">func</var>)
     <code>(</code>struct device *<code>)</code>, </td></tr><tr><td>&#160;</td><td>struct module * <var class="pdparam">owner</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1" title="Arguments"><a id="id2619651"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>dev</code></em></span></dt><dd><p>
     device.
    </p></dd><dt><span class="term"><em class="parameter"><code>func</code></em></span></dt><dd><p>
     callback function to invoke later.
    </p></dd><dt><span class="term"><em class="parameter"><code>owner</code></em></span></dt><dd><p>
     module owning the callback routine
    </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2619712"></a><h2>Description</h2><p>
   Attribute methods must not unregister themselves or their parent device
   (which would amount to the same thing).  Attempts to do so will deadlock,
   since unregistration is mutually exclusive with driver callbacks.
   </p><p>

   Instead methods can call this routine, which will attempt to allocate
   and schedule a workqueue request to call back <em class="parameter"><code>func</code></em> with <em class="parameter"><code>dev</code></em> as its
   argument in the workqueue's process context.  <em class="parameter"><code>dev</code></em> will be pinned until
   <em class="parameter"><code>func</code></em> returns.
   </p><p>

   This routine is usually called via the inline <code class="function">device_schedule_callback</code>,
   which automatically sets <em class="parameter"><code>owner</code></em> to THIS_MODULE.
   </p><p>

   Returns 0 if the request was submitted, -ENOMEM if storage could not
   be allocated, -ENODEV if a reference to <em class="parameter"><code>owner</code></em> isn't available.
</p></div><div class="refsect1" title="NOTE"><a id="id2619781"></a><h2>NOTE</h2><p>
   This routine won't work if CONFIG_SYSFS isn't set!  It uses an
   underlying sysfs routine (since it is intended for use by attribute
   methods), and if sysfs isn't available you'll get nothing but -ENOSYS.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re179.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html#id2617423">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="re181.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>device_remove_bin_file</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>device_initialize</span></td></tr></table></div></body></html>