• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<title>libmangle: include/libmangle.h File Reference</title>
6<link href="tabs.css" rel="stylesheet" type="text/css"/>
7<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8</head>
9<body>
10<!-- Generated by Doxygen 1.6.1 -->
11<div class="navigation" id="top">
12  <div class="tabs">
13    <ul>
14      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
15      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
16      <li class="current"><a href="files.html"><span>Files</span></a></li>
17    </ul>
18  </div>
19  <div class="tabs">
20    <ul>
21      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
22      <li><a href="globals.html"><span>Globals</span></a></li>
23    </ul>
24  </div>
25</div>
26<div class="contents">
27<h1>include/libmangle.h File Reference</h1>
28<p><a href="libmangle_8h_source.html">Go to the source code of this file.</a></p>
29<table border="0" cellpadding="0" cellspacing="0">
30<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
31<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a></td></tr>
32<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
33<tr><td class="memItemLeft" align="right" valign="top">typedef void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#af17e2fe323e27ccf4827813ee0c8612e">libmangle_gc_t</a></td></tr>
34<tr><td class="memItemLeft" align="right" valign="top">typedef void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a></td></tr>
35<tr><td colspan="2"><h2>Functions</h2></td></tr>
36<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc</a> (<a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *gc)</td></tr>
37<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#a54257a43469abe9c5f9556a1913bbf2f">libmangle_generate_gc</a> (void)</td></tr>
38<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#ab22601869037438e47eca7186a4cef65">libmangle_dump_tok</a> (FILE *fp, <a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> p)</td></tr>
39<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#a2c4d83f71d35e434250eb2779e29ef29">libmangle_print_decl</a> (FILE *fp, <a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> p)</td></tr>
40<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#abf4af1b2e483a32beb147474853e696b">libmangle_sprint_decl</a> (<a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> r)</td></tr>
41<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#a14ff3e5c3309017dc99459ef1ffef582">libmangle_decode_ms_name</a> (<a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *gc, const char *name)</td></tr>
42<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#ad6e58fecfca8cc312a2b09a44e3748fb">libmangle_encode_ms_name</a> (<a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *gc, <a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> tok)</td></tr>
43</table>
44<hr/><h2>Typedef Documentation</h2>
45<a class="anchor" id="af17e2fe323e27ccf4827813ee0c8612e"></a><!-- doxytag: member="libmangle.h::libmangle_gc_t" ref="af17e2fe323e27ccf4827813ee0c8612e" args="" -->
46<div class="memitem">
47<div class="memproto">
48      <table class="memname">
49        <tr>
50          <td class="memname">typedef void* <a class="el" href="libmangle_8h.html#af17e2fe323e27ccf4827813ee0c8612e">libmangle_gc_t</a></td>
51        </tr>
52      </table>
53</div>
54<div class="memdoc">
55<p>Garbage collector elements. Tracks allocated memory and points to the next element from the same context. Opaque structure. </p>
56<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> </dd></dl>
57
58</div>
59</div>
60<a class="anchor" id="a7c9c7d368eb1f52cac14457766a01cc7"></a><!-- doxytag: member="libmangle.h::libmangle_tokens_t" ref="a7c9c7d368eb1f52cac14457766a01cc7" args="" -->
61<div class="memitem">
62<div class="memproto">
63      <table class="memname">
64        <tr>
65          <td class="memname">typedef void* <a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a></td>
66        </tr>
67      </table>
68</div>
69<div class="memdoc">
70<p>Generic token instances. Type of token determined by base descriptor in members. Opaque structure. </p>
71<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="m__token_8c.html#a3d90ad7945dc89f63c39837ee512fd85">gen_tok()</a> </dd></dl>
72
73</div>
74</div>
75<hr/><h2>Function Documentation</h2>
76<a class="anchor" id="a14ff3e5c3309017dc99459ef1ffef582"></a><!-- doxytag: member="libmangle.h::libmangle_decode_ms_name" ref="a14ff3e5c3309017dc99459ef1ffef582" args="(libmangle_gc_context_t *gc, const char *name)" -->
77<div class="memitem">
78<div class="memproto">
79      <table class="memname">
80        <tr>
81          <td class="memname"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> libmangle_decode_ms_name </td>
82          <td>(</td>
83          <td class="paramtype"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td>
84          <td class="paramname"> <em>gc</em>, </td>
85        </tr>
86        <tr>
87          <td class="paramkey"></td>
88          <td></td>
89          <td class="paramtype">const char *&nbsp;</td>
90          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
91        </tr>
92        <tr>
93          <td></td>
94          <td>)</td>
95          <td></td><td></td><td></td>
96        </tr>
97      </table>
98</div>
99<div class="memdoc">
100<p>Decodes an MSVC export name. </p>
101<dl><dt><b>Parameters:</b></dt><dd>
102  <table border="0" cellspacing="2" cellpadding="0">
103    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> pointer for collecting memory allocations. </td></tr>
104    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>MSVC C++ mangled export string. </td></tr>
105  </table>
106  </dd>
107</dl>
108<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#abf4af1b2e483a32beb147474853e696b">libmangle_sprint_decl()</a> </dd>
109<dd>
110<a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> </dd>
111<dd>
112<a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a> </dd></dl>
113<dl class="return"><dt><b>Returns:</b></dt><dd>Token containing information about the mangled string, use <a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> to free after use. </dd></dl>
114
115</div>
116</div>
117<a class="anchor" id="ab22601869037438e47eca7186a4cef65"></a><!-- doxytag: member="libmangle.h::libmangle_dump_tok" ref="ab22601869037438e47eca7186a4cef65" args="(FILE *fp, libmangle_tokens_t p)" -->
118<div class="memitem">
119<div class="memproto">
120      <table class="memname">
121        <tr>
122          <td class="memname">void libmangle_dump_tok </td>
123          <td>(</td>
124          <td class="paramtype">FILE *&nbsp;</td>
125          <td class="paramname"> <em>fp</em>, </td>
126        </tr>
127        <tr>
128          <td class="paramkey"></td>
129          <td></td>
130          <td class="paramtype"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a>&nbsp;</td>
131          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
132        </tr>
133        <tr>
134          <td></td>
135          <td>)</td>
136          <td></td><td></td><td></td>
137        </tr>
138      </table>
139</div>
140<div class="memdoc">
141<p>Dumps pMToken to a file descriptor for debugging. </p>
142<dl><dt><b>Parameters:</b></dt><dd>
143  <table border="0" cellspacing="2" cellpadding="0">
144    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fp</em>&nbsp;</td><td>File descriptor to print the token to. </td></tr>
145    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>p</em>&nbsp;</td><td>libmangle_tokens_t chain to print. </td></tr>
146  </table>
147  </dd>
148</dl>
149
150</div>
151</div>
152<a class="anchor" id="ad6e58fecfca8cc312a2b09a44e3748fb"></a><!-- doxytag: member="libmangle.h::libmangle_encode_ms_name" ref="ad6e58fecfca8cc312a2b09a44e3748fb" args="(libmangle_gc_context_t *gc, libmangle_tokens_t tok)" -->
153<div class="memitem">
154<div class="memproto">
155      <table class="memname">
156        <tr>
157          <td class="memname">char* libmangle_encode_ms_name </td>
158          <td>(</td>
159          <td class="paramtype"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td>
160          <td class="paramname"> <em>gc</em>, </td>
161        </tr>
162        <tr>
163          <td class="paramkey"></td>
164          <td></td>
165          <td class="paramtype"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a>&nbsp;</td>
166          <td class="paramname"> <em>tok</em></td><td>&nbsp;</td>
167        </tr>
168        <tr>
169          <td></td>
170          <td>)</td>
171          <td></td><td></td><td></td>
172        </tr>
173      </table>
174</div>
175<div class="memdoc">
176
177</div>
178</div>
179<a class="anchor" id="a54257a43469abe9c5f9556a1913bbf2f"></a><!-- doxytag: member="libmangle.h::libmangle_generate_gc" ref="a54257a43469abe9c5f9556a1913bbf2f" args="(void)" -->
180<div class="memitem">
181<div class="memproto">
182      <table class="memname">
183        <tr>
184          <td class="memname"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a>* libmangle_generate_gc </td>
185          <td>(</td>
186          <td class="paramtype">void&nbsp;</td>
187          <td class="paramname"></td>
188          <td>&nbsp;)&nbsp;</td>
189          <td></td>
190        </tr>
191      </table>
192</div>
193<div class="memdoc">
194<p>Constructs a garbage collection context token. </p>
195<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to context. </dd></dl>
196<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#ac6f10b5d722b67adc42b2efaf4683dc1">libmangle_release_gc()</a> </dd></dl>
197
198</div>
199</div>
200<a class="anchor" id="a2c4d83f71d35e434250eb2779e29ef29"></a><!-- doxytag: member="libmangle.h::libmangle_print_decl" ref="a2c4d83f71d35e434250eb2779e29ef29" args="(FILE *fp, libmangle_tokens_t p)" -->
201<div class="memitem">
202<div class="memproto">
203      <table class="memname">
204        <tr>
205          <td class="memname">void libmangle_print_decl </td>
206          <td>(</td>
207          <td class="paramtype">FILE *&nbsp;</td>
208          <td class="paramname"> <em>fp</em>, </td>
209        </tr>
210        <tr>
211          <td class="paramkey"></td>
212          <td></td>
213          <td class="paramtype"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a>&nbsp;</td>
214          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
215        </tr>
216        <tr>
217          <td></td>
218          <td>)</td>
219          <td></td><td></td><td></td>
220        </tr>
221      </table>
222</div>
223<div class="memdoc">
224<p>Prints C++ name to file descriptor. </p>
225<dl><dt><b>Parameters:</b></dt><dd>
226  <table border="0" cellspacing="2" cellpadding="0">
227    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fp</em>&nbsp;</td><td>Output file descriptor. </td></tr>
228    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>p</em>&nbsp;</td><td>Token containing information about the C++ name. </td></tr>
229  </table>
230  </dd>
231</dl>
232<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#a14ff3e5c3309017dc99459ef1ffef582">libmangle_decode_ms_name()</a> </dd></dl>
233
234</div>
235</div>
236<a class="anchor" id="ac6f10b5d722b67adc42b2efaf4683dc1"></a><!-- doxytag: member="libmangle.h::libmangle_release_gc" ref="ac6f10b5d722b67adc42b2efaf4683dc1" args="(libmangle_gc_context_t *gc)" -->
237<div class="memitem">
238<div class="memproto">
239      <table class="memname">
240        <tr>
241          <td class="memname">void libmangle_release_gc </td>
242          <td>(</td>
243          <td class="paramtype"><a class="el" href="structlibmangle__gc__context__t.html">libmangle_gc_context_t</a> *&nbsp;</td>
244          <td class="paramname"> <em>gc</em></td>
245          <td>&nbsp;)&nbsp;</td>
246          <td></td>
247        </tr>
248      </table>
249</div>
250<div class="memdoc">
251<p>Releases memory tracked by context. </p>
252<dl><dt><b>Parameters:</b></dt><dd>
253  <table border="0" cellspacing="2" cellpadding="0">
254    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>gc</em>&nbsp;</td><td>Garbage collection context to work on. </td></tr>
255  </table>
256  </dd>
257</dl>
258<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#a54257a43469abe9c5f9556a1913bbf2f">libmangle_generate_gc()</a> </dd></dl>
259
260</div>
261</div>
262<a class="anchor" id="abf4af1b2e483a32beb147474853e696b"></a><!-- doxytag: member="libmangle.h::libmangle_sprint_decl" ref="abf4af1b2e483a32beb147474853e696b" args="(libmangle_tokens_t r)" -->
263<div class="memitem">
264<div class="memproto">
265      <table class="memname">
266        <tr>
267          <td class="memname">char* libmangle_sprint_decl </td>
268          <td>(</td>
269          <td class="paramtype"><a class="el" href="libmangle_8h.html#a7c9c7d368eb1f52cac14457766a01cc7">libmangle_tokens_t</a>&nbsp;</td>
270          <td class="paramname"> <em>r</em></td>
271          <td>&nbsp;)&nbsp;</td>
272          <td></td>
273        </tr>
274      </table>
275</div>
276<div class="memdoc">
277<p>Get pointer to decoded C++ name string. Use free() to release returned string. </p>
278<dl><dt><b>Parameters:</b></dt><dd>
279  <table border="0" cellspacing="2" cellpadding="0">
280    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td>C++ name token. </td></tr>
281  </table>
282  </dd>
283</dl>
284<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to decoded C++ name string. </dd></dl>
285<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="libmangle_8h.html#a14ff3e5c3309017dc99459ef1ffef582">libmangle_decode_ms_name()</a> </dd></dl>
286
287</div>
288</div>
289</div>
290<hr size="1"/><address style="text-align: right;"><small>Generated on 23 Jul 2010 for libmangle by&nbsp;
291<a href="http://www.doxygen.org/index.html">
292<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
293</body>
294</html>
295