blob: 19e8350d48778a516bb33701ffc4018793e71096 [file] [log] [blame]
NightStrike4bb4fce2009-10-10 12:22:24 +00001<!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="structs_gc_ctx.html">sGcCtx</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#a829cf916a22a3baf7cb7862c5bb5ee4f">pGcElem</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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#a5d89434e78fb873998f2844e30e0dcb1">release_gc</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc)</td></tr>
37<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structs_gc_ctx.html">sGcCtx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#aebd5b8b36fc38cc0e8457ff47e796113">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#a33efe0e74d5b28f5e460dcf58e642503">dump_tok</a> (FILE *fp, <a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#a3849f62a8f21021d472a719474d93824">print_decl</a> (FILE *fp, <a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#a44e241bedf1378900bab5367c4921c24">sprint_decl</a> (<a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</a> r)</td></tr>
41<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="libmangle_8h.html#abd5e852feefdca185545a37ec3c1467e">decode_ms_name</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</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#a52dd93638af60175329f20cbab72d77b">encode_ms_name</a> (<a class="el" href="structs_gc_ctx.html">sGcCtx</a> *gc, <a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</a> tok)</td></tr>
43</table>
44<hr/><h2>Typedef Documentation</h2>
45<a class="anchor" id="a829cf916a22a3baf7cb7862c5bb5ee4f"></a><!-- doxytag: member="libmangle.h::pGcElem" ref="a829cf916a22a3baf7cb7862c5bb5ee4f" 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#a829cf916a22a3baf7cb7862c5bb5ee4f">pGcElem</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. </p>
56<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structs_gc_ctx.html">sGcCtx</a> </dd></dl>
57
58</div>
59</div>
60<a class="anchor" id="a1beb3f335c1aae2c979e02d4e36332ae"></a><!-- doxytag: member="libmangle.h::pMToken" ref="a1beb3f335c1aae2c979e02d4e36332ae" 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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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. Base descriptor header available in all members through type punning. </p>
71<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="m__token_8c.html#ace5f8b4a48ceee9d5b2610ba9ad75a4c">gen_tok()</a> </dd></dl>
72
73</div>
74</div>
75<hr/><h2>Function Documentation</h2>
76<a class="anchor" id="abd5e852feefdca185545a37ec3c1467e"></a><!-- doxytag: member="libmangle.h::decode_ms_name" ref="abd5e852feefdca185545a37ec3c1467e" args="(sGcCtx *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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</a> decode_ms_name </td>
82 <td>(</td>
83 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</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="structs_gc_ctx.html">sGcCtx</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#a44e241bedf1378900bab5367c4921c24">sprint_decl()</a> </dd>
109<dd>
110<a class="el" href="libmangle_8h.html#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a> </dd>
111<dd>
112<a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a> to free after use. </dd></dl>
114
115</div>
116</div>
117<a class="anchor" id="a33efe0e74d5b28f5e460dcf58e642503"></a><!-- doxytag: member="libmangle.h::dump_tok" ref="a33efe0e74d5b28f5e460dcf58e642503" args="(FILE *fp, pMToken p)" -->
118<div class="memitem">
119<div class="memproto">
120 <table class="memname">
121 <tr>
122 <td class="memname">void 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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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>pMToken chain to print. </td></tr>
146 </table>
147 </dd>
148</dl>
149
150</div>
151</div>
152<a class="anchor" id="a52dd93638af60175329f20cbab72d77b"></a><!-- doxytag: member="libmangle.h::encode_ms_name" ref="a52dd93638af60175329f20cbab72d77b" args="(sGcCtx *gc, pMToken tok)" -->
153<div class="memitem">
154<div class="memproto">
155 <table class="memname">
156 <tr>
157 <td class="memname">char* encode_ms_name </td>
158 <td>(</td>
159 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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="aebd5b8b36fc38cc0e8457ff47e796113"></a><!-- doxytag: member="libmangle.h::generate_gc" ref="aebd5b8b36fc38cc0e8457ff47e796113" args="(void)" -->
180<div class="memitem">
181<div class="memproto">
182 <table class="memname">
183 <tr>
184 <td class="memname"><a class="el" href="structs_gc_ctx.html">sGcCtx</a>* 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#a5d89434e78fb873998f2844e30e0dcb1">release_gc()</a> </dd></dl>
197
198</div>
199</div>
200<a class="anchor" id="a3849f62a8f21021d472a719474d93824"></a><!-- doxytag: member="libmangle.h::print_decl" ref="a3849f62a8f21021d472a719474d93824" args="(FILE *fp, pMToken p)" -->
201<div class="memitem">
202<div class="memproto">
203 <table class="memname">
204 <tr>
205 <td class="memname">void 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#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#abd5e852feefdca185545a37ec3c1467e">decode_ms_name()</a> </dd></dl>
233
234</div>
235</div>
236<a class="anchor" id="a5d89434e78fb873998f2844e30e0dcb1"></a><!-- doxytag: member="libmangle.h::release_gc" ref="a5d89434e78fb873998f2844e30e0dcb1" args="(sGcCtx *gc)" -->
237<div class="memitem">
238<div class="memproto">
239 <table class="memname">
240 <tr>
241 <td class="memname">void release_gc </td>
242 <td>(</td>
243 <td class="paramtype"><a class="el" href="structs_gc_ctx.html">sGcCtx</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#aebd5b8b36fc38cc0e8457ff47e796113">generate_gc()</a> </dd></dl>
259
260</div>
261</div>
262<a class="anchor" id="a44e241bedf1378900bab5367c4921c24"></a><!-- doxytag: member="libmangle.h::sprint_decl" ref="a44e241bedf1378900bab5367c4921c24" args="(pMToken r)" -->
263<div class="memitem">
264<div class="memproto">
265 <table class="memname">
266 <tr>
267 <td class="memname">char* sprint_decl </td>
268 <td>(</td>
269 <td class="paramtype"><a class="el" href="libmangle_8h.html#a1beb3f335c1aae2c979e02d4e36332ae">pMToken</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#abd5e852feefdca185545a37ec3c1467e">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 10 Oct 2009 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>