Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
doc
/
ruby
/
capi
/
html
/
de
/
d81
/
//opt/alt/ruby21/share/doc/ruby/capi/html/de/d81/dl_8h_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Ruby: ext/dl/dl.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">Ruby  <span id="projectnumber">2.1.10p492(2016-04-01revision54464)</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.14 --> <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_31cedd4509e06940f559c1ca2f722e02.html">ext</a></li><li class="navelem"><a class="el" href="../../dir_e9683733d4544b457a6fcc0f6908f54a.html">dl</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">dl.h</div> </div> </div><!--header--> <div class="contents"> <a href="../../de/d81/dl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef RUBY_DL_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define RUBY_DL_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include <<a class="code" href="../../d9/d3f/ruby_8h.html">ruby.h</a>></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#if !defined(FUNC_CDECL)</span></div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a392a524ce7b3e0b91a0e5fe95a43012f"> 7</a></span> <span class="preprocessor"># define FUNC_CDECL(x) x</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#if defined(HAVE_DLFCN_H)</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># include <dlfcn.h></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># </span><span class="comment">/* some stranger systems may not define all of these */</span><span class="preprocessor"></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef RTLD_LAZY</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define RTLD_LAZY 0</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef RTLD_GLOBAL</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define RTLD_GLOBAL 0</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef RTLD_NOW</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define RTLD_NOW 0</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</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"># if defined(_WIN32)</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># include <windows.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># define dlopen(name,flag) ((void)(flag),(void*)LoadLibrary(name))</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"># define dlerror() strerror(rb_w32_map_errno(GetLastError()))</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># define dlsym(handle,name) ((void*)GetProcAddress((handle),(name)))</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># define RTLD_LAZY -1</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># define RTLD_NOW -1</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># define RTLD_GLOBAL -1</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aac6c0d6a0e02c32b95cf070112fe590f"> 34</a></span> <span class="preprocessor">#define MAX_CALLBACK 5</span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#af10a15dcd3acfc6f67a1d81c21214ea8"> 35</a></span> <span class="preprocessor">#define DLSTACK_TYPE SIGNED_VALUE</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a4c5c02505d9ac495d8401abc11e52bc5"> 36</a></span> <span class="preprocessor">#define DLSTACK_SIZE (20)</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a08e9db0ef0fb81f00dfdefae6ecf8e80"> 37</a></span> <span class="preprocessor">#define DLSTACK_PROTO \</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"> DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a9b9204d8d79b68b843b01e5e439605b7"> 42</a></span> <span class="preprocessor">#define DLSTACK_ARGS(stack) \</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> (stack)[0],(stack)[1],(stack)[2],(stack)[3],(stack)[4],\</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"> (stack)[5],(stack)[6],(stack)[7],(stack)[8],(stack)[9],\</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"> (stack)[10],(stack)[11],(stack)[12],(stack)[13],(stack)[14],\</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"> (stack)[15],(stack)[16],(stack)[17],(stack)[18],(stack)[19]</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aa624b4f2015810abe4088cb755cfb382"> 48</a></span> <span class="preprocessor">#define DLSTACK_PROTO0_ void</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a061558cb3977a623bc561c354f873bb6"> 49</a></span> <span class="preprocessor">#define DLSTACK_PROTO1_ DLSTACK_TYPE</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a4f4a253243570017bf22f5f7a5662699"> 50</a></span> <span class="preprocessor">#define DLSTACK_PROTO2_ DLSTACK_PROTO1_, DLSTACK_TYPE</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a55a3496f1c9a735f6f4dd677ca577574"> 51</a></span> <span class="preprocessor">#define DLSTACK_PROTO3_ DLSTACK_PROTO2_, DLSTACK_TYPE</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#define DLSTACK_PROTO4_ DLSTACK_PROTO3_, DLSTACK_TYPE</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ab06c793a5033c327c0f16f2e5b07f73a"> 53</a></span> <span class="preprocessor">#define DLSTACK_PROTO4_ DLSTACK_PROTO3_, DLSTACK_TYPE</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a07fb8d137abedd8daddf0fa08e1224a7"> 54</a></span> <span class="preprocessor">#define DLSTACK_PROTO5_ DLSTACK_PROTO4_, DLSTACK_TYPE</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a4b3cb289fa8610f42af9d360ac91a2bf"> 55</a></span> <span class="preprocessor">#define DLSTACK_PROTO6_ DLSTACK_PROTO5_, DLSTACK_TYPE</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ab84d6b250fbda1ce8579ac0209054aed"> 56</a></span> <span class="preprocessor">#define DLSTACK_PROTO7_ DLSTACK_PROTO6_, DLSTACK_TYPE</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a0d3c7b72bc0c8e5bef102dcaafeeb897"> 57</a></span> <span class="preprocessor">#define DLSTACK_PROTO8_ DLSTACK_PROTO7_, DLSTACK_TYPE</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a3fc0af7d790428c827704b6745b10965"> 58</a></span> <span class="preprocessor">#define DLSTACK_PROTO9_ DLSTACK_PROTO8_, DLSTACK_TYPE</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae57cd135db4444537600ce0b5008079e"> 59</a></span> <span class="preprocessor">#define DLSTACK_PROTO10_ DLSTACK_PROTO9_, DLSTACK_TYPE</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a2b3b2e37e087008883e27be86365b8b7"> 60</a></span> <span class="preprocessor">#define DLSTACK_PROTO11_ DLSTACK_PROTO10_, DLSTACK_TYPE</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ac23b677914ea30de6b6f5d4189f4fcc2"> 61</a></span> <span class="preprocessor">#define DLSTACK_PROTO12_ DLSTACK_PROTO11_, DLSTACK_TYPE</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a8af4623832ca70930aef1df9806edf64"> 62</a></span> <span class="preprocessor">#define DLSTACK_PROTO13_ DLSTACK_PROTO12_, DLSTACK_TYPE</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#define DLSTACK_PROTO14_ DLSTACK_PROTO13_, DLSTACK_TYPE</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a54ebc9b87b453a0f40f9d99570bcb8b5"> 64</a></span> <span class="preprocessor">#define DLSTACK_PROTO14_ DLSTACK_PROTO13_, DLSTACK_TYPE</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a86e2d1058d101a27c88dda208a543652"> 65</a></span> <span class="preprocessor">#define DLSTACK_PROTO15_ DLSTACK_PROTO14_, DLSTACK_TYPE</span></div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a28433aafd668b63686df24229248e968"> 66</a></span> <span class="preprocessor">#define DLSTACK_PROTO16_ DLSTACK_PROTO15_, DLSTACK_TYPE</span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a38abf8219129476bd2bd0d3e4cf1d717"> 67</a></span> <span class="preprocessor">#define DLSTACK_PROTO17_ DLSTACK_PROTO16_, DLSTACK_TYPE</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a56c6f23f6d28170510ce069465649a5a"> 68</a></span> <span class="preprocessor">#define DLSTACK_PROTO18_ DLSTACK_PROTO17_, DLSTACK_TYPE</span></div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ab0fe8dfa34d1085c8370663f1612620d"> 69</a></span> <span class="preprocessor">#define DLSTACK_PROTO19_ DLSTACK_PROTO18_, DLSTACK_TYPE</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a811d32d076e8c1de01c3a6492996f61a"> 70</a></span> <span class="preprocessor">#define DLSTACK_PROTO20_ DLSTACK_PROTO19_, DLSTACK_TYPE</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">/*</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> * Add ",..." as the last argument.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * This is required for variable argument functions such</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> * as fprintf() on x86_64-linux.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> *</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * http://refspecs.linuxfoundation.org/elf/x86_64-abi-0.95.pdf</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> * page 19:</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> *</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> * For calls that may call functions that use varargs or stdargs</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> * (prototype-less calls or calls to functions containing ellipsis</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> * (...) in the declaration) %al is used as hidden argument to</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> * specify the number of SSE registers used.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> */</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a2d6444109f5443a95d4169965012d357"> 85</a></span> <span class="preprocessor">#define DLSTACK_PROTO0 void</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aefb28b0aa50376b5e22b5aa860058a92"> 86</a></span> <span class="preprocessor">#define DLSTACK_PROTO1 DLSTACK_PROTO1_, ...</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aec428a742419cf3204412cf5b6afa06e"> 87</a></span> <span class="preprocessor">#define DLSTACK_PROTO2 DLSTACK_PROTO2_, ...</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#af4471b9bc236ab4be44d07b59b14997f"> 88</a></span> <span class="preprocessor">#define DLSTACK_PROTO3 DLSTACK_PROTO3_, ...</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#define DLSTACK_PROTO4 DLSTACK_PROTO4_, ...</span></div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a720d5b4fa4f9490d6f65a47719caf39e"> 90</a></span> <span class="preprocessor">#define DLSTACK_PROTO4 DLSTACK_PROTO4_, ...</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a1c921cf6eaa5648007ed5d341ea686fe"> 91</a></span> <span class="preprocessor">#define DLSTACK_PROTO5 DLSTACK_PROTO5_, ...</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aaab45dc19e4ab1796500455af9a6de63"> 92</a></span> <span class="preprocessor">#define DLSTACK_PROTO6 DLSTACK_PROTO6_, ...</span></div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a7532f9dfbc0842037679eb581000d225"> 93</a></span> <span class="preprocessor">#define DLSTACK_PROTO7 DLSTACK_PROTO7_, ...</span></div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ad41252dcb67e22822ad257b30b4ff6f2"> 94</a></span> <span class="preprocessor">#define DLSTACK_PROTO8 DLSTACK_PROTO8_, ...</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ab4987fc786cf5fe11410a844804d4eee"> 95</a></span> <span class="preprocessor">#define DLSTACK_PROTO9 DLSTACK_PROTO9_, ...</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#af12f07afef111fbd54e051fab7370e28"> 96</a></span> <span class="preprocessor">#define DLSTACK_PROTO10 DLSTACK_PROTO10_, ...</span></div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aa90f501f9f8deff5436c0b875ce58202"> 97</a></span> <span class="preprocessor">#define DLSTACK_PROTO11 DLSTACK_PROTO11_, ...</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#af8fd8de60a6d38d8cda69952cf5d86dc"> 98</a></span> <span class="preprocessor">#define DLSTACK_PROTO12 DLSTACK_PROTO12_, ...</span></div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a716ccc08d14134220e234ec4ac707962"> 99</a></span> <span class="preprocessor">#define DLSTACK_PROTO13 DLSTACK_PROTO13_, ...</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#define DLSTACK_PROTO14 DLSTACK_PROTO14_, ...</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a14fd989c0546198a2bd668ca7b1d3f30"> 101</a></span> <span class="preprocessor">#define DLSTACK_PROTO14 DLSTACK_PROTO14_, ...</span></div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a502dc1b09a25de8ee085d5496305229e"> 102</a></span> <span class="preprocessor">#define DLSTACK_PROTO15 DLSTACK_PROTO15_, ...</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a16899ee591cdbf19d33951a79c075e6a"> 103</a></span> <span class="preprocessor">#define DLSTACK_PROTO16 DLSTACK_PROTO16_, ...</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a6e14cbd0fbcdd860474f331fef008be9"> 104</a></span> <span class="preprocessor">#define DLSTACK_PROTO17 DLSTACK_PROTO17_, ...</span></div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a759b41bcb2616416fa9e7d19c47771b7"> 105</a></span> <span class="preprocessor">#define DLSTACK_PROTO18 DLSTACK_PROTO18_, ...</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ade57abb084398d2ae8c092fa40b9ad92"> 106</a></span> <span class="preprocessor">#define DLSTACK_PROTO19 DLSTACK_PROTO19_, ...</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a6c6d483dc2c848676e3d2f41a113c854"> 107</a></span> <span class="preprocessor">#define DLSTACK_PROTO20 DLSTACK_PROTO20_, ...</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a37ab979a25cf5b26832c12a1254a8c3b"> 109</a></span> <span class="preprocessor">#define DLSTACK_ARGS0(stack)</span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#acbcd09438622abba4e85b0164852e2aa"> 110</a></span> <span class="preprocessor">#define DLSTACK_ARGS1(stack) (stack)[0]</span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a0c3d130d89d999d6a18713e40544b300"> 111</a></span> <span class="preprocessor">#define DLSTACK_ARGS2(stack) DLSTACK_ARGS1(stack), (stack)[1]</span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a120dcd17de09c5e61c71c41ddb4a1cc5"> 112</a></span> <span class="preprocessor">#define DLSTACK_ARGS3(stack) DLSTACK_ARGS2(stack), (stack)[2]</span></div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ad8b4239c88e2dad4d4f191af8ec036a7"> 113</a></span> <span class="preprocessor">#define DLSTACK_ARGS4(stack) DLSTACK_ARGS3(stack), (stack)[3]</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a7a6ad4af992ec8a1d8b395a3b93b3ade"> 114</a></span> <span class="preprocessor">#define DLSTACK_ARGS5(stack) DLSTACK_ARGS4(stack), (stack)[4]</span></div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a52573575581105f18df060ab2255a9f1"> 115</a></span> <span class="preprocessor">#define DLSTACK_ARGS6(stack) DLSTACK_ARGS5(stack), (stack)[5]</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a174838263fe6a4a4cf8ae5542c7eab1d"> 116</a></span> <span class="preprocessor">#define DLSTACK_ARGS7(stack) DLSTACK_ARGS6(stack), (stack)[6]</span></div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a1b5de3ef80ce90afc4ddb862502b8262"> 117</a></span> <span class="preprocessor">#define DLSTACK_ARGS8(stack) DLSTACK_ARGS7(stack), (stack)[7]</span></div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#adc06dfd68d8a73d8d76ab99b130d91d1"> 118</a></span> <span class="preprocessor">#define DLSTACK_ARGS9(stack) DLSTACK_ARGS8(stack), (stack)[8]</span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a2098c67f3d5f10e75134af45cb653c49"> 119</a></span> <span class="preprocessor">#define DLSTACK_ARGS10(stack) DLSTACK_ARGS9(stack), (stack)[9]</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae6b09c9d398397d868a0fa620c26bcdf"> 120</a></span> <span class="preprocessor">#define DLSTACK_ARGS11(stack) DLSTACK_ARGS10(stack), (stack)[10]</span></div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a67b56db74630ca7b3c8f98d2de20f4d7"> 121</a></span> <span class="preprocessor">#define DLSTACK_ARGS12(stack) DLSTACK_ARGS11(stack), (stack)[11]</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae94ba2e3ac3f18d304b421e6ab57f7ed"> 122</a></span> <span class="preprocessor">#define DLSTACK_ARGS13(stack) DLSTACK_ARGS12(stack), (stack)[12]</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a1d6643b0de4513d9fdbb8d3a5546741f"> 123</a></span> <span class="preprocessor">#define DLSTACK_ARGS14(stack) DLSTACK_ARGS13(stack), (stack)[13]</span></div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a0fc47a360d2adbd22b13571ff4efb9cb"> 124</a></span> <span class="preprocessor">#define DLSTACK_ARGS15(stack) DLSTACK_ARGS14(stack), (stack)[14]</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a5f458e2cb4547ce9d0a0fe4945378da7"> 125</a></span> <span class="preprocessor">#define DLSTACK_ARGS16(stack) DLSTACK_ARGS15(stack), (stack)[15]</span></div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a18a5abafbcc50167916dd413476f20bd"> 126</a></span> <span class="preprocessor">#define DLSTACK_ARGS17(stack) DLSTACK_ARGS16(stack), (stack)[16]</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a6dfb907b3d6966265696a9bf910d5425"> 127</a></span> <span class="preprocessor">#define DLSTACK_ARGS18(stack) DLSTACK_ARGS17(stack), (stack)[17]</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a2c0dd284bee3e8048107ad085408367f"> 128</a></span> <span class="preprocessor">#define DLSTACK_ARGS19(stack) DLSTACK_ARGS18(stack), (stack)[18]</span></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae8c2a03f37fdbcd3e26658dc60314688"> 129</a></span> <span class="preprocessor">#define DLSTACK_ARGS20(stack) DLSTACK_ARGS19(stack), (stack)[19]</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#abd16b5eaf282e1bc9722984c3c1b0c6d">rb_mDL</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#ad4ae70774b793148692fa325f658711a">rb_cDLHandle</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#ac3a8db01d78ac7cead34198e53b72281">rb_cDLSymbol</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#a863fd0408ea0599b3be123b24912e249">rb_eDLError</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#ab2463071c50e78dc594888799bf070a3">rb_eDLTypeError</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a99648eb3676d0b28dc5fbb55988aaf10"> 137</a></span> <span class="preprocessor">#define ALIGN_OF(type) offsetof(struct {char align_c; type align_x;}, align_x)</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#addcbec4cfa847c1327a404b13a5e2723"> 139</a></span> <span class="preprocessor">#define ALIGN_VOIDP ALIGN_OF(void*)</span></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ab5c5f8a660cfdc3b2e064af3c6af4773"> 140</a></span> <span class="preprocessor">#define ALIGN_SHORT ALIGN_OF(short)</span></div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a9dfa0cc58d3eab4ed437570dec42fee3"> 141</a></span> <span class="preprocessor">#define ALIGN_CHAR ALIGN_OF(char)</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#af1ef7f352cf9f350b0004cc0110b9e23"> 142</a></span> <span class="preprocessor">#define ALIGN_INT ALIGN_OF(int)</span></div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#aa173dff6a214bde78ec04f8f3e60664c"> 143</a></span> <span class="preprocessor">#define ALIGN_LONG ALIGN_OF(long)</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#if HAVE_LONG_LONG</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#define ALIGN_LONG_LONG ALIGN_OF(LONG_LONG)</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ac193cb876f0605c1210524fe93c68509"> 147</a></span> <span class="preprocessor">#define ALIGN_FLOAT ALIGN_OF(float)</span></div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a4fcc962bf451b366e6a3668f9ca2da94"> 148</a></span> <span class="preprocessor">#define ALIGN_DOUBLE ALIGN_OF(double)</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a352f2ae2cc4f7d774fc6375ca23bffdc"> 150</a></span> <span class="preprocessor">#define DLALIGN(ptr,offset,align) \</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"> ((offset) += ((align) - ((uintptr_t)((char *)(ptr) + (offset))) % (align)) % (align))</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ad21088f148d36031ae671d32c38e54cb"> 154</a></span> <span class="preprocessor">#define DLTYPE_VOID 0</span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae35b1f0895d8892e3e852a98a7f25562"> 155</a></span> <span class="preprocessor">#define DLTYPE_VOIDP 1</span></div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae4374269fd7ca3aa1729b47566ca61ce"> 156</a></span> <span class="preprocessor">#define DLTYPE_CHAR 2</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a55f7aa934c2ba10179aefc6fe16d23fd"> 157</a></span> <span class="preprocessor">#define DLTYPE_SHORT 3</span></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a320798613603393ae455601b13512d94"> 158</a></span> <span class="preprocessor">#define DLTYPE_INT 4</span></div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a362ec8dc043bd78871eacabcca3314cb"> 159</a></span> <span class="preprocessor">#define DLTYPE_LONG 5</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#if HAVE_LONG_LONG</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#define DLTYPE_LONG_LONG 6</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a38a478aecdb6eef575ad3fc1d7f41b21"> 163</a></span> <span class="preprocessor">#define DLTYPE_FLOAT 7</span></div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a3438079b431d2ca4839470d741052cba"> 164</a></span> <span class="preprocessor">#define DLTYPE_DOUBLE 8</span></div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a0a7bf71350fe6c44e5ad4962df6e3846"> 165</a></span> <span class="preprocessor">#define MAX_DLTYPE 9</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#if SIZEOF_VOIDP == SIZEOF_LONG</span></div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a60974635e5706a1686a0443d28f7451f"> 168</a></span> <span class="preprocessor"># define PTR2NUM(x) (ULONG2NUM((unsigned long)(x)))</span></div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a1bfda858388d9fde65ce0debd0b6879c"> 169</a></span> <span class="preprocessor"># define NUM2PTR(x) ((void*)(NUM2ULONG(x)))</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">/* # error --->> Ruby/DL2 requires sizeof(void*) == sizeof(long) to be compiled. <<--- */</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"># define PTR2NUM(x) (ULL2NUM((unsigned long long)(x)))</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"># define NUM2PTR(x) ((void*)(NUM2ULL(x)))</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a31d73f263707a4d211b66b3a155c71c3"> 176</a></span> <span class="preprocessor">#define BOOL2INT(x) (((x) == Qtrue)?1:0)</span></div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#a941bc23b1e134258b2d4a13a928376f4"> 177</a></span> <span class="preprocessor">#define INT2BOOL(x) ((x)?Qtrue:Qfalse)</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e"> 179</a></span> <span class="keyword">typedef</span> void (*<a class="code" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a>)(<span class="keywordtype">void</span>*);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="../../d5/d6f/structdl__handle.html"> 181</a></span> <span class="keyword">struct </span><a class="code" href="../../d5/d6f/structdl__handle.html">dl_handle</a> {</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="../../d5/d6f/structdl__handle.html#ad461ca4a9905a49bfcd9bb66c7609d7d"> 182</a></span>  <span class="keywordtype">void</span> *<a class="code" href="../../d5/d6f/structdl__handle.html#ad461ca4a9905a49bfcd9bb66c7609d7d">ptr</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="../../d5/d6f/structdl__handle.html#a51d9b179c7d8a3950ff5d599b577170f"> 183</a></span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/d6f/structdl__handle.html#a51d9b179c7d8a3950ff5d599b577170f">open</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="../../d5/d6f/structdl__handle.html#af1ff66f5e1080fb55484098dd953dfbf"> 184</a></span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/d6f/structdl__handle.html#af1ff66f5e1080fb55484098dd953dfbf">enable_close</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> };</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html"> 188</a></span> <span class="keyword">struct </span><a class="code" href="../../d2/d2b/structcfunc__data.html">cfunc_data</a> {</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html#aa57e22d27d10bbb78eae2cd4e115ab47"> 189</a></span>  <span class="keywordtype">void</span> *<a class="code" href="../../d2/d2b/structcfunc__data.html#aa57e22d27d10bbb78eae2cd4e115ab47">ptr</a>;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html#ac03bc6811d60d2bc18561bbbfe9424e1"> 190</a></span>  <span class="keywordtype">char</span> *<a class="code" href="../../d2/d2b/structcfunc__data.html#ac03bc6811d60d2bc18561bbbfe9424e1">name</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html#a0517ceb030433baa19944e940ef08445"> 191</a></span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d2b/structcfunc__data.html#a0517ceb030433baa19944e940ef08445">type</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html#a4c71250861743f38c36ce04645f60fe8"> 192</a></span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <a class="code" href="../../d2/d2b/structcfunc__data.html#a4c71250861743f38c36ce04645f60fe8">calltype</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="../../d2/d2b/structcfunc__data.html#a6dc7e1174a46ec7cfee2587dc218e0a7"> 193</a></span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d2/d2b/structcfunc__data.html#a6dc7e1174a46ec7cfee2587dc218e0a7">wrap</a>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <a class="code" href="../../de/d81/dl_8h.html#a05d4b52bfcf3d1247f65b1f50c98e715">rbdl_id_cdecl</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <a class="code" href="../../de/d81/dl_8h.html#a758e568959188a34a75c3068107d8919">rbdl_id_stdcall</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae595cfe478cbafe152fcec2f74f59396"> 197</a></span> <span class="preprocessor">#define CFUNC_CDECL (rbdl_id_cdecl)</span></div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#afe57a0f3a624254a8d1ac3b232309566"> 198</a></span> <span class="preprocessor">#define CFUNC_STDCALL (rbdl_id_stdcall)</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="../../d7/dfb/structptr__data.html"> 200</a></span> <span class="keyword">struct </span><a class="code" href="../../d7/dfb/structptr__data.html">ptr_data</a> {</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="../../d7/dfb/structptr__data.html#accd600148264eb0208d5d44f12ea2ca9"> 201</a></span>  <span class="keywordtype">void</span> *<a class="code" href="../../d7/dfb/structptr__data.html#accd600148264eb0208d5d44f12ea2ca9">ptr</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="../../d7/dfb/structptr__data.html#a6c26a027b2093e93e1ca01fe160f981b"> 202</a></span>  <span class="keywordtype">long</span> <a class="code" href="../../d7/dfb/structptr__data.html#a6c26a027b2093e93e1ca01fe160f981b">size</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="../../d7/dfb/structptr__data.html#a5bc2ccdb2623c7bf1d961b3c4c0bad6b"> 203</a></span>  <a class="code" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a> <a class="code" href="../../d7/dfb/structptr__data.html#a5bc2ccdb2623c7bf1d961b3c4c0bad6b">free</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="../../d7/dfb/structptr__data.html#a827b2c5346f20d7ef226194fdd57ee39"> 204</a></span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d7/dfb/structptr__data.html#a827b2c5346f20d7ef226194fdd57ee39">wrap</a>[2];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> };</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#abf6b19b5ed683625f86e296dd5301ca9"> 207</a></span> <span class="preprocessor">#define RDL_HANDLE(obj) ((struct dl_handle *)(DATA_PTR(obj)))</span></div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#adc6657e769124cd431dd70c77bcb4411"> 208</a></span> <span class="preprocessor">#define RCFUNC_DATA(obj) ((struct cfunc_data *)(DATA_PTR(obj)))</span></div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="../../de/d81/dl_8h.html#ae7304d8e526917de4a71aa9d0a9cae2a"> 209</a></span> <span class="preprocessor">#define RPTR_DATA(obj) ((struct ptr_data *)(DATA_PTR(obj)))</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#aa8265009198dd3ebcbca99444fa698c6">rb_dlcfunc_new</a>(<span class="keywordtype">void</span> (*<a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>)(), <span class="keywordtype">int</span> dltype, <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> calltype);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">int</span> <a class="code" href="../../de/d81/dl_8h.html#a859cdb6338aea412530a565c02d889d1">rb_dlcfunc_kind_p</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#a7bf10a9f9352dd96e21d1336af070820">rb_dlptr_new</a>(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">long</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>, <a class="code" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a> <a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#ac3e3fd5ab0b039d03901cd20f86d7b82">rb_dlptr_new2</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass, <span class="keywordtype">void</span> *ptr, <span class="keywordtype">long</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>, <a class="code" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a> <a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/d81/dl_8h.html#a4f3fda50f9707dfcaae097239361d6df">rb_dlptr_malloc</a>(<span class="keywordtype">long</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>, <a class="code" href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a> <a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="dl_8h_html_a4f3fda50f9707dfcaae097239361d6df"><div class="ttname"><a href="../../de/d81/dl_8h.html#a4f3fda50f9707dfcaae097239361d6df">rb_dlptr_malloc</a></div><div class="ttdeci">VALUE rb_dlptr_malloc(long size, freefunc_t func)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d8e/cptr_8c_source.html#l00089">cptr.c:89</a></div></div> <div class="ttc" id="structptr__data_html_a5bc2ccdb2623c7bf1d961b3c4c0bad6b"><div class="ttname"><a href="../../d7/dfb/structptr__data.html#a5bc2ccdb2623c7bf1d961b3c4c0bad6b">ptr_data::free</a></div><div class="ttdeci">freefunc_t free</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00203">dl.h:203</a></div></div> <div class="ttc" id="structdl__handle_html_a51d9b179c7d8a3950ff5d599b577170f"><div class="ttname"><a href="../../d5/d6f/structdl__handle.html#a51d9b179c7d8a3950ff5d599b577170f">dl_handle::open</a></div><div class="ttdeci">int open</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00183">dl.h:183</a></div></div> <div class="ttc" id="structdl__handle_html"><div class="ttname"><a href="../../d5/d6f/structdl__handle.html">dl_handle</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00181">dl.h:181</a></div></div> <div class="ttc" id="structcfunc__data_html_ac03bc6811d60d2bc18561bbbfe9424e1"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html#ac03bc6811d60d2bc18561bbbfe9424e1">cfunc_data::name</a></div><div class="ttdeci">char * name</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00190">dl.h:190</a></div></div> <div class="ttc" id="ruby_8h_html"><div class="ttname"><a href="../../d9/d3f/ruby_8h.html">ruby.h</a></div></div> <div class="ttc" id="ossl__ssl_8c_html_a86771351f4ef469ab9c94739a64fd7ea"><div class="ttname"><a href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a></div><div class="ttdeci">SSL_METHOD *(* func)(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dd1/ossl__ssl_8c_source.html#l00113">ossl_ssl.c:113</a></div></div> <div class="ttc" id="structptr__data_html_a827b2c5346f20d7ef226194fdd57ee39"><div class="ttname"><a href="../../d7/dfb/structptr__data.html#a827b2c5346f20d7ef226194fdd57ee39">ptr_data::wrap</a></div><div class="ttdeci">VALUE wrap[2]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00204">dl.h:204</a></div></div> <div class="ttc" id="structptr__data_html_accd600148264eb0208d5d44f12ea2ca9"><div class="ttname"><a href="../../d7/dfb/structptr__data.html#accd600148264eb0208d5d44f12ea2ca9">ptr_data::ptr</a></div><div class="ttdeci">void * ptr</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00201">dl.h:201</a></div></div> <div class="ttc" id="dl_8h_html_a859cdb6338aea412530a565c02d889d1"><div class="ttname"><a href="../../de/d81/dl_8h.html#a859cdb6338aea412530a565c02d889d1">rb_dlcfunc_kind_p</a></div><div class="ttdeci">int rb_dlcfunc_kind_p(VALUE func)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/df8/cfunc_8c_source.html#l00139">cfunc.c:139</a></div></div> <div class="ttc" id="dl_8h_html_abd16b5eaf282e1bc9722984c3c1b0c6d"><div class="ttname"><a href="../../de/d81/dl_8h.html#abd16b5eaf282e1bc9722984c3c1b0c6d">rb_mDL</a></div><div class="ttdeci">VALUE rb_mDL</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d7a/dl_8c_source.html#l00013">dl.c:13</a></div></div> <div class="ttc" id="structcfunc__data_html_a0517ceb030433baa19944e940ef08445"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html#a0517ceb030433baa19944e940ef08445">cfunc_data::type</a></div><div class="ttdeci">int type</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00191">dl.h:191</a></div></div> <div class="ttc" id="dl_8h_html_a7bf10a9f9352dd96e21d1336af070820"><div class="ttname"><a href="../../de/d81/dl_8h.html#a7bf10a9f9352dd96e21d1336af070820">rb_dlptr_new</a></div><div class="ttdeci">VALUE rb_dlptr_new(void *ptr, long size, freefunc_t func)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d8e/cptr_8c_source.html#l00083">cptr.c:83</a></div></div> <div class="ttc" id="structdl__handle_html_af1ff66f5e1080fb55484098dd953dfbf"><div class="ttname"><a href="../../d5/d6f/structdl__handle.html#af1ff66f5e1080fb55484098dd953dfbf">dl_handle::enable_close</a></div><div class="ttdeci">int enable_close</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00184">dl.h:184</a></div></div> <div class="ttc" id="dl_8h_html_ac3e3fd5ab0b039d03901cd20f86d7b82"><div class="ttname"><a href="../../de/d81/dl_8h.html#ac3e3fd5ab0b039d03901cd20f86d7b82">rb_dlptr_new2</a></div><div class="ttdeci">VALUE rb_dlptr_new2(VALUE klass, void *ptr, long size, freefunc_t func)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d8e/cptr_8c_source.html#l00068">cptr.c:68</a></div></div> <div class="ttc" id="structcfunc__data_html"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html">cfunc_data</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00188">dl.h:188</a></div></div> <div class="ttc" id="structptr__data_html"><div class="ttname"><a href="../../d7/dfb/structptr__data.html">ptr_data</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00200">dl.h:200</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_afa5b9137f051ac26d7ccc8824f178233"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a></div><div class="ttdeci">unsigned long ID</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00089">ruby.h:89</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3c1d4bfc6a81af60bdcb48744c35f760"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="ttdeci">unsigned long VALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00088">ruby.h:88</a></div></div> <div class="ttc" id="dl_8h_html_a863fd0408ea0599b3be123b24912e249"><div class="ttname"><a href="../../de/d81/dl_8h.html#a863fd0408ea0599b3be123b24912e249">rb_eDLError</a></div><div class="ttdeci">VALUE rb_eDLError</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d7a/dl_8c_source.html#l00014">dl.c:14</a></div></div> <div class="ttc" id="encoding_8c_html_a439227feff9d7f55384e8780cfc2eb82"><div class="ttname"><a href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/db5/encoding_8c_source.html#l00049">encoding.c:49</a></div></div> <div class="ttc" id="structcfunc__data_html_aa57e22d27d10bbb78eae2cd4e115ab47"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html#aa57e22d27d10bbb78eae2cd4e115ab47">cfunc_data::ptr</a></div><div class="ttdeci">void * ptr</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00189">dl.h:189</a></div></div> <div class="ttc" id="dl_8h_html_a05d4b52bfcf3d1247f65b1f50c98e715"><div class="ttname"><a href="../../de/d81/dl_8h.html#a05d4b52bfcf3d1247f65b1f50c98e715">rbdl_id_cdecl</a></div><div class="ttdeci">ID rbdl_id_cdecl</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d7a/dl_8c_source.html#l00017">dl.c:17</a></div></div> <div class="ttc" id="structcfunc__data_html_a6dc7e1174a46ec7cfee2587dc218e0a7"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html#a6dc7e1174a46ec7cfee2587dc218e0a7">cfunc_data::wrap</a></div><div class="ttdeci">VALUE wrap</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00193">dl.h:193</a></div></div> <div class="ttc" id="dl_8h_html_ab2463071c50e78dc594888799bf070a3"><div class="ttname"><a href="../../de/d81/dl_8h.html#ab2463071c50e78dc594888799bf070a3">rb_eDLTypeError</a></div><div class="ttdeci">VALUE rb_eDLTypeError</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d7a/dl_8c_source.html#l00015">dl.c:15</a></div></div> <div class="ttc" id="dl_8h_html_aa8265009198dd3ebcbca99444fa698c6"><div class="ttname"><a href="../../de/d81/dl_8h.html#aa8265009198dd3ebcbca99444fa698c6">rb_dlcfunc_new</a></div><div class="ttdeci">VALUE rb_dlcfunc_new(void(*func)(), int dltype, const char *name, ID calltype)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/df8/cfunc_8c_source.html#l00084">cfunc.c:84</a></div></div> <div class="ttc" id="nkf-utf8_2nkf_8c_html_a8f8f80d37794cde9472343e4487ba3eb"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00208">nkf.c:208</a></div></div> <div class="ttc" id="dl_8h_html_ad4ae70774b793148692fa325f658711a"><div class="ttname"><a href="../../de/d81/dl_8h.html#ad4ae70774b793148692fa325f658711a">rb_cDLHandle</a></div><div class="ttdeci">VALUE rb_cDLHandle</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d91/dl_2handle_8c_source.html#l00010">handle.c:10</a></div></div> <div class="ttc" id="structdl__handle_html_ad461ca4a9905a49bfcd9bb66c7609d7d"><div class="ttname"><a href="../../d5/d6f/structdl__handle.html#ad461ca4a9905a49bfcd9bb66c7609d7d">dl_handle::ptr</a></div><div class="ttdeci">void * ptr</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00182">dl.h:182</a></div></div> <div class="ttc" id="dl_8h_html_ac3a8db01d78ac7cead34198e53b72281"><div class="ttname"><a href="../../de/d81/dl_8h.html#ac3a8db01d78ac7cead34198e53b72281">rb_cDLSymbol</a></div><div class="ttdeci">VALUE rb_cDLSymbol</div></div> <div class="ttc" id="dl_8h_html_a758e568959188a34a75c3068107d8919"><div class="ttname"><a href="../../de/d81/dl_8h.html#a758e568959188a34a75c3068107d8919">rbdl_id_stdcall</a></div><div class="ttdeci">ID rbdl_id_stdcall</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d7a/dl_8c_source.html#l00018">dl.c:18</a></div></div> <div class="ttc" id="structptr__data_html_a6c26a027b2093e93e1ca01fe160f981b"><div class="ttname"><a href="../../d7/dfb/structptr__data.html#a6c26a027b2093e93e1ca01fe160f981b">ptr_data::size</a></div><div class="ttdeci">long size</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00202">dl.h:202</a></div></div> <div class="ttc" id="dl_8h_html_ad9ea42f1a4bf2086d7cc0162dbe0777e"><div class="ttname"><a href="../../de/d81/dl_8h.html#ad9ea42f1a4bf2086d7cc0162dbe0777e">freefunc_t</a></div><div class="ttdeci">void(* freefunc_t)(void *)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00179">dl.h:179</a></div></div> <div class="ttc" id="structcfunc__data_html_a4c71250861743f38c36ce04645f60fe8"><div class="ttname"><a href="../../d2/d2b/structcfunc__data.html#a4c71250861743f38c36ce04645f60fe8">cfunc_data::calltype</a></div><div class="ttdeci">ID calltype</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d81/dl_8h_source.html#l00192">dl.h:192</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="../../doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>