1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>bus_for_each_drv</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-subsys-find-device-by-id.html" title="subsys_find_device_by_id"><link rel="next" href="API-bus-rescan-devices.html" title="bus_rescan_devices"></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">bus_for_each_drv</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-subsys-find-device-by-id.html">Prev</a> </td><th width="60%" align="center">Device Drivers Base</th><td width="20%" align="right"> <a accesskey="n" href="API-bus-rescan-devices.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-bus-for-each-drv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bus_for_each_drv — 2 driver iterator 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">bus_for_each_drv </b>(</code></td><td>struct bus_type * <var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>struct device_driver * <var class="pdparam">start</var>, </td></tr><tr><td> </td><td>void * <var class="pdparam">data</var>, </td></tr><tr><td> </td><td>int (*<var class="pdparam">fn</var>) 4 <code>(</code>struct device_driver *, void *<code>)</code><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1110052900"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>bus</code></em></span></dt><dd><p> 5 bus we're dealing with. 6 </p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p> 7 driver to start iterating on. 8 </p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p> 9 data to pass to the callback. 10 </p></dd><dt><span class="term"><em class="parameter"><code>fn</code></em></span></dt><dd><p> 11 function to call for each driver. 12 </p></dd></dl></div></div><div class="refsect1"><a name="idp1110057588"></a><h2>Description</h2><p> 13 This is nearly identical to the device iterator above. 14 We iterate over each driver that belongs to <em class="parameter"><code>bus</code></em>, and call 15 <em class="parameter"><code>fn</code></em> for each. If <em class="parameter"><code>fn</code></em> returns anything but 0, we break out 16 and return it. If <em class="parameter"><code>start</code></em> is not NULL, we use it as the head 17 of the list. 18</p></div><div class="refsect1"><a name="idp1110059796"></a><h2>NOTE</h2><p> 19 we don't return the driver that returns a non-zero 20 value, nor do we leave the reference count incremented for that 21 driver. If the caller needs to know that info, it must set it 22 in the callback. It must also be sure to increment the refcount 23 so it doesn't disappear before returning to the caller. 24</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-subsys-find-device-by-id.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-bus-rescan-devices.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">subsys_find_device_by_id</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">bus_rescan_devices</span></td></tr></table></div></body></html> 25