<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>libhd: ID macros</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</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><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>ID macros<br> <small> [<a class="el" href="group__libhdPublic.html">Public interface</a>]</small> </h1>Macros to handle <a class="el" href="structdevice.html">device</a> and vendor ids. <a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g971cef60a459a9d27cae4e686e3c5243">TAG_PCI</a> 1</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">PCI ids. <a href="#g971cef60a459a9d27cae4e686e3c5243"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g1607ac0ea653facaccb74c6d0c4bb2b5">TAG_EISA</a> 2</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">EISA ids (monitors, ISA-PnP, modems, mice etc). <a href="#g1607ac0ea653facaccb74c6d0c4bb2b5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g916d59354ccc6b8b975e009b779e19b2">TAG_USB</a> 3</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">USB ids. <a href="#g916d59354ccc6b8b975e009b779e19b2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#gc029b51beeba8e79651dfe0482164302">TAG_SPECIAL</a> 4</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Internally used ids. <a href="#gc029b51beeba8e79651dfe0482164302"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#gd32f11ea574bb76428be95d3ca43f8dd">TAG_PCMCIA</a> 5</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">PCMCIA ids. <a href="#gd32f11ea574bb76428be95d3ca43f8dd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g1f9e4dd369718763459faf1c19ae917d">ID_VALUE</a>(id) ((id) & 0xffff)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the real id value. <a href="#g1f9e4dd369718763459faf1c19ae917d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g1f889c3da3198a177a19e553248a6ffd">ID_TAG</a>(id) (((id) >> 16) & 0xf)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the tag value. <a href="#g1f889c3da3198a177a19e553248a6ffd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__idmacros.html#g09250526a4cc5db1940625d5f39106cb">MAKE_ID</a>(tag, id_val) ((tag << 16) | (id_val))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Combine tag and id value. <a href="#g09250526a4cc5db1940625d5f39106cb"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Macros to handle <a class="el" href="structdevice.html">device</a> and vendor ids. <p> Example: to check if an id is a pci id and get its value, do something like this: <div class="fragment"><pre class="fragment"> <span class="keywordflow">if</span>(<a class="code" href="group__idmacros.html#g1f889c3da3198a177a19e553248a6ffd" title="Get the tag value.">ID_TAG</a>(hd->dev) == <a class="code" href="group__idmacros.html#g971cef60a459a9d27cae4e686e3c5243" title="PCI ids.">TAG_PCI</a>) { pci_id = <a class="code" href="group__idmacros.html#g1f9e4dd369718763459faf1c19ae917d" title="Get the real id value.">ID_VALUE</a>(hd->dev) } </pre></div> <hr><h2>Define Documentation</h2> <a class="anchor" name="g1f889c3da3198a177a19e553248a6ffd"></a><!-- doxytag: member="hd.h::ID_TAG" ref="g1f889c3da3198a177a19e553248a6ffd" args="(id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ID_TAG </td> <td>(</td> <td class="paramtype">id </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (((id) >> 16) & 0xf)</td> </tr> </table> </div> <div class="memdoc"> <p> Get the tag value. <p> </div> </div><p> <a class="anchor" name="g1f9e4dd369718763459faf1c19ae917d"></a><!-- doxytag: member="hd.h::ID_VALUE" ref="g1f9e4dd369718763459faf1c19ae917d" args="(id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ID_VALUE </td> <td>(</td> <td class="paramtype">id </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((id) & 0xffff)</td> </tr> </table> </div> <div class="memdoc"> <p> Get the real id value. <p> </div> </div><p> <a class="anchor" name="g09250526a4cc5db1940625d5f39106cb"></a><!-- doxytag: member="hd.h::MAKE_ID" ref="g09250526a4cc5db1940625d5f39106cb" args="(tag, id_val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MAKE_ID </td> <td>(</td> <td class="paramtype">tag, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">id_val </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((tag << 16) | (id_val))</td> </tr> </table> </div> <div class="memdoc"> <p> Combine tag and id value. <p> </div> </div><p> <a class="anchor" name="g1607ac0ea653facaccb74c6d0c4bb2b5"></a><!-- doxytag: member="hd.h::TAG_EISA" ref="g1607ac0ea653facaccb74c6d0c4bb2b5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TAG_EISA 2 </td> </tr> </table> </div> <div class="memdoc"> <p> EISA ids (monitors, ISA-PnP, modems, mice etc). <p> </div> </div><p> <a class="anchor" name="g971cef60a459a9d27cae4e686e3c5243"></a><!-- doxytag: member="hd.h::TAG_PCI" ref="g971cef60a459a9d27cae4e686e3c5243" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TAG_PCI 1 </td> </tr> </table> </div> <div class="memdoc"> <p> PCI ids. <p> </div> </div><p> <a class="anchor" name="gd32f11ea574bb76428be95d3ca43f8dd"></a><!-- doxytag: member="hd.h::TAG_PCMCIA" ref="gd32f11ea574bb76428be95d3ca43f8dd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TAG_PCMCIA 5 </td> </tr> </table> </div> <div class="memdoc"> <p> PCMCIA ids. <p> </div> </div><p> <a class="anchor" name="gc029b51beeba8e79651dfe0482164302"></a><!-- doxytag: member="hd.h::TAG_SPECIAL" ref="gc029b51beeba8e79651dfe0482164302" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TAG_SPECIAL 4 </td> </tr> </table> </div> <div class="memdoc"> <p> Internally used ids. <p> </div> </div><p> <a class="anchor" name="g916d59354ccc6b8b975e009b779e19b2"></a><!-- doxytag: member="hd.h::TAG_USB" ref="g916d59354ccc6b8b975e009b779e19b2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define TAG_USB 3 </td> </tr> </table> </div> <div class="memdoc"> <p> USB ids. <p> </div> </div><p> </body></html>