<!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/xhtml;charset=UTF-8"/> <title>pcsc-lite: hotplug_libhal.c File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_c68a5dfdca54003c765e303a18006edb.html">src</a> </div> </div> <div class="contents"> <h1>hotplug_libhal.c File Reference</h1> <p>This provides a search API for hot pluggble devices using HAL/DBus. <a href="#_details">More...</a></p> <code>#include "config.h"</code><br/> <code>#include <string.h></code><br/> <code>#include <stdio.h></code><br/> <code>#include <dirent.h></code><br/> <code>#include <stdlib.h></code><br/> <code>#include <libhal.h></code><br/> <code>#include "misc.h"</code><br/> <code>#include "<a class="el" href="wintypes_8h_source.html">wintypes.h</a>"</code><br/> <code>#include "<a class="el" href="pcscd_8h_source.html">pcscd.h</a>"</code><br/> <code>#include "<a class="el" href="debuglog_8h_source.html">debuglog.h</a>"</code><br/> <code>#include "<a class="el" href="parser_8h_source.html">parser.h</a>"</code><br/> <code>#include "<a class="el" href="readerfactory_8h_source.html">readerfactory.h</a>"</code><br/> <code>#include "<a class="el" href="sys__generic_8h_source.html">sys_generic.h</a>"</code><br/> <code>#include "<a class="el" href="hotplug_8h_source.html">hotplug.h</a>"</code><br/> <code>#include "<a class="el" href="thread__generic_8h_source.html">thread_generic.h</a>"</code><br/> <code>#include "utils.h"</code><br/> <code>#include "<a class="el" href="strlcpycat_8h_source.html">strlcpycat.h</a>"</code><br/> <div class="dynheader"> Include dependency graph for hotplug_libhal.c:</div> <div class="dynsection"> </div> <p><a href="hotplug__libhal_8c_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__driverTracker.html">_driverTracker</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">keep track of drivers in a dynamically allocated array <a href="struct__driverTracker.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__readerTracker.html">_readerTracker</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">keep track of PCSCLITE_MAX_READERS_CONTEXTS simultaneous readers <a href="struct__readerTracker.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ce8aa50500a72cbe44ca12c82cb51a4"></a><!-- doxytag: member="hotplug_libhal.c::ADD_SERIAL_NUMBER" ref="a1ce8aa50500a72cbe44ca12c82cb51a4" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>ADD_SERIAL_NUMBER</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0be815e2433ac2d8de793b5d917100f9"></a><!-- doxytag: member="hotplug_libhal.c::ADD_INTERFACE_NAME" ref="a0be815e2433ac2d8de793b5d917100f9" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>ADD_INTERFACE_NAME</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa93f0eb578d23995850d61f7d61c55c1"></a><!-- doxytag: member="hotplug_libhal.c::FALSE" ref="aa93f0eb578d23995850d61f7d61c55c1" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>FALSE</b> 0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8cecfc5c5c054d2875c03e77b7be15d"></a><!-- doxytag: member="hotplug_libhal.c::TRUE" ref="aa8cecfc5c5c054d2875c03e77b7be15d" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>TRUE</b> 1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2da03d394f2b67dccde97343f6cc162"></a><!-- doxytag: member="hotplug_libhal.c::UDI_BASE" ref="ac2da03d394f2b67dccde97343f6cc162" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>UDI_BASE</b> "/org/freedesktop/Hal/devices/"</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35ca10c792b1de273a4dd0c9fc4c9889"></a><!-- doxytag: member="hotplug_libhal.c::DRIVER_TRACKER_SIZE_STEP" ref="a35ca10c792b1de273a4dd0c9fc4c9889" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>DRIVER_TRACKER_SIZE_STEP</b> 8</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af36a88faba1a445f973adb840abb0371"></a><!-- doxytag: member="hotplug_libhal.c::LIBUSB_HEADER" ref="af36a88faba1a445f973adb840abb0371" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>LIBUSB_HEADER</b> "/dev/bus/usb/"</td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd3f634d811628542a58601c355ff53e"></a><!-- doxytag: member="hotplug_libhal.c::HPReadBundleValues" ref="abd3f634d811628542a58601c355ff53e" args="(void)" --> static LONG </td><td class="memItemRight" valign="bottom"><b>HPReadBundleValues</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59b643951818b8f10e029c0b90a2a523"></a><!-- doxytag: member="hotplug_libhal.c::HPAddDevice" ref="a59b643951818b8f10e029c0b90a2a523" args="(LibHalContext *ctx, const char *udi)" --> static void </td><td class="memItemRight" valign="bottom"><b>HPAddDevice</b> (LibHalContext *ctx, const char *udi)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a726b0bbe0d7699658e5991804c3f5a31"></a><!-- doxytag: member="hotplug_libhal.c::HPRemoveDevice" ref="a726b0bbe0d7699658e5991804c3f5a31" args="(LibHalContext *ctx, const char *udi)" --> static void </td><td class="memItemRight" valign="bottom"><b>HPRemoveDevice</b> (LibHalContext *ctx, const char *udi)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb8903b69faa88857b3b52e64f1e969f"></a><!-- doxytag: member="hotplug_libhal.c::HPEstablishUSBNotifications" ref="acb8903b69faa88857b3b52e64f1e969f" args="(void)" --> static void </td><td class="memItemRight" valign="bottom"><b>HPEstablishUSBNotifications</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="hotplug__libhal_8c.html#a88581cb043ba3817a336431e3f3e64f8">short_name</a> (const char *udi)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate a short name for a device. <a href="#a88581cb043ba3817a336431e3f3e64f8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af71be06d8c7a20028f7d11c86e7dece8"></a><!-- doxytag: member="hotplug_libhal.c::HPSearchHotPluggables" ref="af71be06d8c7a20028f7d11c86e7dece8" args="(void)" --> LONG </td><td class="memItemRight" valign="bottom"><b>HPSearchHotPluggables</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85cb1fc764ee7cdaae404d522dccaa15"></a><!-- doxytag: member="hotplug_libhal.c::HPStopHotPluggables" ref="a85cb1fc764ee7cdaae404d522dccaa15" args="(void)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="hotplug__libhal_8c.html#a85cb1fc764ee7cdaae404d522dccaa15">HPStopHotPluggables</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stop the hotplug thread. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a863d2c4247d950f1a62245610e0d8fd1"></a><!-- doxytag: member="hotplug_libhal.c::get_driver" ref="a863d2c4247d950f1a62245610e0d8fd1" args="(LibHalContext *ctx, const char *udi)" --> static struct <a class="el" href="struct__driverTracker.html">_driverTracker</a> * </td><td class="memItemRight" valign="bottom"><b>get_driver</b> (LibHalContext *ctx, const char *udi)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5797f9d2e8fcd9794de5a0271e1d7d2"></a><!-- doxytag: member="hotplug_libhal.c::HPRegisterForHotplugEvents" ref="ae5797f9d2e8fcd9794de5a0271e1d7d2" args="(void)" --> ULONG </td><td class="memItemRight" valign="bottom"><a class="el" href="hotplug__libhal_8c.html#ae5797f9d2e8fcd9794de5a0271e1d7d2">HPRegisterForHotplugEvents</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets up callbacks for device hotplug events. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a927fe7758a84a9e69ba80414bd357c72"></a><!-- doxytag: member="hotplug_libhal.c::HPReCheckSerialReaders" ref="a927fe7758a84a9e69ba80414bd357c72" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>HPReCheckSerialReaders</b> (void)</td></tr> <tr><td colspan="2"><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2ec7908f8b979caa04f2be04700f51d"></a><!-- doxytag: member="hotplug_libhal.c::usbNotifierMutex" ref="aa2ec7908f8b979caa04f2be04700f51d" args="" --> PCSCLITE_MUTEX </td><td class="memItemRight" valign="bottom"><b>usbNotifierMutex</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29b79917acc21424ee004fe7b3115ed1"></a><!-- doxytag: member="hotplug_libhal.c::usbNotifyThread" ref="a29b79917acc21424ee004fe7b3115ed1" args="" --> static PCSCLITE_THREAD_T </td><td class="memItemRight" valign="bottom"><b>usbNotifyThread</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5c47a770a3b3218245deed99233a0f5"></a><!-- doxytag: member="hotplug_libhal.c::driverSize" ref="ab5c47a770a3b3218245deed99233a0f5" args="" --> static int </td><td class="memItemRight" valign="bottom"><b>driverSize</b> = -1</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc8e90c1f1869a04cb9c695d853129cd"></a><!-- doxytag: member="hotplug_libhal.c::AraKiriHotPlug" ref="adc8e90c1f1869a04cb9c695d853129cd" args="" --> static char </td><td class="memItemRight" valign="bottom"><b>AraKiriHotPlug</b> = FALSE</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91ef6a806e669ef5ee42061a92acdd1e"></a><!-- doxytag: member="hotplug_libhal.c::conn" ref="a91ef6a806e669ef5ee42061a92acdd1e" args="" --> static DBusConnection * </td><td class="memItemRight" valign="bottom"><b>conn</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8376bc5d9309630548debb56ca377bf1"></a><!-- doxytag: member="hotplug_libhal.c::hal_ctx" ref="a8376bc5d9309630548debb56ca377bf1" args="" --> static LibHalContext * </td><td class="memItemRight" valign="bottom"><b>hal_ctx</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d07e15c0ba3dc80ae542c0fb85a16dc"></a><!-- doxytag: member="hotplug_libhal.c::driverTracker" ref="a7d07e15c0ba3dc80ae542c0fb85a16dc" args="" --> static struct <a class="el" href="struct__driverTracker.html">_driverTracker</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="hotplug__libhal_8c.html#a7d07e15c0ba3dc80ae542c0fb85a16dc">driverTracker</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">keep track of drivers in a dynamically allocated array <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c48d68cc51d33c0120fcb9b1656a9e1"></a><!-- doxytag: member="hotplug_libhal.c::readerTracker" ref="a6c48d68cc51d33c0120fcb9b1656a9e1" args="[PCSCLITE_MAX_READERS_CONTEXTS]" --> static struct <a class="el" href="struct__readerTracker.html">_readerTracker</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="hotplug__libhal_8c.html#a6c48d68cc51d33c0120fcb9b1656a9e1">readerTracker</a> [PCSCLITE_MAX_READERS_CONTEXTS]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">keep track of PCSCLITE_MAX_READERS_CONTEXTS simultaneous readers <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This provides a search API for hot pluggble devices using HAL/DBus. </p> <p>Definition in file <a class="el" href="hotplug__libhal_8c_source.html">hotplug_libhal.c</a>.</p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a88581cb043ba3817a336431e3f3e64f8"></a><!-- doxytag: member="hotplug_libhal.c::short_name" ref="a88581cb043ba3817a336431e3f3e64f8" args="(const char *udi)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const char* short_name </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>udi</em></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate a short name for a device. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>udi</em> </td><td>Universal Device Id </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="hotplug__libhal_8c_source.html#l00089">89</a> of file <a class="el" href="hotplug__libhal_8c_source.html">hotplug_libhal.c</a>.</p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>