• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>OsclMemAudit class Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.2.18 -->
7<center>
8<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
9<hr><h1>OsclMemAudit Class Reference<br>
10<small>
11[<a class="el" href="group__osclmemory.html">OSCL Memory</a>]</small>
12</h1><code>#include &lt;<a class="el" href="oscl__mem__audit_8h-source.html">oscl_mem_audit.h</a>&gt;</code>
13<p>
14<table border=0 cellpadding=0 cellspacing=0>
15<tr><td></td></tr>
16<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
17<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a0">OsclMemAudit</a> ()</td></tr>
18<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a1">~OsclMemAudit</a> ()</td></tr>
19<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a2">MM_allocate</a> (const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> *statsNode, uint32 sizeIn, const char *pFileName, uint32 lineNumber, bool allocNodeTracking=false)</td></tr>
20<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a3">MM_deallocate</a> (void *pMemBlockIn)</td></tr>
21<tr><td nowrap align=right valign=top><a class="el" href="structMM__Stats__t.html">MM_Stats_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a4">MM_GetStats</a> (const char *const tagIn)</td></tr>
22<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a5">MM_GetStatsInDepth</a> (const char *tagIn, <a class="el" href="structMM__Stats__CB.html">MM_Stats_CB</a> *array_ptr, uint32 max_nodes)</td></tr>
23<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a6">MM_GetTreeNodes</a> (const char *tagIn)</td></tr>
24<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a7">MM_AddTag</a> (const char *tagIn)</td></tr>
25<tr><td nowrap align=right valign=top>const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a8">MM_GetTagNode</a> (const char *tagIn)</td></tr>
26<tr><td nowrap align=right valign=top>const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a9">MM_GetExistingTag</a> (const char *tagIn)</td></tr>
27<tr><td nowrap align=right valign=top>const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a10">MM_GetRootNode</a> ()</td></tr>
28<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a11">MM_GetAllocNodeInfo</a> (<a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a> *output_array, uint32 max_array_size, uint32 offset)</td></tr>
29<tr><td nowrap align=right valign=top><a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a12">MM_CreateAllocNodeInfo</a> (uint32 max_array_size)</td></tr>
30<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a13">MM_ReleaseAllocNodeInfo</a> (<a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a> *info)</td></tr>
31<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a14">MM_Validate</a> (const void *ptrIn)</td></tr>
32<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a15">MM_GetAllocNo</a> (void)</td></tr>
33<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a16">MM_GetOverheadStats</a> (<a class="el" href="structMM__AuditOverheadStats.html">MM_AuditOverheadStats</a> &amp;stats)</td></tr>
34<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a17">MM_GetNumAllocNodes</a> ()</td></tr>
35<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a18">MM_GetMode</a> (void)</td></tr>
36<tr><td nowrap align=right valign=top>uint8&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a19">MM_GetPrefillPattern</a> (void)</td></tr>
37<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a20">MM_GetPostfillPattern</a> (void)</td></tr>
38<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a21">MM_SetMode</a> (uint32 inMode)</td></tr>
39<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a22">MM_SetPrefillPattern</a> (uint8 pattern)</td></tr>
40<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a23">MM_SetPostfillPattern</a> (uint8 pattern)</td></tr>
41<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a24">MM_SetTagLevel</a> (uint32 level)</td></tr>
42<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a25">MM_SetFailurePoint</a> (const char *tagIn, uint32 alloc_number)</td></tr>
43<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a26">MM_UnsetFailurePoint</a> (const char *tagIn)</td></tr>
44<tr><td nowrap align=right valign=top>int32&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a27">MM_GetRefCount</a> ()</td></tr>
45<tr><td nowrap align=right valign=top><a class="el" href="classOsclLockBase.html">OsclLockBase</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#a28">GetLock</a> ()</td></tr>
46<tr><td colspan=2><br><h2>Friends</h2></td></tr>
47<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html#l0">OsclMemGlobalAuditObject</a></td></tr>
48</table>
49<hr><h2>Constructor &amp; Destructor Documentation</h2>
50<a name="a0" doxytag="OsclMemAudit::OsclMemAudit"></a><p>
51<table width="100%" cellpadding="2" cellspacing="0" border="0">
52  <tr>
53    <td class="md">
54      <table cellpadding="0" cellspacing="0" border="0">
55        <tr>
56          <td class="md" nowrap valign="top"> OsclMemAudit::OsclMemAudit </td>
57          <td class="md" valign="top">(&nbsp;</td>
58          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
59          <td class="md" valign="top">)&nbsp;</td>
60          <td class="md" nowrap><code> [inline]</code></td>
61        </tr>
62
63      </table>
64    </td>
65  </tr>
66</table>
67<table cellspacing=5 cellpadding=0 border=0>
68  <tr>
69    <td>
70      &nbsp;
71    </td>
72    <td>
73
74<p>
75Constructor, create the root node in statistics table     </td>
76  </tr>
77</table>
78<a name="a1" doxytag="OsclMemAudit::~OsclMemAudit"></a><p>
79<table width="100%" cellpadding="2" cellspacing="0" border="0">
80  <tr>
81    <td class="md">
82      <table cellpadding="0" cellspacing="0" border="0">
83        <tr>
84          <td class="md" nowrap valign="top"> OsclMemAudit::~OsclMemAudit </td>
85          <td class="md" valign="top">(&nbsp;</td>
86          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
87          <td class="md" valign="top">)&nbsp;</td>
88          <td class="md" nowrap><code> [inline]</code></td>
89        </tr>
90
91      </table>
92    </td>
93  </tr>
94</table>
95<table cellspacing=5 cellpadding=0 border=0>
96  <tr>
97    <td>
98      &nbsp;
99    </td>
100    <td>
101
102<p>
103A destructor, remove all the nodes in allocation andstatistics table     </td>
104  </tr>
105</table>
106<hr><h2>Member Function Documentation</h2>
107<a name="a28" doxytag="OsclMemAudit::GetLock"></a><p>
108<table width="100%" cellpadding="2" cellspacing="0" border="0">
109  <tr>
110    <td class="md">
111      <table cellpadding="0" cellspacing="0" border="0">
112        <tr>
113          <td class="md" nowrap valign="top"> <a class="el" href="classOsclLockBase.html">OsclLockBase</a>* OsclMemAudit::GetLock </td>
114          <td class="md" valign="top">(&nbsp;</td>
115          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
116          <td class="md" valign="top">)&nbsp;</td>
117          <td class="md" nowrap><code> [inline]</code></td>
118        </tr>
119
120      </table>
121    </td>
122  </tr>
123</table>
124<table cellspacing=5 cellpadding=0 border=0>
125  <tr>
126    <td>
127      &nbsp;
128    </td>
129    <td>
130
131<p>
132API to obtain mem lock ptr     </td>
133  </tr>
134</table>
135<a name="a7" doxytag="OsclMemAudit::MM_AddTag"></a><p>
136<table width="100%" cellpadding="2" cellspacing="0" border="0">
137  <tr>
138    <td class="md">
139      <table cellpadding="0" cellspacing="0" border="0">
140        <tr>
141          <td class="md" nowrap valign="top"> bool OsclMemAudit::MM_AddTag </td>
142          <td class="md" valign="top">(&nbsp;</td>
143          <td class="md" nowrap valign="top">const char *&nbsp;</td>
144          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
145          <td class="md" valign="top">)&nbsp;</td>
146          <td class="md" nowrap><code> [inline]</code></td>
147        </tr>
148
149      </table>
150    </td>
151  </tr>
152</table>
153<table cellspacing=5 cellpadding=0 border=0>
154  <tr>
155    <td>
156      &nbsp;
157    </td>
158    <td>
159
160<p>
161API to add a node and zero out its counters; Note that this tag should be re-used <dl compact><dt><b>Parameters: </b></dt><dd>
162<table border=0 cellspacing=2 cellpadding=0>
163<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
164input tag </td></tr>
165</table>
166</dl><dl compact><dt><b>Returns: </b></dt><dd>
167true if operation succeeds; </dl>    </td>
168  </tr>
169</table>
170<a name="a2" doxytag="OsclMemAudit::MM_allocate"></a><p>
171<table width="100%" cellpadding="2" cellspacing="0" border="0">
172  <tr>
173    <td class="md">
174      <table cellpadding="0" cellspacing="0" border="0">
175        <tr>
176          <td class="md" nowrap valign="top"> void* OsclMemAudit::MM_allocate </td>
177          <td class="md" valign="top">(&nbsp;</td>
178          <td class="md" nowrap valign="top">const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> *&nbsp;</td>
179          <td class="mdname" nowrap>&nbsp; <em>statsNode</em>, </td>
180        </tr>
181        <tr>
182          <td></td>
183          <td></td>
184          <td class="md" nowrap>uint32&nbsp;</td>
185          <td class="mdname" nowrap>&nbsp; <em>sizeIn</em>, </td>
186        </tr>
187        <tr>
188          <td></td>
189          <td></td>
190          <td class="md" nowrap>const char *&nbsp;</td>
191          <td class="mdname" nowrap>&nbsp; <em>pFileName</em>, </td>
192        </tr>
193        <tr>
194          <td></td>
195          <td></td>
196          <td class="md" nowrap>uint32&nbsp;</td>
197          <td class="mdname" nowrap>&nbsp; <em>lineNumber</em>, </td>
198        </tr>
199        <tr>
200          <td></td>
201          <td></td>
202          <td class="md" nowrap>bool&nbsp;</td>
203          <td class="mdname" nowrap>&nbsp; <em>allocNodeTracking</em> = false</td>
204        </tr>
205        <tr>
206          <td></td>
207          <td class="md">)&nbsp;</td>
208          <td class="md" colspan="2"><code> [inline]</code></td>
209        </tr>
210
211      </table>
212    </td>
213  </tr>
214</table>
215<table cellspacing=5 cellpadding=0 border=0>
216  <tr>
217    <td>
218      &nbsp;
219    </td>
220    <td>
221
222<p>
223The following are APIs t __nothrow_/ const __nothrow_ <dl compact><dt><b>Returns: </b></dt><dd>
224the memory pointer if operation succeeds. </dl>    </td>
225  </tr>
226</table>
227<a name="a12" doxytag="OsclMemAudit::MM_CreateAllocNodeInfo"></a><p>
228<table width="100%" cellpadding="2" cellspacing="0" border="0">
229  <tr>
230    <td class="md">
231      <table cellpadding="0" cellspacing="0" border="0">
232        <tr>
233          <td class="md" nowrap valign="top"> <a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a>* OsclMemAudit::MM_CreateAllocNodeInfo </td>
234          <td class="md" valign="top">(&nbsp;</td>
235          <td class="md" nowrap valign="top">uint32&nbsp;</td>
236          <td class="mdname1" valign="top" nowrap>&nbsp; <em>max_array_size</em>          </td>
237          <td class="md" valign="top">)&nbsp;</td>
238          <td class="md" nowrap><code> [inline]</code></td>
239        </tr>
240
241      </table>
242    </td>
243  </tr>
244</table>
245<table cellspacing=5 cellpadding=0 border=0>
246  <tr>
247    <td>
248      &nbsp;
249    </td>
250    <td>
251
252<p>
253    </td>
254  </tr>
255</table>
256<a name="a3" doxytag="OsclMemAudit::MM_deallocate"></a><p>
257<table width="100%" cellpadding="2" cellspacing="0" border="0">
258  <tr>
259    <td class="md">
260      <table cellpadding="0" cellspacing="0" border="0">
261        <tr>
262          <td class="md" nowrap valign="top"> bool OsclMemAudit::MM_deallocate </td>
263          <td class="md" valign="top">(&nbsp;</td>
264          <td class="md" nowrap valign="top">void *&nbsp;</td>
265          <td class="mdname1" valign="top" nowrap>&nbsp; <em>pMemBlockIn</em>          </td>
266          <td class="md" valign="top">)&nbsp;</td>
267          <td class="md" nowrap><code> [inline]</code></td>
268        </tr>
269
270      </table>
271    </td>
272  </tr>
273</table>
274<table cellspacing=5 cellpadding=0 border=0>
275  <tr>
276    <td>
277      &nbsp;
278    </td>
279    <td>
280
281<p>
282<dl compact><dt><b>Returns: </b></dt><dd>
283true if operation succeeds; </dl>    </td>
284  </tr>
285</table>
286<a name="a15" doxytag="OsclMemAudit::MM_GetAllocNo"></a><p>
287<table width="100%" cellpadding="2" cellspacing="0" border="0">
288  <tr>
289    <td class="md">
290      <table cellpadding="0" cellspacing="0" border="0">
291        <tr>
292          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetAllocNo </td>
293          <td class="md" valign="top">(&nbsp;</td>
294          <td class="md" nowrap valign="top">void&nbsp;</td>
295          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
296          <td class="md" valign="top">)&nbsp;</td>
297          <td class="md" nowrap><code> [inline]</code></td>
298        </tr>
299
300      </table>
301    </td>
302  </tr>
303</table>
304<table cellspacing=5 cellpadding=0 border=0>
305  <tr>
306    <td>
307      &nbsp;
308    </td>
309    <td>
310
311<p>
312API to get the current allocation number <dl compact><dt><b>Returns: </b></dt><dd>
313the current allocation number </dl>    </td>
314  </tr>
315</table>
316<a name="a11" doxytag="OsclMemAudit::MM_GetAllocNodeInfo"></a><p>
317<table width="100%" cellpadding="2" cellspacing="0" border="0">
318  <tr>
319    <td class="md">
320      <table cellpadding="0" cellspacing="0" border="0">
321        <tr>
322          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetAllocNodeInfo </td>
323          <td class="md" valign="top">(&nbsp;</td>
324          <td class="md" nowrap valign="top"><a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a> *&nbsp;</td>
325          <td class="mdname" nowrap>&nbsp; <em>output_array</em>, </td>
326        </tr>
327        <tr>
328          <td></td>
329          <td></td>
330          <td class="md" nowrap>uint32&nbsp;</td>
331          <td class="mdname" nowrap>&nbsp; <em>max_array_size</em>, </td>
332        </tr>
333        <tr>
334          <td></td>
335          <td></td>
336          <td class="md" nowrap>uint32&nbsp;</td>
337          <td class="mdname" nowrap>&nbsp; <em>offset</em></td>
338        </tr>
339        <tr>
340          <td></td>
341          <td class="md">)&nbsp;</td>
342          <td class="md" colspan="2"><code> [inline]</code></td>
343        </tr>
344
345      </table>
346    </td>
347  </tr>
348</table>
349<table cellspacing=5 cellpadding=0 border=0>
350  <tr>
351    <td>
352      &nbsp;
353    </td>
354    <td>
355
356<p>
357API to query the list of alloc nodes. It copies the information into the provided output array. <dl compact><dt><b>Parameters: </b></dt><dd>
358<table border=0 cellspacing=2 cellpadding=0>
359<tr><td valign=top><em>output_array</em>&nbsp;</td><td>
360the array where the data will be written </td></tr>
361<tr><td valign=top><em>max_array_size</em>&nbsp;</td><td>
362the max number of output array elements </td></tr>
363<tr><td valign=top><em>offset</em>&nbsp;</td><td>
364the offset into the alloc node list from which the data should begin. </td></tr>
365</table>
366</dl><dl compact><dt><b>Returns: </b></dt><dd>
367the number of valid nodes in the output array </dl>    </td>
368  </tr>
369</table>
370<a name="a9" doxytag="OsclMemAudit::MM_GetExistingTag"></a><p>
371<table width="100%" cellpadding="2" cellspacing="0" border="0">
372  <tr>
373    <td class="md">
374      <table cellpadding="0" cellspacing="0" border="0">
375        <tr>
376          <td class="md" nowrap valign="top"> const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>* OsclMemAudit::MM_GetExistingTag </td>
377          <td class="md" valign="top">(&nbsp;</td>
378          <td class="md" nowrap valign="top">const char *&nbsp;</td>
379          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
380          <td class="md" valign="top">)&nbsp;</td>
381          <td class="md" nowrap><code> [inline]</code></td>
382        </tr>
383
384      </table>
385    </td>
386  </tr>
387</table>
388<table cellspacing=5 cellpadding=0 border=0>
389  <tr>
390    <td>
391      &nbsp;
392    </td>
393    <td>
394
395<p>
396API to add a node and zero out its counters; Note that this tag should be re-used <dl compact><dt><b>Parameters: </b></dt><dd>
397<table border=0 cellspacing=2 cellpadding=0>
398<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
399input tag </td></tr>
400</table>
401</dl><dl compact><dt><b>Returns: </b></dt><dd>
402true if operation succeeds; </dl>    </td>
403  </tr>
404</table>
405<a name="a18" doxytag="OsclMemAudit::MM_GetMode"></a><p>
406<table width="100%" cellpadding="2" cellspacing="0" border="0">
407  <tr>
408    <td class="md">
409      <table cellpadding="0" cellspacing="0" border="0">
410        <tr>
411          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetMode </td>
412          <td class="md" valign="top">(&nbsp;</td>
413          <td class="md" nowrap valign="top">void&nbsp;</td>
414          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
415          <td class="md" valign="top">)&nbsp;</td>
416          <td class="md" nowrap><code> [inline]</code></td>
417        </tr>
418
419      </table>
420    </td>
421  </tr>
422</table>
423<table cellspacing=5 cellpadding=0 border=0>
424  <tr>
425    <td>
426      &nbsp;
427    </td>
428    <td>
429
430<p>
431API to get the operating mode of the mm_audit class.     </td>
432  </tr>
433</table>
434<a name="a17" doxytag="OsclMemAudit::MM_GetNumAllocNodes"></a><p>
435<table width="100%" cellpadding="2" cellspacing="0" border="0">
436  <tr>
437    <td class="md">
438      <table cellpadding="0" cellspacing="0" border="0">
439        <tr>
440          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetNumAllocNodes </td>
441          <td class="md" valign="top">(&nbsp;</td>
442          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
443          <td class="md" valign="top">)&nbsp;</td>
444          <td class="md" nowrap><code> [inline]</code></td>
445        </tr>
446
447      </table>
448    </td>
449  </tr>
450</table>
451<table cellspacing=5 cellpadding=0 border=0>
452  <tr>
453    <td>
454      &nbsp;
455    </td>
456    <td>
457
458<p>
459API to get the number of allocation nodes (records) for allocations that are being tracked individually.     </td>
460  </tr>
461</table>
462<a name="a16" doxytag="OsclMemAudit::MM_GetOverheadStats"></a><p>
463<table width="100%" cellpadding="2" cellspacing="0" border="0">
464  <tr>
465    <td class="md">
466      <table cellpadding="0" cellspacing="0" border="0">
467        <tr>
468          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_GetOverheadStats </td>
469          <td class="md" valign="top">(&nbsp;</td>
470          <td class="md" nowrap valign="top"><a class="el" href="structMM__AuditOverheadStats.html">MM_AuditOverheadStats</a> &amp;&nbsp;</td>
471          <td class="mdname1" valign="top" nowrap>&nbsp; <em>stats</em>          </td>
472          <td class="md" valign="top">)&nbsp;</td>
473          <td class="md" nowrap><code> [inline]</code></td>
474        </tr>
475
476      </table>
477    </td>
478  </tr>
479</table>
480<table cellspacing=5 cellpadding=0 border=0>
481  <tr>
482    <td>
483      &nbsp;
484    </td>
485    <td>
486
487<p>
488API to get the overhead statistics for the memory used by the mm_audit class.     </td>
489  </tr>
490</table>
491<a name="a20" doxytag="OsclMemAudit::MM_GetPostfillPattern"></a><p>
492<table width="100%" cellpadding="2" cellspacing="0" border="0">
493  <tr>
494    <td class="md">
495      <table cellpadding="0" cellspacing="0" border="0">
496        <tr>
497          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetPostfillPattern </td>
498          <td class="md" valign="top">(&nbsp;</td>
499          <td class="md" nowrap valign="top">void&nbsp;</td>
500          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
501          <td class="md" valign="top">)&nbsp;</td>
502          <td class="md" nowrap><code> [inline]</code></td>
503        </tr>
504
505      </table>
506    </td>
507  </tr>
508</table>
509<table cellspacing=5 cellpadding=0 border=0>
510  <tr>
511    <td>
512      &nbsp;
513    </td>
514    <td>
515
516<p>
517API to get the postfill pattern. The pattern is used to fill the memory before freeing it.     </td>
518  </tr>
519</table>
520<a name="a19" doxytag="OsclMemAudit::MM_GetPrefillPattern"></a><p>
521<table width="100%" cellpadding="2" cellspacing="0" border="0">
522  <tr>
523    <td class="md">
524      <table cellpadding="0" cellspacing="0" border="0">
525        <tr>
526          <td class="md" nowrap valign="top"> uint8 OsclMemAudit::MM_GetPrefillPattern </td>
527          <td class="md" valign="top">(&nbsp;</td>
528          <td class="md" nowrap valign="top">void&nbsp;</td>
529          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
530          <td class="md" valign="top">)&nbsp;</td>
531          <td class="md" nowrap><code> [inline]</code></td>
532        </tr>
533
534      </table>
535    </td>
536  </tr>
537</table>
538<table cellspacing=5 cellpadding=0 border=0>
539  <tr>
540    <td>
541      &nbsp;
542    </td>
543    <td>
544
545<p>
546API to get the prefill pattern. The pattern is used to fill the memory before returning it to the caller.     </td>
547  </tr>
548</table>
549<a name="a27" doxytag="OsclMemAudit::MM_GetRefCount"></a><p>
550<table width="100%" cellpadding="2" cellspacing="0" border="0">
551  <tr>
552    <td class="md">
553      <table cellpadding="0" cellspacing="0" border="0">
554        <tr>
555          <td class="md" nowrap valign="top"> int32 OsclMemAudit::MM_GetRefCount </td>
556          <td class="md" valign="top">(&nbsp;</td>
557          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
558          <td class="md" valign="top">)&nbsp;</td>
559          <td class="md" nowrap><code> [inline]</code></td>
560        </tr>
561
562      </table>
563    </td>
564  </tr>
565</table>
566<table cellspacing=5 cellpadding=0 border=0>
567  <tr>
568    <td>
569      &nbsp;
570    </td>
571    <td>
572
573<p>
574    </td>
575  </tr>
576</table>
577<a name="a10" doxytag="OsclMemAudit::MM_GetRootNode"></a><p>
578<table width="100%" cellpadding="2" cellspacing="0" border="0">
579  <tr>
580    <td class="md">
581      <table cellpadding="0" cellspacing="0" border="0">
582        <tr>
583          <td class="md" nowrap valign="top"> const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>* OsclMemAudit::MM_GetRootNode </td>
584          <td class="md" valign="top">(&nbsp;</td>
585          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
586          <td class="md" valign="top">)&nbsp;</td>
587          <td class="md" nowrap><code> [inline]</code></td>
588        </tr>
589
590      </table>
591    </td>
592  </tr>
593</table>
594<table cellspacing=5 cellpadding=0 border=0>
595  <tr>
596    <td>
597      &nbsp;
598    </td>
599    <td>
600
601<p>
602    </td>
603  </tr>
604</table>
605<a name="a4" doxytag="OsclMemAudit::MM_GetStats"></a><p>
606<table width="100%" cellpadding="2" cellspacing="0" border="0">
607  <tr>
608    <td class="md">
609      <table cellpadding="0" cellspacing="0" border="0">
610        <tr>
611          <td class="md" nowrap valign="top"> <a class="el" href="structMM__Stats__t.html">MM_Stats_t</a>* OsclMemAudit::MM_GetStats </td>
612          <td class="md" valign="top">(&nbsp;</td>
613          <td class="md" nowrap valign="top">const char *const&nbsp;</td>
614          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
615          <td class="md" valign="top">)&nbsp;</td>
616          <td class="md" nowrap><code> [inline]</code></td>
617        </tr>
618
619      </table>
620    </td>
621  </tr>
622</table>
623<table cellspacing=5 cellpadding=0 border=0>
624  <tr>
625    <td>
626      &nbsp;
627    </td>
628    <td>
629
630<p>
631API to get memory statistics through context string(tag) <dl compact><dt><b>Returns: </b></dt><dd>
632statistics pointer if operation succeeds </dl>    </td>
633  </tr>
634</table>
635<a name="a5" doxytag="OsclMemAudit::MM_GetStatsInDepth"></a><p>
636<table width="100%" cellpadding="2" cellspacing="0" border="0">
637  <tr>
638    <td class="md">
639      <table cellpadding="0" cellspacing="0" border="0">
640        <tr>
641          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetStatsInDepth </td>
642          <td class="md" valign="top">(&nbsp;</td>
643          <td class="md" nowrap valign="top">const char *&nbsp;</td>
644          <td class="mdname" nowrap>&nbsp; <em>tagIn</em>, </td>
645        </tr>
646        <tr>
647          <td></td>
648          <td></td>
649          <td class="md" nowrap><a class="el" href="structMM__Stats__CB.html">MM_Stats_CB</a> *&nbsp;</td>
650          <td class="mdname" nowrap>&nbsp; <em>array_ptr</em>, </td>
651        </tr>
652        <tr>
653          <td></td>
654          <td></td>
655          <td class="md" nowrap>uint32&nbsp;</td>
656          <td class="mdname" nowrap>&nbsp; <em>max_nodes</em></td>
657        </tr>
658        <tr>
659          <td></td>
660          <td class="md">)&nbsp;</td>
661          <td class="md" colspan="2"><code> [inline]</code></td>
662        </tr>
663
664      </table>
665    </td>
666  </tr>
667</table>
668<table cellspacing=5 cellpadding=0 border=0>
669  <tr>
670    <td>
671      &nbsp;
672    </td>
673    <td>
674
675<p>
676API to get memory statistics in detail through context string(tag) including its subtree <dl compact><dt><b>Returns: </b></dt><dd>
677statistics pointer array and actual number of nodes if operation succeeds </dl>    </td>
678  </tr>
679</table>
680<a name="a8" doxytag="OsclMemAudit::MM_GetTagNode"></a><p>
681<table width="100%" cellpadding="2" cellspacing="0" border="0">
682  <tr>
683    <td class="md">
684      <table cellpadding="0" cellspacing="0" border="0">
685        <tr>
686          <td class="md" nowrap valign="top"> const <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>* OsclMemAudit::MM_GetTagNode </td>
687          <td class="md" valign="top">(&nbsp;</td>
688          <td class="md" nowrap valign="top">const char *&nbsp;</td>
689          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
690          <td class="md" valign="top">)&nbsp;</td>
691          <td class="md" nowrap><code> [inline]</code></td>
692        </tr>
693
694      </table>
695    </td>
696  </tr>
697</table>
698<table cellspacing=5 cellpadding=0 border=0>
699  <tr>
700    <td>
701      &nbsp;
702    </td>
703    <td>
704
705<p>
706API to add a node and zero out its counters; Note that this tag should be re-used <dl compact><dt><b>Parameters: </b></dt><dd>
707<table border=0 cellspacing=2 cellpadding=0>
708<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
709input tag </td></tr>
710</table>
711</dl><dl compact><dt><b>Returns: </b></dt><dd>
712pointer to <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a> which should be passed to MM_allocate </dl>    </td>
713  </tr>
714</table>
715<a name="a6" doxytag="OsclMemAudit::MM_GetTreeNodes"></a><p>
716<table width="100%" cellpadding="2" cellspacing="0" border="0">
717  <tr>
718    <td class="md">
719      <table cellpadding="0" cellspacing="0" border="0">
720        <tr>
721          <td class="md" nowrap valign="top"> uint32 OsclMemAudit::MM_GetTreeNodes </td>
722          <td class="md" valign="top">(&nbsp;</td>
723          <td class="md" nowrap valign="top">const char *&nbsp;</td>
724          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
725          <td class="md" valign="top">)&nbsp;</td>
726          <td class="md" nowrap><code> [inline]</code></td>
727        </tr>
728
729      </table>
730    </td>
731  </tr>
732</table>
733<table cellspacing=5 cellpadding=0 border=0>
734  <tr>
735    <td>
736      &nbsp;
737    </td>
738    <td>
739
740<p>
741API to get the number of tree nodes including the tag node and its subtree <dl compact><dt><b>Parameters: </b></dt><dd>
742<table border=0 cellspacing=2 cellpadding=0>
743<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
744input tag </td></tr>
745</table>
746</dl><dl compact><dt><b>Returns: </b></dt><dd>
747the number of tree nodes ; 0 means no tag node </dl>    </td>
748  </tr>
749</table>
750<a name="a13" doxytag="OsclMemAudit::MM_ReleaseAllocNodeInfo"></a><p>
751<table width="100%" cellpadding="2" cellspacing="0" border="0">
752  <tr>
753    <td class="md">
754      <table cellpadding="0" cellspacing="0" border="0">
755        <tr>
756          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_ReleaseAllocNodeInfo </td>
757          <td class="md" valign="top">(&nbsp;</td>
758          <td class="md" nowrap valign="top"><a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a> *&nbsp;</td>
759          <td class="mdname1" valign="top" nowrap>&nbsp; <em>info</em>          </td>
760          <td class="md" valign="top">)&nbsp;</td>
761          <td class="md" nowrap><code> [inline]</code></td>
762        </tr>
763
764      </table>
765    </td>
766  </tr>
767</table>
768<table cellspacing=5 cellpadding=0 border=0>
769  <tr>
770    <td>
771      &nbsp;
772    </td>
773    <td>
774
775<p>
776    </td>
777  </tr>
778</table>
779<a name="a25" doxytag="OsclMemAudit::MM_SetFailurePoint"></a><p>
780<table width="100%" cellpadding="2" cellspacing="0" border="0">
781  <tr>
782    <td class="md">
783      <table cellpadding="0" cellspacing="0" border="0">
784        <tr>
785          <td class="md" nowrap valign="top"> bool OsclMemAudit::MM_SetFailurePoint </td>
786          <td class="md" valign="top">(&nbsp;</td>
787          <td class="md" nowrap valign="top">const char *&nbsp;</td>
788          <td class="mdname" nowrap>&nbsp; <em>tagIn</em>, </td>
789        </tr>
790        <tr>
791          <td></td>
792          <td></td>
793          <td class="md" nowrap>uint32&nbsp;</td>
794          <td class="mdname" nowrap>&nbsp; <em>alloc_number</em></td>
795        </tr>
796        <tr>
797          <td></td>
798          <td class="md">)&nbsp;</td>
799          <td class="md" colspan="2"><code> [inline]</code></td>
800        </tr>
801
802      </table>
803    </td>
804  </tr>
805</table>
806<table cellspacing=5 cellpadding=0 border=0>
807  <tr>
808    <td>
809      &nbsp;
810    </td>
811    <td>
812
813<p>
814API to insert allocation failure deterministically according to allocation number associated with tag <dl compact><dt><b>Parameters: </b></dt><dd>
815<table border=0 cellspacing=2 cellpadding=0>
816<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
817input tag </td></tr>
818<tr><td valign=top><em>alloc_number</em>&nbsp;</td><td>
819allocation number associated with tag </td></tr>
820</table>
821</dl><dl compact><dt><b>Returns: </b></dt><dd>
822true if operation succeeds; </dl>    </td>
823  </tr>
824</table>
825<a name="a21" doxytag="OsclMemAudit::MM_SetMode"></a><p>
826<table width="100%" cellpadding="2" cellspacing="0" border="0">
827  <tr>
828    <td class="md">
829      <table cellpadding="0" cellspacing="0" border="0">
830        <tr>
831          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_SetMode </td>
832          <td class="md" valign="top">(&nbsp;</td>
833          <td class="md" nowrap valign="top">uint32&nbsp;</td>
834          <td class="mdname1" valign="top" nowrap>&nbsp; <em>inMode</em>          </td>
835          <td class="md" valign="top">)&nbsp;</td>
836          <td class="md" nowrap><code> [inline]</code></td>
837        </tr>
838
839      </table>
840    </td>
841  </tr>
842</table>
843<table cellspacing=5 cellpadding=0 border=0>
844  <tr>
845    <td>
846      &nbsp;
847    </td>
848    <td>
849
850<p>
851API to set the operating mode of the mm_audit class.     </td>
852  </tr>
853</table>
854<a name="a23" doxytag="OsclMemAudit::MM_SetPostfillPattern"></a><p>
855<table width="100%" cellpadding="2" cellspacing="0" border="0">
856  <tr>
857    <td class="md">
858      <table cellpadding="0" cellspacing="0" border="0">
859        <tr>
860          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_SetPostfillPattern </td>
861          <td class="md" valign="top">(&nbsp;</td>
862          <td class="md" nowrap valign="top">uint8&nbsp;</td>
863          <td class="mdname1" valign="top" nowrap>&nbsp; <em>pattern</em>          </td>
864          <td class="md" valign="top">)&nbsp;</td>
865          <td class="md" nowrap><code> [inline]</code></td>
866        </tr>
867
868      </table>
869    </td>
870  </tr>
871</table>
872<table cellspacing=5 cellpadding=0 border=0>
873  <tr>
874    <td>
875      &nbsp;
876    </td>
877    <td>
878
879<p>
880API to set the postfill pattern.     </td>
881  </tr>
882</table>
883<a name="a22" doxytag="OsclMemAudit::MM_SetPrefillPattern"></a><p>
884<table width="100%" cellpadding="2" cellspacing="0" border="0">
885  <tr>
886    <td class="md">
887      <table cellpadding="0" cellspacing="0" border="0">
888        <tr>
889          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_SetPrefillPattern </td>
890          <td class="md" valign="top">(&nbsp;</td>
891          <td class="md" nowrap valign="top">uint8&nbsp;</td>
892          <td class="mdname1" valign="top" nowrap>&nbsp; <em>pattern</em>          </td>
893          <td class="md" valign="top">)&nbsp;</td>
894          <td class="md" nowrap><code> [inline]</code></td>
895        </tr>
896
897      </table>
898    </td>
899  </tr>
900</table>
901<table cellspacing=5 cellpadding=0 border=0>
902  <tr>
903    <td>
904      &nbsp;
905    </td>
906    <td>
907
908<p>
909API to set the prefill pattern.     </td>
910  </tr>
911</table>
912<a name="a24" doxytag="OsclMemAudit::MM_SetTagLevel"></a><p>
913<table width="100%" cellpadding="2" cellspacing="0" border="0">
914  <tr>
915    <td class="md">
916      <table cellpadding="0" cellspacing="0" border="0">
917        <tr>
918          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_SetTagLevel </td>
919          <td class="md" valign="top">(&nbsp;</td>
920          <td class="md" nowrap valign="top">uint32&nbsp;</td>
921          <td class="mdname1" valign="top" nowrap>&nbsp; <em>level</em>          </td>
922          <td class="md" valign="top">)&nbsp;</td>
923          <td class="md" nowrap><code> [inline]</code></td>
924        </tr>
925
926      </table>
927    </td>
928  </tr>
929</table>
930<table cellspacing=5 cellpadding=0 border=0>
931  <tr>
932    <td>
933      &nbsp;
934    </td>
935    <td>
936
937<p>
938API to set the maximum tag level,i.e. tag level for a.b.c.d = 4 <dl compact><dt><b>Parameters: </b></dt><dd>
939<table border=0 cellspacing=2 cellpadding=0>
940<tr><td valign=top><em>level</em>&nbsp;</td><td>
941input tag level to be set </td></tr>
942</table>
943</dl>    </td>
944  </tr>
945</table>
946<a name="a26" doxytag="OsclMemAudit::MM_UnsetFailurePoint"></a><p>
947<table width="100%" cellpadding="2" cellspacing="0" border="0">
948  <tr>
949    <td class="md">
950      <table cellpadding="0" cellspacing="0" border="0">
951        <tr>
952          <td class="md" nowrap valign="top"> void OsclMemAudit::MM_UnsetFailurePoint </td>
953          <td class="md" valign="top">(&nbsp;</td>
954          <td class="md" nowrap valign="top">const char *&nbsp;</td>
955          <td class="mdname1" valign="top" nowrap>&nbsp; <em>tagIn</em>          </td>
956          <td class="md" valign="top">)&nbsp;</td>
957          <td class="md" nowrap><code> [inline]</code></td>
958        </tr>
959
960      </table>
961    </td>
962  </tr>
963</table>
964<table cellspacing=5 cellpadding=0 border=0>
965  <tr>
966    <td>
967      &nbsp;
968    </td>
969    <td>
970
971<p>
972API to cancel the allocation failure point associated with tag <dl compact><dt><b>Parameters: </b></dt><dd>
973<table border=0 cellspacing=2 cellpadding=0>
974<tr><td valign=top><em>tagIn</em>&nbsp;</td><td>
975input tag </td></tr>
976</table>
977</dl>    </td>
978  </tr>
979</table>
980<a name="a14" doxytag="OsclMemAudit::MM_Validate"></a><p>
981<table width="100%" cellpadding="2" cellspacing="0" border="0">
982  <tr>
983    <td class="md">
984      <table cellpadding="0" cellspacing="0" border="0">
985        <tr>
986          <td class="md" nowrap valign="top"> bool OsclMemAudit::MM_Validate </td>
987          <td class="md" valign="top">(&nbsp;</td>
988          <td class="md" nowrap valign="top">const void *&nbsp;</td>
989          <td class="mdname1" valign="top" nowrap>&nbsp; <em>ptrIn</em>          </td>
990          <td class="md" valign="top">)&nbsp;</td>
991          <td class="md" nowrap><code> [inline]</code></td>
992        </tr>
993
994      </table>
995    </td>
996  </tr>
997</table>
998<table cellspacing=5 cellpadding=0 border=0>
999  <tr>
1000    <td>
1001      &nbsp;
1002    </td>
1003    <td>
1004
1005<p>
1006API to check the input pointer is a valid pointer to a chunk of memory <dl compact><dt><b>Parameters: </b></dt><dd>
1007<table border=0 cellspacing=2 cellpadding=0>
1008<tr><td valign=top><em>ptrIn</em>&nbsp;</td><td>
1009input pointer to be validated </td></tr>
1010</table>
1011</dl><dl compact><dt><b>Returns: </b></dt><dd>
1012true if operation succeeds; </dl>    </td>
1013  </tr>
1014</table>
1015<hr><h2>Friends And Related Function Documentation</h2>
1016<a name="l0" doxytag="OsclMemAudit::OsclMemGlobalAuditObject"></a><p>
1017<table width="100%" cellpadding="2" cellspacing="0" border="0">
1018  <tr>
1019    <td class="md">
1020      <table cellpadding="0" cellspacing="0" border="0">
1021        <tr>
1022          <td class="md" nowrap valign="top"> friend class OsclMemGlobalAuditObject<code> [friend]</code>
1023      </table>
1024    </td>
1025  </tr>
1026</table>
1027<table cellspacing=5 cellpadding=0 border=0>
1028  <tr>
1029    <td>
1030      &nbsp;
1031    </td>
1032    <td>
1033
1034<p>
1035    </td>
1036  </tr>
1037</table>
1038<hr>The documentation for this class was generated from the following file:<ul>
1039<li><a class="el" href="oscl__mem__audit_8h-source.html">oscl_mem_audit.h</a></ul>
1040<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
1041<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
1042</small></address>
1043</body>
1044</html>
1045