1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Locality (hwloc): Components and Plugins: Generic components</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Hardware Locality (hwloc)<span id="projectnumber"> 2.12.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Components and Plugins: Generic components</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html">hwloc_component</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga31a5a455f4e666b936f0a9e8fb9a0f47" id="r_ga31a5a455f4e666b936f0a9e8fb9a0f47"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00211.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html#ga31a5a455f4e666b936f0a9e8fb9a0f47">hwloc_component_type_t</a></td></tr>
<tr class="separator:ga31a5a455f4e666b936f0a9e8fb9a0f47"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga397a1bf7d21dd073320ad0045340f463" id="r_ga397a1bf7d21dd073320ad0045340f463"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a> { <a class="el" href="a00211.html#gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900">HWLOC_COMPONENT_TYPE_DISC</a>
, <a class="el" href="a00211.html#gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd">HWLOC_COMPONENT_TYPE_XML</a>
}</td></tr>
<tr class="separator:ga397a1bf7d21dd073320ad0045340f463"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9c8b59541aab5a19332d8c1340d20588" id="r_ga9c8b59541aab5a19332d8c1340d20588"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html#ga9c8b59541aab5a19332d8c1340d20588">hwloc_plugin_check_namespace</a> (const char *pluginname, const char *symbol)</td></tr>
<tr class="separator:ga9c8b59541aab5a19332d8c1340d20588"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<dl class="section note"><dt>Note</dt><dd>These structures and functions may change when <a class="el" href="a00162.html#gaac5bc1f46f55e10ef0141a68ce70e21f" title="Current component and plugin ABI version (see hwloc/plugins.h)">HWLOC_COMPONENT_ABI</a> is modified. </dd></dl>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga31a5a455f4e666b936f0a9e8fb9a0f47" name="ga31a5a455f4e666b936f0a9e8fb9a0f47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31a5a455f4e666b936f0a9e8fb9a0f47">◆ </a></span>hwloc_component_type_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00211.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a> <a class="el" href="a00211.html#ga31a5a455f4e666b936f0a9e8fb9a0f47">hwloc_component_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generic component type. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga397a1bf7d21dd073320ad0045340f463" name="ga397a1bf7d21dd073320ad0045340f463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga397a1bf7d21dd073320ad0045340f463">◆ </a></span>hwloc_component_type_e</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00211.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generic component type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900" name="gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900"></a>HWLOC_COMPONENT_TYPE_DISC </td><td class="fielddoc"><p>The data field must point to a struct <a class="el" href="a00352.html" title="Discovery component structure.">hwloc_disc_component</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd" name="gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd"></a>HWLOC_COMPONENT_TYPE_XML </td><td class="fielddoc"><p>The data field must point to a struct hwloc_xml_component. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga9c8b59541aab5a19332d8c1340d20588" name="ga9c8b59541aab5a19332d8c1340d20588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c8b59541aab5a19332d8c1340d20588">◆ </a></span>hwloc_plugin_check_namespace()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int hwloc_plugin_check_namespace </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>pluginname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>symbol</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Make sure that plugins can lookup core symbols. </p>
<p>This is a sanity check to avoid lazy-lookup failures when libhwloc is loaded within a plugin, and later tries to load its own plugins. This may fail (and abort the program) if libhwloc symbols are in a private namespace.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success. </dd>
<dd>
-1 if the plugin cannot be successfully loaded. The caller plugin init() callback should return a negative error code as well.</dd></dl>
<p>Plugins should call this function in their init() callback to avoid later crashes if lazy symbol resolution is used by the upper layer that loaded hwloc (e.g. OpenCL implementations using dlopen with RTLD_LAZY).</p>
<dl class="section note"><dt>Note</dt><dd>The build system must define HWLOC_INSIDE_PLUGIN if and only if building the caller as a plugin.</dd>
<dd>
This function should remain inline so plugins can call it even when they cannot find libhwloc symbols. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
|