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 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
|
<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Locality (hwloc): plugins.h Source File</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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Hardware Locality (hwloc)
 <span id="projectnumber">2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_5cb306d949c7931a3b6c77517393dd34.html">hwloc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">plugins.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright © 2013-2020 Inria. All rights reserved.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright © 2016 Cisco Systems, Inc. All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * See COPYING in top-level directory.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#ifndef HWLOC_PLUGINS_H</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#define HWLOC_PLUGINS_H</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a>;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "hwloc.h"</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifdef HWLOC_INSIDE_PLUGIN</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/* needed for hwloc_plugin_check_namespace() */</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifdef HWLOC_HAVE_LTDL</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <ltdl.h></span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <dlfcn.h></span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00372.html"> 38</a></span> <span class="keyword">struct </span><a class="code" href="a00372.html">hwloc_disc_component</a> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00372.html#a4064c3b5d9213027e87caebef380a840"> 42</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="a00372.html#a4064c3b5d9213027e87caebef380a840">name</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00372.html#a61ad3151efa02e3dbad5d919758f9c90"> 47</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00372.html#a61ad3151efa02e3dbad5d919758f9c90">phases</a>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="a00372.html#acbb9957914dbf7b8f504215aa0c8d3fe"> 57</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00372.html#acbb9957914dbf7b8f504215aa0c8d3fe">excluded_phases</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> * (*instantiate)(<span class="keyword">struct </span>hwloc_topology *topology, <span class="keyword">struct </span><a class="code" href="a00372.html">hwloc_disc_component</a> *component, <span class="keywordtype">unsigned</span> <a class="code" href="a00372.html#acbb9957914dbf7b8f504215aa0c8d3fe">excluded_phases</a>, <span class="keyword">const</span> <span class="keywordtype">void</span> *data1, <span class="keyword">const</span> <span class="keywordtype">void</span> *data2, <span class="keyword">const</span> <span class="keywordtype">void</span> *data3);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00372.html#ae86d283c272c5ae24073a235efbf6b59"> 76</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00372.html#ae86d283c272c5ae24073a235efbf6b59">priority</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00372.html#ace80cafe2b1732b047b3fc3da47e6517"> 81</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00372.html#ace80cafe2b1732b047b3fc3da47e6517">enabled_by_default</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">struct </span><a class="code" href="a00372.html">hwloc_disc_component</a> * next;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00234.html#ga8c314121c2fc478161bcce758688b9a1"> 100</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="a00234.html#ga8c314121c2fc478161bcce758688b9a1">hwloc_disc_phase_e</a> {</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ab41c626c79e9ccb1e7d41e7076972283"> 105</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ab41c626c79e9ccb1e7d41e7076972283">HWLOC_DISC_PHASE_GLOBAL</a> = (1U<<0),</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a6360474df197027761a69bd5fc620250"> 109</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a6360474df197027761a69bd5fc620250">HWLOC_DISC_PHASE_CPU</a> = (1U<<1),</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ac4264a243844c5fbbff495cdb1b4d51d"> 113</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ac4264a243844c5fbbff495cdb1b4d51d">HWLOC_DISC_PHASE_MEMORY</a> = (1U<<2),</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a677c52064dd987af4988346319b3675a"> 117</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a677c52064dd987af4988346319b3675a">HWLOC_DISC_PHASE_PCI</a> = (1U<<3),</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1aa8e10626cba9af72f5605a1acbdc0015"> 121</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1aa8e10626cba9af72f5605a1acbdc0015">HWLOC_DISC_PHASE_IO</a> = (1U<<4),</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a8a7cde9bff0ab0d085b102a3e934939b"> 125</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a8a7cde9bff0ab0d085b102a3e934939b">HWLOC_DISC_PHASE_MISC</a> = (1U<<5),</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a68ca5c7ad75a6d9e5355689411621773"> 129</a></span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a68ca5c7ad75a6d9e5355689411621773">HWLOC_DISC_PHASE_ANNOTATE</a> = (1U<<6),</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ada3ed3f00e74909353d6ea4a96cde5ad">HWLOC_DISC_PHASE_TWEAK</a> = (1U<<7)</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="a00234.html#ga600bba1a62022d5f516800649b1edb61"> 137</a></span> } <a class="code" href="a00234.html#ga600bba1a62022d5f516800649b1edb61">hwloc_disc_phase_t</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00234.html#gaae1b38cf9b12e489884ce2a07275964b"> 140</a></span> <span class="keyword">enum</span> <a class="code" href="a00234.html#gaae1b38cf9b12e489884ce2a07275964b">hwloc_disc_status_flag_e</a> {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="a00234.html#ggaae1b38cf9b12e489884ce2a07275964ba205d644d54a0840bd9165fce7d19e6b1">HWLOC_DISC_STATUS_FLAG_GOT_ALLOWED_RESOURCES</a> = (1UL<<1)</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00234.html#ggaae1b38cf9b12e489884ce2a07275964ba205d644d54a0840bd9165fce7d19e6b1"> 143</a></span> };</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="a00376.html"> 150</a></span> <span class="keyword">struct </span><a class="code" href="a00376.html">hwloc_disc_status</a> {</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="a00376.html#abaf7c8c082d43e133171f0723dbf824b"> 154</a></span>  <a class="code" href="a00234.html#ga600bba1a62022d5f516800649b1edb61">hwloc_disc_phase_t</a> <a class="code" href="a00376.html#abaf7c8c082d43e133171f0723dbf824b">phase</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="a00376.html#a0f95fa42d46a6e7cf8dee8af12afee3a"> 159</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00376.html#a0f95fa42d46a6e7cf8dee8af12afee3a">excluded_phases</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="a00376.html#ad8b123cecb945a9182eb824ccf8ef9d7"> 162</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00376.html#ad8b123cecb945a9182eb824ccf8ef9d7">flags</a>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> };</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="a00380.html"> 183</a></span> <span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> {</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">struct </span><a class="code" href="a00372.html">hwloc_disc_component</a> * component;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">struct </span>hwloc_topology * topology;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordtype">int</span> envvar_forced;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> * next;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00380.html#aeca769840a6ff03e96462a9533adbccd"> 196</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00380.html#aeca769840a6ff03e96462a9533adbccd">phases</a>;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00380.html#aaa8eafe495aadd81c2e3c4ec527c10ba"> 199</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00380.html#aaa8eafe495aadd81c2e3c4ec527c10ba">flags</a>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="a00380.html#ab8806f6db077f1bb2e9d63ec99223f7a"> 207</a></span>  <span class="keywordtype">int</span> <a class="code" href="a00380.html#ab8806f6db077f1bb2e9d63ec99223f7a">is_thissystem</a>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="a00380.html#a2ea5bd36b7f06efdb65b98b32af16c68"> 210</a></span>  <span class="keywordtype">void</span> * <a class="code" href="a00380.html#a2ea5bd36b7f06efdb65b98b32af16c68">private_data</a>;</div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00380.html#a36c4fa86350525b46340c67b802c69c7"> 214</a></span>  void (*<a class="code" href="a00380.html#a36c4fa86350525b46340c67b802c69c7">disable</a>)(<span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> *backend);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00380.html#accff2cd8404be43c3b44cec05e6f609b"> 221</a></span>  int (*<a class="code" href="a00380.html#accff2cd8404be43c3b44cec05e6f609b">discover</a>)(<span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> *backend, <span class="keyword">struct </span><a class="code" href="a00376.html">hwloc_disc_status</a> *status);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="a00380.html#aaac253491264c20930f44817270bc502"> 227</a></span>  int (*<a class="code" href="a00380.html#aaac253491264c20930f44817270bc502">get_pci_busid_cpuset</a>)(<span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> *backend, <span class="keyword">struct </span>hwloc_pcidev_attr_s *busid, <a class="code" href="a00211.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a> cpuset);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> };</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00234.html#gadb068565ab6043cbe4d16bfcce067a61"> 233</a></span> HWLOC_DECLSPEC <span class="keyword">struct </span><a class="code" href="a00380.html">hwloc_backend</a> * <a class="code" href="a00234.html#gadb068565ab6043cbe4d16bfcce067a61">hwloc_backend_alloc</a>(<span class="keyword">struct</span> hwloc_topology *topology, <span class="keyword">struct</span> <a class="code" href="a00372.html">hwloc_disc_component</a> *component);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00234.html#ga4715779d7191833e9b1a7490989a7497"> 236</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00234.html#ga4715779d7191833e9b1a7490989a7497">hwloc_backend_enable</a>(<span class="keyword">struct</span> <a class="code" href="a00380.html">hwloc_backend</a> *backend);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="a00235.html#ga397a1bf7d21dd073320ad0045340f463"> 248</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="a00235.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a> {</div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="a00235.html#gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900"> 250</a></span>  <a class="code" href="a00235.html#gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900">HWLOC_COMPONENT_TYPE_DISC</a>,</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="a00235.html#gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd">HWLOC_COMPONENT_TYPE_XML</a></div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="a00235.html#ga31a5a455f4e666b936f0a9e8fb9a0f47"> 254</a></span> } <a class="code" href="a00235.html#ga31a5a455f4e666b936f0a9e8fb9a0f47">hwloc_component_type_t</a>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="a00384.html"> 261</a></span> <span class="keyword">struct </span><a class="code" href="a00384.html">hwloc_component</a> {</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00384.html#a3250bd6fc9713946991d805e48091b2e"> 263</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="a00384.html#a3250bd6fc9713946991d805e48091b2e">abi</a>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="a00384.html#aea613546886d9b8221cadba920fe3ebc"> 282</a></span>  int (*<a class="code" href="a00384.html#aea613546886d9b8221cadba920fe3ebc">init</a>)(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00384.html#ab8043c5b4cc0e81aabba586ccb194335">flags</a>);</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="a00384.html#a4612015451a1c706e8ba19114cb8baae"> 295</a></span>  void (*<a class="code" href="a00384.html#a4612015451a1c706e8ba19114cb8baae">finalize</a>)(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00384.html#ab8043c5b4cc0e81aabba586ccb194335">flags</a>);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="a00384.html#a789208ada7e17492cfd3a5a88a6bb0ee"> 298</a></span>  <a class="code" href="a00235.html#ga31a5a455f4e666b936f0a9e8fb9a0f47">hwloc_component_type_t</a> <a class="code" href="a00384.html#a789208ada7e17492cfd3a5a88a6bb0ee">type</a>;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00384.html#ab8043c5b4cc0e81aabba586ccb194335"> 301</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00384.html#ab8043c5b4cc0e81aabba586ccb194335">flags</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00384.html#a4b8cffd1d943c29fdc102b841b8598d4"> 304</a></span>  <span class="keywordtype">void</span> * <a class="code" href="a00384.html#a4b8cffd1d943c29fdc102b841b8598d4">data</a>;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> };</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00236.html#gab527c1e0f243f057d31a724794ad9f88"> 317</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00236.html#gab527c1e0f243f057d31a724794ad9f88">hwloc_hide_errors</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> HWLOC_DECLSPEC <a class="code" href="a00244.html">hwloc_obj_t</a></div>
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="a00236.html#ga1e105cfe3c8e77f34cc6df3841deebbc"> 348</a></span> <a class="code" href="a00236.html#ga1e105cfe3c8e77f34cc6df3841deebbc">hwloc__insert_object_by_cpuset</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00244.html">hwloc_obj_t</a> root,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="a00244.html">hwloc_obj_t</a> obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *reason);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  </div>
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="a00236.html#ga0ef97debde503b56367689b07bb3e901"> 367</a></span> HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00236.html#ga0ef97debde503b56367689b07bb3e901">hwloc_insert_object_by_parent</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00244.html">hwloc_obj_t</a> parent, <a class="code" href="a00244.html">hwloc_obj_t</a> obj);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00236.html#ga0b5c75b2dc37cea2e8a29c4812baf4b3"> 373</a></span> HWLOC_DECLSPEC <a class="code" href="a00244.html">hwloc_obj_t</a> <a class="code" href="a00236.html#ga0b5c75b2dc37cea2e8a29c4812baf4b3">hwloc_alloc_setup_object</a>(<a class="code" href="a00192.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="code" href="a00190.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> os_index);</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="a00236.html#ga754b61041ceee9685534a2c5d3cd0156"> 383</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00236.html#ga754b61041ceee9685534a2c5d3cd0156">hwloc_obj_add_children_sets</a>(<a class="code" href="a00244.html">hwloc_obj_t</a> obj);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="a00236.html#ga120d8bd74922e1030b621409a6b0be61"> 392</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00236.html#ga120d8bd74922e1030b621409a6b0be61">hwloc_topology_reconnect</a>(<a class="code" href="a00192.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags __hwloc_attribute_unused);</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">static</span> __hwloc_inline <span class="keywordtype">int</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="a00236.html#gac2eaed287bb215cf0bd33014e9e1d374"> 416</a></span> <a class="code" href="a00236.html#gac2eaed287bb215cf0bd33014e9e1d374">hwloc_plugin_check_namespace</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pluginname __hwloc_attribute_unused, <span class="keyword">const</span> <span class="keywordtype">char</span> *symbol __hwloc_attribute_unused)</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor">#ifdef HWLOC_INSIDE_PLUGIN</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordtype">void</span> *sym;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor">#ifdef HWLOC_HAVE_LTDL</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  lt_dlhandle handle = lt_dlopen(NULL);</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordtype">void</span> *handle = dlopen(NULL, RTLD_NOW|RTLD_LOCAL);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (!handle)</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">/* cannot check, assume things will work */</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#ifdef HWLOC_HAVE_LTDL</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  sym = lt_dlsym(handle, symbol);</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  lt_dlclose(handle);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  sym = dlsym(handle, symbol);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  dlclose(handle);</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (!sym) {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keyword">static</span> <span class="keywordtype">int</span> verboseenv_checked = 0;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">static</span> <span class="keywordtype">int</span> verboseenv_value = 0;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (!verboseenv_checked) {</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *verboseenv = getenv(<span class="stringliteral">"HWLOC_PLUGINS_VERBOSE"</span>);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  verboseenv_value = verboseenv ? atoi(verboseenv) : 0;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  verboseenv_checked = 1;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">if</span> (verboseenv_value)</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  fprintf(stderr, <span class="stringliteral">"Plugin `%s' disabling itself because it cannot find the `%s' core symbol.\n"</span>,</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  pluginname, symbol);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_INSIDE_PLUGIN */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> }</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">static</span> __hwloc_inline <span class="keywordtype">int</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00237.html#ga60203db6459ebf275bf48c40a37661a0"> 466</a></span> <a class="code" href="a00237.html#ga60203db6459ebf275bf48c40a37661a0">hwloc_filter_check_pcidev_subtype_important</a>(<span class="keywordtype">unsigned</span> classid)</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> {</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordtype">unsigned</span> baseclass = classid >> 8;</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">return</span> (baseclass == 0x03 <span class="comment">/* PCI_BASE_CLASS_DISPLAY */</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  || baseclass == 0x02 <span class="comment">/* PCI_BASE_CLASS_NETWORK */</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  || baseclass == 0x01 <span class="comment">/* PCI_BASE_CLASS_STORAGE */</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  || baseclass == 0x0b <span class="comment">/* PCI_BASE_CLASS_PROCESSOR */</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  || classid == 0x0c04 <span class="comment">/* PCI_CLASS_SERIAL_FIBER */</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  || classid == 0x0c06 <span class="comment">/* PCI_CLASS_SERIAL_INFINIBAND */</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  || baseclass == 0x12 <span class="comment">/* Processing Accelerators */</span>);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> }</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  </div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keyword">static</span> __hwloc_inline <span class="keywordtype">int</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="a00237.html#gac7d57a6d669820f360cf2a070a396560"> 483</a></span> <a class="code" href="a00237.html#gac7d57a6d669820f360cf2a070a396560">hwloc_filter_check_osdev_subtype_important</a>(<a class="code" href="a00190.html#gaa9a6941ef7b1c169412518d7ef71b3d2">hwloc_obj_osdev_type_t</a> subtype)</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> {</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">return</span> (subtype != <a class="code" href="a00190.html#gga64f5d539df299c97ae80ce53fc4b56c0a827ad1643360711a8b6c6af671366791">HWLOC_OBJ_OSDEV_DMA</a>);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> }</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">static</span> __hwloc_inline <span class="keywordtype">int</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="a00237.html#ga2f402a43025a8a91e8513be1a15e4635"> 495</a></span> <a class="code" href="a00237.html#ga2f402a43025a8a91e8513be1a15e4635">hwloc_filter_check_keep_object_type</a>(<a class="code" href="a00192.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="code" href="a00190.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> {</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">enum</span> <a class="code" href="a00199.html#ga9a5a1f0140cd1952544477833733195b">hwloc_type_filter_e</a> filter = <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a">HWLOC_TYPE_FILTER_KEEP_NONE</a>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="a00199.html#ga137ad1178f7a79f2383974d983083401">hwloc_topology_get_type_filter</a>(topology, type, &filter);</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  assert(filter != <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba63fd24954e18c83ff7eae9588759adb5">HWLOC_TYPE_FILTER_KEEP_IMPORTANT</a>); <span class="comment">/* IMPORTANT only used for I/O */</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> filter == <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a">HWLOC_TYPE_FILTER_KEEP_NONE</a> ? 0 : 1;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> }</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">static</span> __hwloc_inline <span class="keywordtype">int</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="a00237.html#ga4d2fdce071e5646ef147c9ff1539d1c9"> 508</a></span> <a class="code" href="a00237.html#ga4d2fdce071e5646ef147c9ff1539d1c9">hwloc_filter_check_keep_object</a>(<a class="code" href="a00192.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="code" href="a00244.html">hwloc_obj_t</a> obj)</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> {</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="a00190.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type = obj-><a class="code" href="a00244.html#acc4f0803f244867e68fe0036800be5de">type</a>;</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">enum</span> <a class="code" href="a00199.html#ga9a5a1f0140cd1952544477833733195b">hwloc_type_filter_e</a> filter = <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a">HWLOC_TYPE_FILTER_KEEP_NONE</a>;</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="a00199.html#ga137ad1178f7a79f2383974d983083401">hwloc_topology_get_type_filter</a>(topology, type, &filter);</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">if</span> (filter == <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a">HWLOC_TYPE_FILTER_KEEP_NONE</a>)</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">if</span> (filter == <a class="code" href="a00199.html#gga9a5a1f0140cd1952544477833733195ba63fd24954e18c83ff7eae9588759adb5">HWLOC_TYPE_FILTER_KEEP_IMPORTANT</a>) {</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (type == <a class="code" href="a00190.html#ggacd37bb612667dc437d66bfb175a8dc55a5d8117a54df1fbd3606ab19e42cb0ea9">HWLOC_OBJ_PCI_DEVICE</a>)</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">return</span> <a class="code" href="a00237.html#ga60203db6459ebf275bf48c40a37661a0">hwloc_filter_check_pcidev_subtype_important</a>(obj-><a class="code" href="a00244.html#accd40e29f71f19e88db62ea3df02adc8">attr</a>-><a class="code" href="a00248.html#a0b66da7ab072f7c016f8ed86701f5a7c">pcidev</a>.<a class="code" href="a00268.html#aee735352d9f1686fd290fc6d6397c334">class_id</a>);</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (type == <a class="code" href="a00190.html#ggacd37bb612667dc437d66bfb175a8dc55a51e7280240fd9f25589cbbe538bdb075">HWLOC_OBJ_OS_DEVICE</a>)</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> <a class="code" href="a00237.html#gac7d57a6d669820f360cf2a070a396560">hwloc_filter_check_osdev_subtype_important</a>(obj-><a class="code" href="a00244.html#accd40e29f71f19e88db62ea3df02adc8">attr</a>-><a class="code" href="a00248.html#aaf7a5c38b5185703ff18c46ad2761dcf">osdev</a>.<a class="code" href="a00288.html#a31e019e27e54ac6138d04be639bb96f9">type</a>);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> }</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  </div>
<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="a00238.html#ga706f71cfea09d547d2cbafa642d6e03b"> 537</a></span> HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <a class="code" href="a00238.html#ga706f71cfea09d547d2cbafa642d6e03b">hwloc_pcidisc_find_cap</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *config, <span class="keywordtype">unsigned</span> cap);</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  </div>
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="a00238.html#ga51d1ebcbf9729987c9d17df3aa57d209"> 544</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00238.html#ga51d1ebcbf9729987c9d17df3aa57d209">hwloc_pcidisc_find_linkspeed</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *config, <span class="keywordtype">unsigned</span> offset, <span class="keywordtype">float</span> *linkspeed);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="a00238.html#ga6c55fb80c3d0c8c8e61078b3f38adde8"> 550</a></span> HWLOC_DECLSPEC <a class="code" href="a00190.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> <a class="code" href="a00238.html#ga6c55fb80c3d0c8c8e61078b3f38adde8">hwloc_pcidisc_check_bridge_type</a>(<span class="keywordtype">unsigned</span> device_class, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *config);</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  </div>
<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="a00238.html#ga95acf6822a49447c11067d0b843965ba"> 558</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00238.html#ga95acf6822a49447c11067d0b843965ba">hwloc_pcidisc_find_bridge_buses</a>(<span class="keywordtype">unsigned</span> domain, <span class="keywordtype">unsigned</span> bus, <span class="keywordtype">unsigned</span> dev, <span class="keywordtype">unsigned</span> func,</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordtype">unsigned</span> *secondary_busp, <span class="keywordtype">unsigned</span> *subordinate_busp,</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *config);</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  </div>
<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="a00238.html#gab76ddc4f55db8101ef0d44317965128c"> 566</a></span> HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00238.html#gab76ddc4f55db8101ef0d44317965128c">hwloc_pcidisc_tree_insert_by_busid</a>(<span class="keyword">struct</span> <a class="code" href="a00244.html">hwloc_obj</a> **treep, <span class="keyword">struct</span> <a class="code" href="a00244.html">hwloc_obj</a> *obj);</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  </div>
<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="a00238.html#gabda1d6c1799e50b9226f8a4da9bd29ea"> 573</a></span> HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00238.html#gabda1d6c1799e50b9226f8a4da9bd29ea">hwloc_pcidisc_tree_attach</a>(<span class="keyword">struct</span> hwloc_topology *topology, <span class="keyword">struct</span> <a class="code" href="a00244.html">hwloc_obj</a> *tree);</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div>
<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="a00239.html#ga7964833550947636ab8975909de3fa98"> 591</a></span> HWLOC_DECLSPEC <span class="keyword">struct </span><a class="code" href="a00244.html">hwloc_obj</a> * <a class="code" href="a00239.html#ga7964833550947636ab8975909de3fa98">hwloc_pci_find_parent_by_busid</a>(<span class="keyword">struct</span> hwloc_topology *topology, <span class="keywordtype">unsigned</span> domain, <span class="keywordtype">unsigned</span> bus, <span class="keywordtype">unsigned</span> dev, <span class="keywordtype">unsigned</span> func);</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_PLUGINS_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aa00190_html_gaa9a6941ef7b1c169412518d7ef71b3d2"><div class="ttname"><a href="a00190.html#gaa9a6941ef7b1c169412518d7ef71b3d2">hwloc_obj_osdev_type_t</a></div><div class="ttdeci">enum hwloc_obj_osdev_type_e hwloc_obj_osdev_type_t</div><div class="ttdoc">Type of a OS device.</div></div>
<div class="ttc" id="aa00190_html_gacd37bb612667dc437d66bfb175a8dc55"><div class="ttname"><a href="a00190.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a></div><div class="ttdeci">hwloc_obj_type_t</div><div class="ttdoc">Type of topology object.</div><div class="ttdef"><b>Definition:</b> hwloc.h:176</div></div>
<div class="ttc" id="aa00190_html_gga64f5d539df299c97ae80ce53fc4b56c0a827ad1643360711a8b6c6af671366791"><div class="ttname"><a href="a00190.html#gga64f5d539df299c97ae80ce53fc4b56c0a827ad1643360711a8b6c6af671366791">HWLOC_OBJ_OSDEV_DMA</a></div><div class="ttdeci">@ HWLOC_OBJ_OSDEV_DMA</div><div class="ttdoc">Operating system dma engine device. For instance the "dma0chan0" DMA channel on Linux.</div><div class="ttdef"><b>Definition:</b> hwloc.h:350</div></div>
<div class="ttc" id="aa00190_html_ggacd37bb612667dc437d66bfb175a8dc55a51e7280240fd9f25589cbbe538bdb075"><div class="ttname"><a href="a00190.html#ggacd37bb612667dc437d66bfb175a8dc55a51e7280240fd9f25589cbbe538bdb075">HWLOC_OBJ_OS_DEVICE</a></div><div class="ttdeci">@ HWLOC_OBJ_OS_DEVICE</div><div class="ttdoc">Operating system device (filtered out by default).</div><div class="ttdef"><b>Definition:</b> hwloc.h:279</div></div>
<div class="ttc" id="aa00190_html_ggacd37bb612667dc437d66bfb175a8dc55a5d8117a54df1fbd3606ab19e42cb0ea9"><div class="ttname"><a href="a00190.html#ggacd37bb612667dc437d66bfb175a8dc55a5d8117a54df1fbd3606ab19e42cb0ea9">HWLOC_OBJ_PCI_DEVICE</a></div><div class="ttdeci">@ HWLOC_OBJ_PCI_DEVICE</div><div class="ttdoc">PCI device (filtered out by default).</div><div class="ttdef"><b>Definition:</b> hwloc.h:269</div></div>
<div class="ttc" id="aa00192_html_ga9d1e76ee15a7dee158b786c30b6a6e38"><div class="ttname"><a href="a00192.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a></div><div class="ttdeci">struct hwloc_topology * hwloc_topology_t</div><div class="ttdoc">Topology context.</div><div class="ttdef"><b>Definition:</b> hwloc.h:691</div></div>
<div class="ttc" id="aa00199_html_ga137ad1178f7a79f2383974d983083401"><div class="ttname"><a href="a00199.html#ga137ad1178f7a79f2383974d983083401">hwloc_topology_get_type_filter</a></div><div class="ttdeci">int hwloc_topology_get_type_filter(hwloc_topology_t topology, hwloc_obj_type_t type, enum hwloc_type_filter_e *filter)</div><div class="ttdoc">Get the current filtering for the given object type.</div></div>
<div class="ttc" id="aa00199_html_ga9a5a1f0140cd1952544477833733195b"><div class="ttname"><a href="a00199.html#ga9a5a1f0140cd1952544477833733195b">hwloc_type_filter_e</a></div><div class="ttdeci">hwloc_type_filter_e</div><div class="ttdoc">Type filtering flags.</div><div class="ttdef"><b>Definition:</b> hwloc.h:2136</div></div>
<div class="ttc" id="aa00199_html_gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a"><div class="ttname"><a href="a00199.html#gga9a5a1f0140cd1952544477833733195ba4f835955414de92c77d99b8419d4647a">HWLOC_TYPE_FILTER_KEEP_NONE</a></div><div class="ttdeci">@ HWLOC_TYPE_FILTER_KEEP_NONE</div><div class="ttdoc">Ignore all objects of this type.</div><div class="ttdef"><b>Definition:</b> hwloc.h:2150</div></div>
<div class="ttc" id="aa00199_html_gga9a5a1f0140cd1952544477833733195ba63fd24954e18c83ff7eae9588759adb5"><div class="ttname"><a href="a00199.html#gga9a5a1f0140cd1952544477833733195ba63fd24954e18c83ff7eae9588759adb5">HWLOC_TYPE_FILTER_KEEP_IMPORTANT</a></div><div class="ttdeci">@ HWLOC_TYPE_FILTER_KEEP_IMPORTANT</div><div class="ttdoc">Only keep likely-important objects of the given type.</div><div class="ttdef"><b>Definition:</b> hwloc.h:2179</div></div>
<div class="ttc" id="aa00211_html_gaa3c2bf4c776d603dcebbb61b0c923d84"><div class="ttname"><a href="a00211.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a></div><div class="ttdeci">struct hwloc_bitmap_s * hwloc_bitmap_t</div><div class="ttdoc">Set of bits represented as an opaque pointer to an internal bitmap.</div><div class="ttdef"><b>Definition:</b> bitmap.h:68</div></div>
<div class="ttc" id="aa00234_html_ga4715779d7191833e9b1a7490989a7497"><div class="ttname"><a href="a00234.html#ga4715779d7191833e9b1a7490989a7497">hwloc_backend_enable</a></div><div class="ttdeci">int hwloc_backend_enable(struct hwloc_backend *backend)</div><div class="ttdoc">Enable a previously allocated and setup backend.</div></div>
<div class="ttc" id="aa00234_html_ga600bba1a62022d5f516800649b1edb61"><div class="ttname"><a href="a00234.html#ga600bba1a62022d5f516800649b1edb61">hwloc_disc_phase_t</a></div><div class="ttdeci">enum hwloc_disc_phase_e hwloc_disc_phase_t</div><div class="ttdoc">Discovery phase.</div></div>
<div class="ttc" id="aa00234_html_ga8c314121c2fc478161bcce758688b9a1"><div class="ttname"><a href="a00234.html#ga8c314121c2fc478161bcce758688b9a1">hwloc_disc_phase_e</a></div><div class="ttdeci">hwloc_disc_phase_e</div><div class="ttdoc">Discovery phase.</div><div class="ttdef"><b>Definition:</b> plugins.h:100</div></div>
<div class="ttc" id="aa00234_html_gaae1b38cf9b12e489884ce2a07275964b"><div class="ttname"><a href="a00234.html#gaae1b38cf9b12e489884ce2a07275964b">hwloc_disc_status_flag_e</a></div><div class="ttdeci">hwloc_disc_status_flag_e</div><div class="ttdoc">Discovery status flags.</div><div class="ttdef"><b>Definition:</b> plugins.h:140</div></div>
<div class="ttc" id="aa00234_html_gadb068565ab6043cbe4d16bfcce067a61"><div class="ttname"><a href="a00234.html#gadb068565ab6043cbe4d16bfcce067a61">hwloc_backend_alloc</a></div><div class="ttdeci">struct hwloc_backend * hwloc_backend_alloc(struct hwloc_topology *topology, struct hwloc_disc_component *component)</div><div class="ttdoc">Allocate a backend structure, set good default values, initialize backend->component and topology,...</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1a6360474df197027761a69bd5fc620250"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a6360474df197027761a69bd5fc620250">HWLOC_DISC_PHASE_CPU</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_CPU</div><div class="ttdoc">CPU discovery.</div><div class="ttdef"><b>Definition:</b> plugins.h:109</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1a677c52064dd987af4988346319b3675a"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a677c52064dd987af4988346319b3675a">HWLOC_DISC_PHASE_PCI</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_PCI</div><div class="ttdoc">Attach PCI devices and bridges to existing CPU objects.</div><div class="ttdef"><b>Definition:</b> plugins.h:117</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1a68ca5c7ad75a6d9e5355689411621773"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a68ca5c7ad75a6d9e5355689411621773">HWLOC_DISC_PHASE_ANNOTATE</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_ANNOTATE</div><div class="ttdoc">Annotating existing objects, adding distances, etc.</div><div class="ttdef"><b>Definition:</b> plugins.h:129</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1a8a7cde9bff0ab0d085b102a3e934939b"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1a8a7cde9bff0ab0d085b102a3e934939b">HWLOC_DISC_PHASE_MISC</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_MISC</div><div class="ttdoc">Misc objects that gets added below anything else.</div><div class="ttdef"><b>Definition:</b> plugins.h:125</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1aa8e10626cba9af72f5605a1acbdc0015"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1aa8e10626cba9af72f5605a1acbdc0015">HWLOC_DISC_PHASE_IO</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_IO</div><div class="ttdoc">I/O discovery that requires PCI devices (OS devices such as OpenCL, CUDA, etc.).</div><div class="ttdef"><b>Definition:</b> plugins.h:121</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1ab41c626c79e9ccb1e7d41e7076972283"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ab41c626c79e9ccb1e7d41e7076972283">HWLOC_DISC_PHASE_GLOBAL</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_GLOBAL</div><div class="ttdoc">xml or synthetic, platform-specific components such as bgq. Discovers everything including CPU,...</div><div class="ttdef"><b>Definition:</b> plugins.h:105</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1ac4264a243844c5fbbff495cdb1b4d51d"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ac4264a243844c5fbbff495cdb1b4d51d">HWLOC_DISC_PHASE_MEMORY</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_MEMORY</div><div class="ttdoc">Attach memory to existing CPU objects.</div><div class="ttdef"><b>Definition:</b> plugins.h:113</div></div>
<div class="ttc" id="aa00234_html_gga8c314121c2fc478161bcce758688b9a1ada3ed3f00e74909353d6ea4a96cde5ad"><div class="ttname"><a href="a00234.html#gga8c314121c2fc478161bcce758688b9a1ada3ed3f00e74909353d6ea4a96cde5ad">HWLOC_DISC_PHASE_TWEAK</a></div><div class="ttdeci">@ HWLOC_DISC_PHASE_TWEAK</div><div class="ttdoc">Final tweaks to a ready-to-use topology. This phase runs once the topology is loaded,...</div><div class="ttdef"><b>Definition:</b> plugins.h:136</div></div>
<div class="ttc" id="aa00234_html_ggaae1b38cf9b12e489884ce2a07275964ba205d644d54a0840bd9165fce7d19e6b1"><div class="ttname"><a href="a00234.html#ggaae1b38cf9b12e489884ce2a07275964ba205d644d54a0840bd9165fce7d19e6b1">HWLOC_DISC_STATUS_FLAG_GOT_ALLOWED_RESOURCES</a></div><div class="ttdeci">@ HWLOC_DISC_STATUS_FLAG_GOT_ALLOWED_RESOURCES</div><div class="ttdoc">The sets of allowed resources were already retrieved.</div><div class="ttdef"><b>Definition:</b> plugins.h:142</div></div>
<div class="ttc" id="aa00235_html_ga31a5a455f4e666b936f0a9e8fb9a0f47"><div class="ttname"><a href="a00235.html#ga31a5a455f4e666b936f0a9e8fb9a0f47">hwloc_component_type_t</a></div><div class="ttdeci">enum hwloc_component_type_e hwloc_component_type_t</div><div class="ttdoc">Generic component type.</div></div>
<div class="ttc" id="aa00235_html_ga397a1bf7d21dd073320ad0045340f463"><div class="ttname"><a href="a00235.html#ga397a1bf7d21dd073320ad0045340f463">hwloc_component_type_e</a></div><div class="ttdeci">hwloc_component_type_e</div><div class="ttdoc">Generic component type.</div><div class="ttdef"><b>Definition:</b> plugins.h:248</div></div>
<div class="ttc" id="aa00235_html_gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900"><div class="ttname"><a href="a00235.html#gga397a1bf7d21dd073320ad0045340f463a5d6e561f467fe9795a29e7368b613900">HWLOC_COMPONENT_TYPE_DISC</a></div><div class="ttdeci">@ HWLOC_COMPONENT_TYPE_DISC</div><div class="ttdoc">The data field must point to a struct hwloc_disc_component.</div><div class="ttdef"><b>Definition:</b> plugins.h:250</div></div>
<div class="ttc" id="aa00235_html_gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd"><div class="ttname"><a href="a00235.html#gga397a1bf7d21dd073320ad0045340f463adea00cd839c2141c032e1569fd5592bd">HWLOC_COMPONENT_TYPE_XML</a></div><div class="ttdeci">@ HWLOC_COMPONENT_TYPE_XML</div><div class="ttdoc">The data field must point to a struct hwloc_xml_component.</div><div class="ttdef"><b>Definition:</b> plugins.h:253</div></div>
<div class="ttc" id="aa00236_html_ga0b5c75b2dc37cea2e8a29c4812baf4b3"><div class="ttname"><a href="a00236.html#ga0b5c75b2dc37cea2e8a29c4812baf4b3">hwloc_alloc_setup_object</a></div><div class="ttdeci">hwloc_obj_t hwloc_alloc_setup_object(hwloc_topology_t topology, hwloc_obj_type_t type, unsigned os_index)</div><div class="ttdoc">Allocate and initialize an object of the given type and physical index.</div></div>
<div class="ttc" id="aa00236_html_ga0ef97debde503b56367689b07bb3e901"><div class="ttname"><a href="a00236.html#ga0ef97debde503b56367689b07bb3e901">hwloc_insert_object_by_parent</a></div><div class="ttdeci">void hwloc_insert_object_by_parent(struct hwloc_topology *topology, hwloc_obj_t parent, hwloc_obj_t obj)</div><div class="ttdoc">Insert an object somewhere in the topology.</div></div>
<div class="ttc" id="aa00236_html_ga120d8bd74922e1030b621409a6b0be61"><div class="ttname"><a href="a00236.html#ga120d8bd74922e1030b621409a6b0be61">hwloc_topology_reconnect</a></div><div class="ttdeci">int hwloc_topology_reconnect(hwloc_topology_t topology, unsigned long flags)</div><div class="ttdoc">Request a reconnection of children and levels in the topology.</div></div>
<div class="ttc" id="aa00236_html_ga1e105cfe3c8e77f34cc6df3841deebbc"><div class="ttname"><a href="a00236.html#ga1e105cfe3c8e77f34cc6df3841deebbc">hwloc__insert_object_by_cpuset</a></div><div class="ttdeci">hwloc_obj_t hwloc__insert_object_by_cpuset(struct hwloc_topology *topology, hwloc_obj_t root, hwloc_obj_t obj, const char *reason)</div><div class="ttdoc">Add an object to the topology.</div></div>
<div class="ttc" id="aa00236_html_ga754b61041ceee9685534a2c5d3cd0156"><div class="ttname"><a href="a00236.html#ga754b61041ceee9685534a2c5d3cd0156">hwloc_obj_add_children_sets</a></div><div class="ttdeci">int hwloc_obj_add_children_sets(hwloc_obj_t obj)</div><div class="ttdoc">Setup object cpusets/nodesets by OR'ing its children.</div></div>
<div class="ttc" id="aa00236_html_gab527c1e0f243f057d31a724794ad9f88"><div class="ttname"><a href="a00236.html#gab527c1e0f243f057d31a724794ad9f88">hwloc_hide_errors</a></div><div class="ttdeci">int hwloc_hide_errors(void)</div><div class="ttdoc">Check whether insertion errors are hidden.</div></div>
<div class="ttc" id="aa00236_html_gac2eaed287bb215cf0bd33014e9e1d374"><div class="ttname"><a href="a00236.html#gac2eaed287bb215cf0bd33014e9e1d374">hwloc_plugin_check_namespace</a></div><div class="ttdeci">static int hwloc_plugin_check_namespace(const char *pluginname, const char *symbol)</div><div class="ttdoc">Make sure that plugins can lookup core symbols.</div><div class="ttdef"><b>Definition:</b> plugins.h:416</div></div>
<div class="ttc" id="aa00237_html_ga2f402a43025a8a91e8513be1a15e4635"><div class="ttname"><a href="a00237.html#ga2f402a43025a8a91e8513be1a15e4635">hwloc_filter_check_keep_object_type</a></div><div class="ttdeci">static int hwloc_filter_check_keep_object_type(hwloc_topology_t topology, hwloc_obj_type_t type)</div><div class="ttdoc">Check whether a non-I/O object type should be filtered-out.</div><div class="ttdef"><b>Definition:</b> plugins.h:495</div></div>
<div class="ttc" id="aa00237_html_ga4d2fdce071e5646ef147c9ff1539d1c9"><div class="ttname"><a href="a00237.html#ga4d2fdce071e5646ef147c9ff1539d1c9">hwloc_filter_check_keep_object</a></div><div class="ttdeci">static int hwloc_filter_check_keep_object(hwloc_topology_t topology, hwloc_obj_t obj)</div><div class="ttdoc">Check whether the given object should be filtered-out.</div><div class="ttdef"><b>Definition:</b> plugins.h:508</div></div>
<div class="ttc" id="aa00237_html_ga60203db6459ebf275bf48c40a37661a0"><div class="ttname"><a href="a00237.html#ga60203db6459ebf275bf48c40a37661a0">hwloc_filter_check_pcidev_subtype_important</a></div><div class="ttdeci">static int hwloc_filter_check_pcidev_subtype_important(unsigned classid)</div><div class="ttdoc">Check whether the given PCI device classid is important.</div><div class="ttdef"><b>Definition:</b> plugins.h:466</div></div>
<div class="ttc" id="aa00237_html_gac7d57a6d669820f360cf2a070a396560"><div class="ttname"><a href="a00237.html#gac7d57a6d669820f360cf2a070a396560">hwloc_filter_check_osdev_subtype_important</a></div><div class="ttdeci">static int hwloc_filter_check_osdev_subtype_important(hwloc_obj_osdev_type_t subtype)</div><div class="ttdoc">Check whether the given OS device subtype is important.</div><div class="ttdef"><b>Definition:</b> plugins.h:483</div></div>
<div class="ttc" id="aa00238_html_ga51d1ebcbf9729987c9d17df3aa57d209"><div class="ttname"><a href="a00238.html#ga51d1ebcbf9729987c9d17df3aa57d209">hwloc_pcidisc_find_linkspeed</a></div><div class="ttdeci">int hwloc_pcidisc_find_linkspeed(const unsigned char *config, unsigned offset, float *linkspeed)</div><div class="ttdoc">Fill linkspeed by reading the PCI config space where PCI_CAP_ID_EXP is at position offset.</div></div>
<div class="ttc" id="aa00238_html_ga6c55fb80c3d0c8c8e61078b3f38adde8"><div class="ttname"><a href="a00238.html#ga6c55fb80c3d0c8c8e61078b3f38adde8">hwloc_pcidisc_check_bridge_type</a></div><div class="ttdeci">hwloc_obj_type_t hwloc_pcidisc_check_bridge_type(unsigned device_class, const unsigned char *config)</div><div class="ttdoc">Return the hwloc object type (PCI device or Bridge) for the given class and configuration space.</div></div>
<div class="ttc" id="aa00238_html_ga706f71cfea09d547d2cbafa642d6e03b"><div class="ttname"><a href="a00238.html#ga706f71cfea09d547d2cbafa642d6e03b">hwloc_pcidisc_find_cap</a></div><div class="ttdeci">unsigned hwloc_pcidisc_find_cap(const unsigned char *config, unsigned cap)</div><div class="ttdoc">Return the offset of the given capability in the PCI config space buffer.</div></div>
<div class="ttc" id="aa00238_html_ga95acf6822a49447c11067d0b843965ba"><div class="ttname"><a href="a00238.html#ga95acf6822a49447c11067d0b843965ba">hwloc_pcidisc_find_bridge_buses</a></div><div class="ttdeci">int hwloc_pcidisc_find_bridge_buses(unsigned domain, unsigned bus, unsigned dev, unsigned func, unsigned *secondary_busp, unsigned *subordinate_busp, const unsigned char *config)</div><div class="ttdoc">Fills the attributes of the given PCI bridge using the given PCI config space.</div></div>
<div class="ttc" id="aa00238_html_gab76ddc4f55db8101ef0d44317965128c"><div class="ttname"><a href="a00238.html#gab76ddc4f55db8101ef0d44317965128c">hwloc_pcidisc_tree_insert_by_busid</a></div><div class="ttdeci">void hwloc_pcidisc_tree_insert_by_busid(struct hwloc_obj **treep, struct hwloc_obj *obj)</div><div class="ttdoc">Insert a PCI object in the given PCI tree by looking at PCI bus IDs.</div></div>
<div class="ttc" id="aa00238_html_gabda1d6c1799e50b9226f8a4da9bd29ea"><div class="ttname"><a href="a00238.html#gabda1d6c1799e50b9226f8a4da9bd29ea">hwloc_pcidisc_tree_attach</a></div><div class="ttdeci">int hwloc_pcidisc_tree_attach(struct hwloc_topology *topology, struct hwloc_obj *tree)</div><div class="ttdoc">Add some hostbridges on top of the given tree of PCI objects and attach them to the topology.</div></div>
<div class="ttc" id="aa00239_html_ga7964833550947636ab8975909de3fa98"><div class="ttname"><a href="a00239.html#ga7964833550947636ab8975909de3fa98">hwloc_pci_find_parent_by_busid</a></div><div class="ttdeci">struct hwloc_obj * hwloc_pci_find_parent_by_busid(struct hwloc_topology *topology, unsigned domain, unsigned bus, unsigned dev, unsigned func)</div><div class="ttdoc">Find the normal parent of a PCI bus ID.</div></div>
<div class="ttc" id="aa00244_html"><div class="ttname"><a href="a00244.html">hwloc_obj</a></div><div class="ttdoc">Structure of a topology object.</div><div class="ttdef"><b>Definition:</b> hwloc.h:395</div></div>
<div class="ttc" id="aa00244_html_acc4f0803f244867e68fe0036800be5de"><div class="ttname"><a href="a00244.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj::type</a></div><div class="ttdeci">hwloc_obj_type_t type</div><div class="ttdoc">Type of object.</div><div class="ttdef"><b>Definition:</b> hwloc.h:397</div></div>
<div class="ttc" id="aa00244_html_accd40e29f71f19e88db62ea3df02adc8"><div class="ttname"><a href="a00244.html#accd40e29f71f19e88db62ea3df02adc8">hwloc_obj::attr</a></div><div class="ttdeci">union hwloc_obj_attr_u * attr</div><div class="ttdoc">Object type-specific Attributes, may be NULL if no attribute value was found.</div><div class="ttdef"><b>Definition:</b> hwloc.h:414</div></div>
<div class="ttc" id="aa00248_html_a0b66da7ab072f7c016f8ed86701f5a7c"><div class="ttname"><a href="a00248.html#a0b66da7ab072f7c016f8ed86701f5a7c">hwloc_obj_attr_u::pcidev</a></div><div class="ttdeci">struct hwloc_obj_attr_u::hwloc_pcidev_attr_s pcidev</div></div>
<div class="ttc" id="aa00248_html_aaf7a5c38b5185703ff18c46ad2761dcf"><div class="ttname"><a href="a00248.html#aaf7a5c38b5185703ff18c46ad2761dcf">hwloc_obj_attr_u::osdev</a></div><div class="ttdeci">struct hwloc_obj_attr_u::hwloc_osdev_attr_s osdev</div></div>
<div class="ttc" id="aa00268_html_aee735352d9f1686fd290fc6d6397c334"><div class="ttname"><a href="a00268.html#aee735352d9f1686fd290fc6d6397c334">hwloc_obj_attr_u::hwloc_pcidev_attr_s::class_id</a></div><div class="ttdeci">unsigned short class_id</div><div class="ttdef"><b>Definition:</b> hwloc.h:639</div></div>
<div class="ttc" id="aa00288_html_a31e019e27e54ac6138d04be639bb96f9"><div class="ttname"><a href="a00288.html#a31e019e27e54ac6138d04be639bb96f9">hwloc_obj_attr_u::hwloc_osdev_attr_s::type</a></div><div class="ttdeci">hwloc_obj_osdev_type_t type</div><div class="ttdef"><b>Definition:</b> hwloc.h:665</div></div>
<div class="ttc" id="aa00372_html"><div class="ttname"><a href="a00372.html">hwloc_disc_component</a></div><div class="ttdoc">Discovery component structure.</div><div class="ttdef"><b>Definition:</b> plugins.h:38</div></div>
<div class="ttc" id="aa00372_html_a4064c3b5d9213027e87caebef380a840"><div class="ttname"><a href="a00372.html#a4064c3b5d9213027e87caebef380a840">hwloc_disc_component::name</a></div><div class="ttdeci">const char * name</div><div class="ttdoc">Name. If this component is built as a plugin, this name does not have to match the plugin filename.</div><div class="ttdef"><b>Definition:</b> plugins.h:42</div></div>
<div class="ttc" id="aa00372_html_a61ad3151efa02e3dbad5d919758f9c90"><div class="ttname"><a href="a00372.html#a61ad3151efa02e3dbad5d919758f9c90">hwloc_disc_component::phases</a></div><div class="ttdeci">unsigned phases</div><div class="ttdoc">Discovery phases performed by this component. OR'ed set of hwloc_disc_phase_t.</div><div class="ttdef"><b>Definition:</b> plugins.h:47</div></div>
<div class="ttc" id="aa00372_html_acbb9957914dbf7b8f504215aa0c8d3fe"><div class="ttname"><a href="a00372.html#acbb9957914dbf7b8f504215aa0c8d3fe">hwloc_disc_component::excluded_phases</a></div><div class="ttdeci">unsigned excluded_phases</div><div class="ttdoc">Component phases to exclude, as an OR'ed set of hwloc_disc_phase_t.</div><div class="ttdef"><b>Definition:</b> plugins.h:57</div></div>
<div class="ttc" id="aa00372_html_ace80cafe2b1732b047b3fc3da47e6517"><div class="ttname"><a href="a00372.html#ace80cafe2b1732b047b3fc3da47e6517">hwloc_disc_component::enabled_by_default</a></div><div class="ttdeci">unsigned enabled_by_default</div><div class="ttdoc">Enabled by default. If unset, if will be disabled unless explicitly requested.</div><div class="ttdef"><b>Definition:</b> plugins.h:81</div></div>
<div class="ttc" id="aa00372_html_ae86d283c272c5ae24073a235efbf6b59"><div class="ttname"><a href="a00372.html#ae86d283c272c5ae24073a235efbf6b59">hwloc_disc_component::priority</a></div><div class="ttdeci">unsigned priority</div><div class="ttdoc">Component priority. Used to sort topology->components, higher priority first. Also used to decide bet...</div><div class="ttdef"><b>Definition:</b> plugins.h:76</div></div>
<div class="ttc" id="aa00376_html"><div class="ttname"><a href="a00376.html">hwloc_disc_status</a></div><div class="ttdoc">Discovery status structure.</div><div class="ttdef"><b>Definition:</b> plugins.h:150</div></div>
<div class="ttc" id="aa00376_html_a0f95fa42d46a6e7cf8dee8af12afee3a"><div class="ttname"><a href="a00376.html#a0f95fa42d46a6e7cf8dee8af12afee3a">hwloc_disc_status::excluded_phases</a></div><div class="ttdeci">unsigned excluded_phases</div><div class="ttdoc">Dynamically excluded phases. If a component decides during discovery that some phases are no longer n...</div><div class="ttdef"><b>Definition:</b> plugins.h:159</div></div>
<div class="ttc" id="aa00376_html_abaf7c8c082d43e133171f0723dbf824b"><div class="ttname"><a href="a00376.html#abaf7c8c082d43e133171f0723dbf824b">hwloc_disc_status::phase</a></div><div class="ttdeci">hwloc_disc_phase_t phase</div><div class="ttdoc">The current discovery phase that is performed. Must match one of the phases in the component phases f...</div><div class="ttdef"><b>Definition:</b> plugins.h:154</div></div>
<div class="ttc" id="aa00376_html_ad8b123cecb945a9182eb824ccf8ef9d7"><div class="ttname"><a href="a00376.html#ad8b123cecb945a9182eb824ccf8ef9d7">hwloc_disc_status::flags</a></div><div class="ttdeci">unsigned long flags</div><div class="ttdoc">OR'ed set of hwloc_disc_status_flag_e.</div><div class="ttdef"><b>Definition:</b> plugins.h:162</div></div>
<div class="ttc" id="aa00380_html"><div class="ttname"><a href="a00380.html">hwloc_backend</a></div><div class="ttdoc">Discovery backend structure.</div><div class="ttdef"><b>Definition:</b> plugins.h:183</div></div>
<div class="ttc" id="aa00380_html_a2ea5bd36b7f06efdb65b98b32af16c68"><div class="ttname"><a href="a00380.html#a2ea5bd36b7f06efdb65b98b32af16c68">hwloc_backend::private_data</a></div><div class="ttdeci">void * private_data</div><div class="ttdoc">Backend private data, or NULL if none.</div><div class="ttdef"><b>Definition:</b> plugins.h:210</div></div>
<div class="ttc" id="aa00380_html_a36c4fa86350525b46340c67b802c69c7"><div class="ttname"><a href="a00380.html#a36c4fa86350525b46340c67b802c69c7">hwloc_backend::disable</a></div><div class="ttdeci">void(* disable)(struct hwloc_backend *backend)</div><div class="ttdoc">Callback for freeing the private_data. May be NULL.</div><div class="ttdef"><b>Definition:</b> plugins.h:214</div></div>
<div class="ttc" id="aa00380_html_aaa8eafe495aadd81c2e3c4ec527c10ba"><div class="ttname"><a href="a00380.html#aaa8eafe495aadd81c2e3c4ec527c10ba">hwloc_backend::flags</a></div><div class="ttdeci">unsigned long flags</div><div class="ttdoc">Backend flags, currently always 0.</div><div class="ttdef"><b>Definition:</b> plugins.h:199</div></div>
<div class="ttc" id="aa00380_html_aaac253491264c20930f44817270bc502"><div class="ttname"><a href="a00380.html#aaac253491264c20930f44817270bc502">hwloc_backend::get_pci_busid_cpuset</a></div><div class="ttdeci">int(* get_pci_busid_cpuset)(struct hwloc_backend *backend, struct hwloc_pcidev_attr_s *busid, hwloc_bitmap_t cpuset)</div><div class="ttdoc">Callback to retrieve the locality of a PCI object. Called by the PCI core when attaching PCI hierarch...</div><div class="ttdef"><b>Definition:</b> plugins.h:227</div></div>
<div class="ttc" id="aa00380_html_ab8806f6db077f1bb2e9d63ec99223f7a"><div class="ttname"><a href="a00380.html#ab8806f6db077f1bb2e9d63ec99223f7a">hwloc_backend::is_thissystem</a></div><div class="ttdeci">int is_thissystem</div><div class="ttdoc">Backend-specific 'is_thissystem' property. Set to 0 if the backend disables the thissystem flag for t...</div><div class="ttdef"><b>Definition:</b> plugins.h:207</div></div>
<div class="ttc" id="aa00380_html_accff2cd8404be43c3b44cec05e6f609b"><div class="ttname"><a href="a00380.html#accff2cd8404be43c3b44cec05e6f609b">hwloc_backend::discover</a></div><div class="ttdeci">int(* discover)(struct hwloc_backend *backend, struct hwloc_disc_status *status)</div><div class="ttdoc">Main discovery callback. returns -1 on error, either because it couldn't add its objects ot the exist...</div><div class="ttdef"><b>Definition:</b> plugins.h:221</div></div>
<div class="ttc" id="aa00380_html_aeca769840a6ff03e96462a9533adbccd"><div class="ttname"><a href="a00380.html#aeca769840a6ff03e96462a9533adbccd">hwloc_backend::phases</a></div><div class="ttdeci">unsigned phases</div><div class="ttdoc">Discovery phases performed by this component, possibly without some of them if excluded by other comp...</div><div class="ttdef"><b>Definition:</b> plugins.h:196</div></div>
<div class="ttc" id="aa00384_html"><div class="ttname"><a href="a00384.html">hwloc_component</a></div><div class="ttdoc">Generic component structure.</div><div class="ttdef"><b>Definition:</b> plugins.h:261</div></div>
<div class="ttc" id="aa00384_html_a3250bd6fc9713946991d805e48091b2e"><div class="ttname"><a href="a00384.html#a3250bd6fc9713946991d805e48091b2e">hwloc_component::abi</a></div><div class="ttdeci">unsigned abi</div><div class="ttdoc">Component ABI version, set to HWLOC_COMPONENT_ABI.</div><div class="ttdef"><b>Definition:</b> plugins.h:263</div></div>
<div class="ttc" id="aa00384_html_a4612015451a1c706e8ba19114cb8baae"><div class="ttname"><a href="a00384.html#a4612015451a1c706e8ba19114cb8baae">hwloc_component::finalize</a></div><div class="ttdeci">void(* finalize)(unsigned long flags)</div><div class="ttdoc">Process-wide component termination callback.</div><div class="ttdef"><b>Definition:</b> plugins.h:295</div></div>
<div class="ttc" id="aa00384_html_a4b8cffd1d943c29fdc102b841b8598d4"><div class="ttname"><a href="a00384.html#a4b8cffd1d943c29fdc102b841b8598d4">hwloc_component::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Component data, pointing to a struct hwloc_disc_component or struct hwloc_xml_component.</div><div class="ttdef"><b>Definition:</b> plugins.h:304</div></div>
<div class="ttc" id="aa00384_html_a789208ada7e17492cfd3a5a88a6bb0ee"><div class="ttname"><a href="a00384.html#a789208ada7e17492cfd3a5a88a6bb0ee">hwloc_component::type</a></div><div class="ttdeci">hwloc_component_type_t type</div><div class="ttdoc">Component type.</div><div class="ttdef"><b>Definition:</b> plugins.h:298</div></div>
<div class="ttc" id="aa00384_html_ab8043c5b4cc0e81aabba586ccb194335"><div class="ttname"><a href="a00384.html#ab8043c5b4cc0e81aabba586ccb194335">hwloc_component::flags</a></div><div class="ttdeci">unsigned long flags</div><div class="ttdoc">Component flags, unused for now.</div><div class="ttdef"><b>Definition:</b> plugins.h:301</div></div>
<div class="ttc" id="aa00384_html_aea613546886d9b8221cadba920fe3ebc"><div class="ttname"><a href="a00384.html#aea613546886d9b8221cadba920fe3ebc">hwloc_component::init</a></div><div class="ttdeci">int(* init)(unsigned long flags)</div><div class="ttdoc">Process-wide component initialization callback.</div><div class="ttdef"><b>Definition:</b> plugins.h:282</div></div>
</div><!-- fragment --></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.1
</small></address>
</body>
</html>
|