File: a00211.html

package info (click to toggle)
hwloc 2.12.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,496 kB
  • sloc: ansic: 61,022; xml: 13,559; sh: 7,352; makefile: 2,150; javascript: 879; cpp: 93; sed: 5
file content (168 lines) | stat: -rw-r--r-- 9,460 bytes parent folder | download | duplicates (4)
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">&#160;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&amp;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> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<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 &#160;</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">&#160;</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>&#160;</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">&#160;</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 &#160;</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">&#160;</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&#160;</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">&#160;</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">&#9670;&#160;</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">&#9670;&#160;</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&#160;</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&#160;</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">&#9670;&#160;</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 *&#160;</td>
          <td class="paramname"><em>pluginname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>symbol</em>&#160;</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&#160;<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>