• 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>OSCL Memory</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>OSCL Memory</h1><table border=0 cellpadding=0 cellspacing=0>
10<tr><td></td></tr>
11<tr><td colspan=2><br><h2>Files</h2></td></tr>
12<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem_8h.html">oscl_mem.h</a></td></tr>
13<tr><td>&nbsp;</td><td><font size=-1><em>This file contains basic memory definitions for common use across platforms.</em></font><br><br></td></tr>
14
15<p>
16<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem__audit_8h.html">oscl_mem_audit.h</a></td></tr>
17<tr><td>&nbsp;</td><td><font size=-1><em>This file contains the definition and partial implementation of MM_Audit class.</em></font><br><br></td></tr>
18
19<p>
20<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem__audit__internals_8h.html">oscl_mem_audit_internals.h</a></td></tr>
21<tr><td>&nbsp;</td><td><font size=-1><em>This file contains the internal definitions for the mem audit library.</em></font><br><br></td></tr>
22
23<p>
24<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem__auto__ptr_8h.html">oscl_mem_auto_ptr.h</a></td></tr>
25<tr><td>&nbsp;</td><td><font size=-1><em>This file defines the oscl_mem_auto_ptr template class. This class is used to avoid any potential memory leaks that may arise while returning from methods in case of error.</em></font><br><br></td></tr>
26
27<p>
28<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a></td></tr>
29<tr><td>&nbsp;</td><td><font size=-1><em>This file contains prototypes for the basic memory functions.</em></font><br><br></td></tr>
30
31<p>
32<tr><td nowrap align=right valign=top>file &nbsp;</td><td valign=bottom><a class="el" href="oscl__mem__mempool_8h.html">oscl_mem_mempool.h</a></td></tr>
33<tr><td>&nbsp;</td><td><font size=-1><em>This file contains the definition of memory pool allocators.</em></font><br><br></td></tr>
34
35<p>
36<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
37<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classallocator.html">allocator</a></td></tr>
38<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classallocator.html">allocator</a></td></tr>
39<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classHeapBase.html">HeapBase</a></td></tr>
40<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AllocBlockFence.html">MM_AllocBlockFence</a></td></tr>
41<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AllocBlockHdr.html">MM_AllocBlockHdr</a></td></tr>
42<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AllocInfo.html">MM_AllocInfo</a></td></tr>
43<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AllocNode.html">MM_AllocNode</a></td></tr>
44<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AllocQueryInfo.html">MM_AllocQueryInfo</a></td></tr>
45<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classMM__Audit__Imp.html">MM_Audit_Imp</a></td></tr>
46<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__AuditOverheadStats.html">MM_AuditOverheadStats</a></td></tr>
47<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__FailInsertParam.html">MM_FailInsertParam</a></td></tr>
48<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__Stats__CB.html">MM_Stats_CB</a></td></tr>
49<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMM__Stats__t.html">MM_Stats_t</a></td></tr>
50<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a></td></tr>
51<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMem.html">OsclMem</a></td></tr>
52<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a></td></tr>
53<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a></td></tr>
54<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAllocDestructDealloc.html">OsclMemAllocDestructDealloc</a></td></tr>
55<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAllocDestructDealloc.html">OsclMemAllocDestructDealloc</a></td></tr>
56<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemAudit.html">OsclMemAudit</a></td></tr>
57<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a></td></tr>
58<tr><td>&nbsp;</td><td><font size=-1><em>The oscl_auto_ptr class is a template class that defines a pointer like object intended to be assigned an address obtanined (directly or or indirectly) by new. When the oscl_auto_ptr expires, its destructor uses delete to free the memory.</em> <a href="classOSCLMemAutoPtr.html#_details">More...</a><em></em></font><br><br></td></tr>
59<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a></td></tr>
60<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a></td></tr>
61<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemBasicAllocDestructDealloc.html">OsclMemBasicAllocDestructDealloc</a></td></tr>
62<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemBasicAllocDestructDealloc.html">OsclMemBasicAllocDestructDealloc</a></td></tr>
63<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemGlobalAuditObject.html">OsclMemGlobalAuditObject</a></td></tr>
64<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolFixedChunkAllocator.html">OsclMemPoolFixedChunkAllocator</a></td></tr>
65<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolFixedChunkAllocatorObserver.html">OsclMemPoolFixedChunkAllocatorObserver</a></td></tr>
66<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html">OsclMemPoolResizableAllocator</a></td></tr>
67<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a></td></tr>
68<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a></td></tr>
69<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a></td></tr>
70<tr><td colspan=2><br><h2>Defines</h2></td></tr>
71<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a33">OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE</a></td></tr>
72<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a34">OSCL_HAS_GLOBAL_NEW_DELETE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
73<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a35">OSCL_CLEANUP_BASE_CLASS</a>(T)&nbsp;&nbsp;&nbsp;_OSCL_CLEANUP_BASE_CLASS(T)</td></tr>
74<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a36">OSCL_ALLOC_NEW</a>(T_allocator, T, params)&nbsp;&nbsp;&nbsp;new(T_allocator.allocate(1)) T params</td></tr>
75<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a37">OSCL_TRAP_ALLOC_NEW</a>(T_ptr, T_allocator, T, params)&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(T_allocator.allocate(1),T_allocator.deallocate,T_ptr,T,params)</td></tr>
76<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a38">OSCL_ALLOC_DELETE</a>(ptr, T_allocator, T)</td></tr>
77<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a39">OSCL_MALLOC</a>(count)&nbsp;&nbsp;&nbsp;_oscl_default_audit_malloc(count)</td></tr>
78<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a40">oscl_malloc</a>(a)&nbsp;&nbsp;&nbsp;OSCL_MALLOC(a)</td></tr>
79<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a41">OSCL_DEFAULT_MALLOC</a>(x)&nbsp;&nbsp;&nbsp;OSCL_MALLOC(x)</td></tr>
80<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a42">OSCL_AUDIT_MALLOC</a>(auditCB, count)&nbsp;&nbsp;&nbsp;_oscl_audit_malloc(count, auditCB)</td></tr>
81<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a43">OSCL_CALLOC</a>(num, size)&nbsp;&nbsp;&nbsp;_oscl_default_audit_calloc(num,size)</td></tr>
82<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a44">oscl_calloc</a>(a, b)&nbsp;&nbsp;&nbsp;OSCL_CALLOC(a,b)</td></tr>
83<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a45">OSCL_AUDIT_CALLOC</a>(auditCB, num, size)&nbsp;&nbsp;&nbsp;_oscl_audit_calloc(num,size, auditCB)</td></tr>
84<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a46">OSCL_REALLOC</a>(ptr, new_size)&nbsp;&nbsp;&nbsp;_oscl_default_audit_realloc(ptr,new_size)</td></tr>
85<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a47">oscl_realloc</a>(a, b)&nbsp;&nbsp;&nbsp;OSCL_REALLOC(a,b)</td></tr>
86<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a48">OSCL_AUDIT_REALLOC</a>(auditCB, ptr, new_size)&nbsp;&nbsp;&nbsp;_oscl_audit_realloc(ptr,new_size, auditCB)</td></tr>
87<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a49">OSCL_FREE</a>(ptr)&nbsp;&nbsp;&nbsp;_oscl_audit_free(ptr)</td></tr>
88<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a50">oscl_free</a>(x)&nbsp;&nbsp;&nbsp;OSCL_FREE(x)</td></tr>
89<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a51">OSCL_DEFAULT_FREE</a>(x)&nbsp;&nbsp;&nbsp;OSCL_FREE(x)</td></tr>
90<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a52">OSCL_NEW</a>(T, params)&nbsp;&nbsp;&nbsp;new T params</td></tr>
91<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a53">OSCL_PLACEMENT_NEW</a>(ptr, constructor)&nbsp;&nbsp;&nbsp;new(ptr) constructor</td></tr>
92<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a54">OSCL_TRAP_NEW</a>(T_ptr, T, params)&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(_oscl_default_audit_new(sizeof(T)),_oscl_audit_free,T_ptr,T,params)</td></tr>
93<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a55">OSCL_AUDIT_NEW</a>(auditCB, T, params)&nbsp;&nbsp;&nbsp;new(_oscl_audit_new(sizeof(T),auditCB)) T params</td></tr>
94<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a56">OSCL_TRAP_AUDIT_NEW</a>(T_ptr, auditCB, T, params)&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(_oscl_audit_new(sizeof(T),auditCB),_oscl_audit_free,T_ptr,T,params)</td></tr>
95<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a57">OSCL_DELETE</a>(ptr)</td></tr>
96<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a58">OSCL_AUDIT_ARRAY_NEW</a>(auditCB, T, count)&nbsp;&nbsp;&nbsp;new(_oscl_audit_new(sizeof(T)*(count),auditCB)) T</td></tr>
97<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a59">OSCL_ARRAY_NEW</a>(T, count)&nbsp;&nbsp;&nbsp;new T[count]</td></tr>
98<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a60">OSCL_ARRAY_DELETE</a>(ptr)&nbsp;&nbsp;&nbsp;delete [] ptr</td></tr>
99<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a61">_OSCL_TRAP_NEW</a>(exp, freeFunc, T_ptr, T, params)</td></tr>
100<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a62">_OSCL_CLEANUP_BASE_CLASS</a>(T)&nbsp;&nbsp;&nbsp;this-&gt;T::~T()</td></tr>
101<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a63">MM_ALLOC_MAX_QUERY_FILENAME_LEN</a>&nbsp;&nbsp;&nbsp;128</td></tr>
102<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a64">MM_ALLOC_MAX_QUERY_TAG_LEN</a>&nbsp;&nbsp;&nbsp;64</td></tr>
103<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a65">MM_AUDIT_VALIDATE_BLOCK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
104<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a66">MM_AUDIT_PREFILL_FLAG</a>&nbsp;&nbsp;&nbsp;0x1</td></tr>
105<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a67">MM_AUDIT_POSTFILL_FLAG</a>&nbsp;&nbsp;&nbsp;0x2</td></tr>
106<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a68">MM_AUDIT_VALIDATE_ALL_HEAP_FLAG</a>&nbsp;&nbsp;&nbsp;0x4</td></tr>
107<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a69">MM_AUDIT_VALIDATE_ON_FREE_FLAG</a>&nbsp;&nbsp;&nbsp;0x8</td></tr>
108<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a70">MM_AUDIT_ALLOC_NODE_ENABLE_FLAG</a>&nbsp;&nbsp;&nbsp;0x10</td></tr>
109<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a71">MM_AUDIT_SUPPRESS_FILENAME_FLAG</a>&nbsp;&nbsp;&nbsp;0x20</td></tr>
110<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a72">DEFAULT_MM_AUDIT_MODE</a>&nbsp;&nbsp;&nbsp;0</td></tr>
111<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a73">MM_AUDIT_ALLOC_NODE_SUPPORT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
112<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a74">MM_AUDIT_FENCE_SUPPORT</a>&nbsp;&nbsp;&nbsp;0</td></tr>
113<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a75">MM_AUDIT_INCLUDE_ALL_HEAP_VALIDATION</a>&nbsp;&nbsp;&nbsp;1</td></tr>
114<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a76">MM_AUDIT_FILL_SUPPORT</a>&nbsp;&nbsp;&nbsp;0</td></tr>
115<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a77">MM_AUDIT_FAILURE_SIMULATION_SUPPORT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
116<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a78">FENCE_PATTERN</a>&nbsp;&nbsp;&nbsp;0xAA</td></tr>
117<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a79">MIN_FENCE_SIZE</a>&nbsp;&nbsp;&nbsp;4</td></tr>
118<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a80">MEM_ALIGN_SIZE</a>&nbsp;&nbsp;&nbsp;8</td></tr>
119<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a81">COMPUTE_MEM_ALIGN_SIZE</a>(x, y, z)&nbsp;&nbsp;&nbsp;(y+(((x+y)%z) ? (z - (x+y)%z) : 0))</td></tr>
120<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a82">DEFAULT_PREFILL_PATTERN</a>&nbsp;&nbsp;&nbsp;0x96</td></tr>
121<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a83">DEFAULT_POSTFILL_PATTERN</a>&nbsp;&nbsp;&nbsp;0x5A</td></tr>
122<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a84">OSCL_DISABLE_WARNING_RETURN_TYPE_NOT_UDT</a></td></tr>
123<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
124<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt; char,<br>
125 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; char, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> &gt; &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a0">MMAuditCharAutoPtr</a></td></tr>
126<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt; uint8,<br>
127 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; uint8, <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> &gt; &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a1">MMAuditUint8AutoPtr</a></td></tr>
128<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt; <a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>,<br>
129 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; <a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>,<br>
130 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> &gt; &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a2">MM_AllocNodeAutoPtr</a></td></tr>
131<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt; <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br>
132 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br>
133 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> &gt; &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a></td></tr>
134<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt; <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br>
135 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br>
136 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> &gt; &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a4">OsclMemStatsNodeAutoPtr</a></td></tr>
137<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt; <a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>,<br>
138 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a5">TagTree_Allocator</a></td></tr>
139<tr><td nowrap align=right valign=top>typedef <a class="el" href="classOscl__TagTree.html">Oscl_TagTree</a>&lt; <a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>,<br>
140 <a class="el" href="group__osclmemory.html#a5">TagTree_Allocator</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a6">OsclTagTreeType</a></td></tr>
141<tr><td colspan=2><br><h2>Functions</h2></td></tr>
142<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a7">_oscl_malloc</a> (int32 count)</td></tr>
143<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a8">_oscl_calloc</a> (int32 nelems, int32 size)</td></tr>
144<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a9">_oscl_realloc</a> (void *src, int32 count)</td></tr>
145<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a10">_oscl_free</a> (void *src)</td></tr>
146<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a11">oscl_memcpy</a> (void *dest, const void *src, uint32 count)</td></tr>
147<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a12">oscl_memmove</a> (void *dest, const void *src, uint32 count)</td></tr>
148<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a13">oscl_memmove32</a> (void *dest, const void *src, uint32 count)</td></tr>
149<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a14">oscl_memset</a> (void *dest, uint8 val, uint32 count)</td></tr>
150<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF int&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a15">oscl_memcmp</a> (const void *buf1, const void *buf2, uint32 count)</td></tr>
151<tr><td nowrap align=right valign=top>OSCL_COND_IMPORT_REF <a class="el" href="group__osclbase.html#a27">uint</a>&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a16">oscl_mem_aligned_size</a> (<a class="el" href="group__osclbase.html#a27">uint</a> size)</td></tr>
152<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a17">OsclMemInit</a> (<a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;auditCB)</td></tr>
153<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a18">_oscl_audit_malloc</a> (size_t, <a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;, const char *f=NULL, const int l=0)</td></tr>
154<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a19">_oscl_audit_calloc</a> (size_t, size_t, <a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;, const char *f=NULL, const int l=0)</td></tr>
155<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a20">_oscl_audit_realloc</a> (void *, size_t, <a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;, const char *f=NULL, const int l=0)</td></tr>
156<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a21">_oscl_audit_new</a> (size_t, <a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;, const char *f=NULL, const int l=0)</td></tr>
157<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a22">_oscl_default_audit_malloc</a> (size_t, const char *f=NULL, const int l=0)</td></tr>
158<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a23">_oscl_default_audit_calloc</a> (size_t, size_t, const char *f=NULL, const int l=0)</td></tr>
159<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a24">_oscl_default_audit_realloc</a> (void *, size_t, const char *f=NULL, const int l=0)</td></tr>
160<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a25">_oscl_default_audit_new</a> (size_t, const char *f=NULL, const int l=0)</td></tr>
161<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a26">_oscl_audit_free</a> (void *)</td></tr>
162<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a27">operator new</a> (size_t aSize, const char *aFile, int aLine)</td></tr>
163<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a28">operator new</a> (size_t)</td></tr>
164<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a29">operator delete</a> (void *)</td></tr>
165<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a30">operator new[]</a> (size_t aSize, const char *aFile, int aLine)</td></tr>
166<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a31">operator new[]</a> (size_t aSize)</td></tr>
167<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a32">operator delete[]</a> (void *aPtr)</td></tr>
168<tr><td colspan=2><br><h2>Variables</h2></td></tr>
169<tr><td nowrap align=right valign=top>const uint32&nbsp;</td><td valign=bottom><a class="el" href="group__osclmemory.html#a85">ALLOC_NODE_FLAG</a> = 0x80000000</td></tr>
170</table>
171<hr><h2>Define Documentation</h2>
172<a name="a62" doxytag="oscl_mem.h::_OSCL_CLEANUP_BASE_CLASS"></a><p>
173<table width="100%" cellpadding="2" cellspacing="0" border="0">
174  <tr>
175    <td class="md">
176      <table cellpadding="0" cellspacing="0" border="0">
177        <tr>
178          <td class="md" nowrap valign="top"> #define _OSCL_CLEANUP_BASE_CLASS</td>
179          <td class="md" valign="top">(&nbsp;</td>
180          <td class="md" nowrap valign="top">T&nbsp;</td>
181          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
182          <td class="md" valign="top">)&nbsp;</td>
183          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;this-&gt;T::~T()
184      </table>
185    </td>
186  </tr>
187</table>
188<table cellspacing=5 cellpadding=0 border=0>
189  <tr>
190    <td>
191      &nbsp;
192    </td>
193    <td>
194
195<p>
196This macro is used to cleanup the base class in a derived-class constructor just before a leave occurs.<dl compact><dt><b>Parameters: </b></dt><dd>
197<table border=0 cellspacing=2 cellpadding=0>
198<tr><td valign=top><em>T:</em>&nbsp;</td><td>
199base class name. </td></tr>
200</table>
201</dl>    </td>
202  </tr>
203</table>
204<a name="a61" doxytag="oscl_mem.h::_OSCL_TRAP_NEW"></a><p>
205<table width="100%" cellpadding="2" cellspacing="0" border="0">
206  <tr>
207    <td class="md">
208      <table cellpadding="0" cellspacing="0" border="0">
209        <tr>
210          <td class="md" nowrap valign="top"> #define _OSCL_TRAP_NEW</td>
211          <td class="md" valign="top">(&nbsp;</td>
212          <td class="md" nowrap valign="top">exp,         <tr>
213          <td></td>
214          <td></td>
215          <td class="md" nowrap>freeFunc,         <tr>
216          <td></td>
217          <td></td>
218          <td class="md" nowrap>T_ptr,         <tr>
219          <td></td>
220          <td></td>
221          <td class="md" nowrap>T,         <tr>
222          <td></td>
223          <td></td>
224          <td class="md" nowrap>params&nbsp;</td>
225          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
226          <td class="md" valign="top">)&nbsp;</td>
227          <td class="md" nowrap>
228      </table>
229    </td>
230  </tr>
231</table>
232<table cellspacing=5 cellpadding=0 border=0>
233  <tr>
234    <td>
235      &nbsp;
236    </td>
237    <td>
238
239<p>
240<b>Value:</b><div class="fragment"><pre>{\
241    int32 __err;\
242    <a class="code" href="group__osclbase.html#a25">OsclAny</a>*__ptr=exp;\
243    <a class="code" href="group__osclerror.html#a47">OSCL_TRY</a>(__err,T_ptr=<span class="keyword">new</span>(__ptr) T params;);\
244    <span class="keywordflow">if</span>(__err){\
245        freeFunc(__ptr);\
246        T_ptr=<a class="code" href="group__osclbase.html#a81">NULL</a>;\
247        <a class="code" href="classOsclError.html#d7">OsclError::Leave</a>(__err);\
248    }\
249}</pre></div>Internal-use macro to catch leaves in constructors. If the constructor leaves, this will free the memory before allowing the leave to propagate to the next level. It is the constructor's responsibility to cleanup any memory in the partially constructed object before leaving. This cleanup may include cleaning up the base class using the OSCL_CLEANUP_BASE_CLASS macro.<dl compact><dt><b>Parameters: </b></dt><dd>
250<table border=0 cellspacing=2 cellpadding=0>
251<tr><td valign=top><em>exp:</em>&nbsp;</td><td>
252expression to allocate memory. </td></tr>
253<tr><td valign=top><em>Tptr:variable</em>&nbsp;</td><td>
254to hold result. </td></tr>
255<tr><td valign=top><em>T:</em>&nbsp;</td><td>
256type </td></tr>
257<tr><td valign=top><em>params:</em>&nbsp;</td><td>
258constructor arg list </td></tr>
259<tr><td valign=top><em>freeFunc:</em>&nbsp;</td><td>
260delete or free function. </td></tr>
261</table>
262</dl>    </td>
263  </tr>
264</table>
265<a name="a81" doxytag="oscl_mem_audit_internals.h::COMPUTE_MEM_ALIGN_SIZE"></a><p>
266<table width="100%" cellpadding="2" cellspacing="0" border="0">
267  <tr>
268    <td class="md">
269      <table cellpadding="0" cellspacing="0" border="0">
270        <tr>
271          <td class="md" nowrap valign="top"> #define COMPUTE_MEM_ALIGN_SIZE</td>
272          <td class="md" valign="top">(&nbsp;</td>
273          <td class="md" nowrap valign="top">x,         <tr>
274          <td></td>
275          <td></td>
276          <td class="md" nowrap>y,         <tr>
277          <td></td>
278          <td></td>
279          <td class="md" nowrap>z&nbsp;</td>
280          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
281          <td class="md" valign="top">)&nbsp;</td>
282          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(y+(((x+y)%z) ? (z - (x+y)%z) : 0))
283      </table>
284    </td>
285  </tr>
286</table>
287<table cellspacing=5 cellpadding=0 border=0>
288  <tr>
289    <td>
290      &nbsp;
291    </td>
292    <td>
293
294<p>
295    </td>
296  </tr>
297</table>
298<a name="a72" doxytag="oscl_mem_audit.h::DEFAULT_MM_AUDIT_MODE"></a><p>
299<table width="100%" cellpadding="2" cellspacing="0" border="0">
300  <tr>
301    <td class="md">
302      <table cellpadding="0" cellspacing="0" border="0">
303        <tr>
304          <td class="md" nowrap valign="top"> #define DEFAULT_MM_AUDIT_MODE&nbsp;&nbsp;&nbsp;0
305      </table>
306    </td>
307  </tr>
308</table>
309<table cellspacing=5 cellpadding=0 border=0>
310  <tr>
311    <td>
312      &nbsp;
313    </td>
314    <td>
315
316<p>
317    </td>
318  </tr>
319</table>
320<a name="a83" doxytag="oscl_mem_audit_internals.h::DEFAULT_POSTFILL_PATTERN"></a><p>
321<table width="100%" cellpadding="2" cellspacing="0" border="0">
322  <tr>
323    <td class="md">
324      <table cellpadding="0" cellspacing="0" border="0">
325        <tr>
326          <td class="md" nowrap valign="top"> #define DEFAULT_POSTFILL_PATTERN&nbsp;&nbsp;&nbsp;0x5A
327      </table>
328    </td>
329  </tr>
330</table>
331<table cellspacing=5 cellpadding=0 border=0>
332  <tr>
333    <td>
334      &nbsp;
335    </td>
336    <td>
337
338<p>
339    </td>
340  </tr>
341</table>
342<a name="a82" doxytag="oscl_mem_audit_internals.h::DEFAULT_PREFILL_PATTERN"></a><p>
343<table width="100%" cellpadding="2" cellspacing="0" border="0">
344  <tr>
345    <td class="md">
346      <table cellpadding="0" cellspacing="0" border="0">
347        <tr>
348          <td class="md" nowrap valign="top"> #define DEFAULT_PREFILL_PATTERN&nbsp;&nbsp;&nbsp;0x96
349      </table>
350    </td>
351  </tr>
352</table>
353<table cellspacing=5 cellpadding=0 border=0>
354  <tr>
355    <td>
356      &nbsp;
357    </td>
358    <td>
359
360<p>
361    </td>
362  </tr>
363</table>
364<a name="a78" doxytag="oscl_mem_audit_internals.h::FENCE_PATTERN"></a><p>
365<table width="100%" cellpadding="2" cellspacing="0" border="0">
366  <tr>
367    <td class="md">
368      <table cellpadding="0" cellspacing="0" border="0">
369        <tr>
370          <td class="md" nowrap valign="top"> #define FENCE_PATTERN&nbsp;&nbsp;&nbsp;0xAA
371      </table>
372    </td>
373  </tr>
374</table>
375<table cellspacing=5 cellpadding=0 border=0>
376  <tr>
377    <td>
378      &nbsp;
379    </td>
380    <td>
381
382<p>
383    </td>
384  </tr>
385</table>
386<a name="a80" doxytag="oscl_mem_audit_internals.h::MEM_ALIGN_SIZE"></a><p>
387<table width="100%" cellpadding="2" cellspacing="0" border="0">
388  <tr>
389    <td class="md">
390      <table cellpadding="0" cellspacing="0" border="0">
391        <tr>
392          <td class="md" nowrap valign="top"> #define MEM_ALIGN_SIZE&nbsp;&nbsp;&nbsp;8
393      </table>
394    </td>
395  </tr>
396</table>
397<table cellspacing=5 cellpadding=0 border=0>
398  <tr>
399    <td>
400      &nbsp;
401    </td>
402    <td>
403
404<p>
405    </td>
406  </tr>
407</table>
408<a name="a79" doxytag="oscl_mem_audit_internals.h::MIN_FENCE_SIZE"></a><p>
409<table width="100%" cellpadding="2" cellspacing="0" border="0">
410  <tr>
411    <td class="md">
412      <table cellpadding="0" cellspacing="0" border="0">
413        <tr>
414          <td class="md" nowrap valign="top"> #define MIN_FENCE_SIZE&nbsp;&nbsp;&nbsp;4
415      </table>
416    </td>
417  </tr>
418</table>
419<table cellspacing=5 cellpadding=0 border=0>
420  <tr>
421    <td>
422      &nbsp;
423    </td>
424    <td>
425
426<p>
427    </td>
428  </tr>
429</table>
430<a name="a63" doxytag="oscl_mem_audit.h::MM_ALLOC_MAX_QUERY_FILENAME_LEN"></a><p>
431<table width="100%" cellpadding="2" cellspacing="0" border="0">
432  <tr>
433    <td class="md">
434      <table cellpadding="0" cellspacing="0" border="0">
435        <tr>
436          <td class="md" nowrap valign="top"> #define MM_ALLOC_MAX_QUERY_FILENAME_LEN&nbsp;&nbsp;&nbsp;128
437      </table>
438    </td>
439  </tr>
440</table>
441<table cellspacing=5 cellpadding=0 border=0>
442  <tr>
443    <td>
444      &nbsp;
445    </td>
446    <td>
447
448<p>
449    </td>
450  </tr>
451</table>
452<a name="a64" doxytag="oscl_mem_audit.h::MM_ALLOC_MAX_QUERY_TAG_LEN"></a><p>
453<table width="100%" cellpadding="2" cellspacing="0" border="0">
454  <tr>
455    <td class="md">
456      <table cellpadding="0" cellspacing="0" border="0">
457        <tr>
458          <td class="md" nowrap valign="top"> #define MM_ALLOC_MAX_QUERY_TAG_LEN&nbsp;&nbsp;&nbsp;64
459      </table>
460    </td>
461  </tr>
462</table>
463<table cellspacing=5 cellpadding=0 border=0>
464  <tr>
465    <td>
466      &nbsp;
467    </td>
468    <td>
469
470<p>
471    </td>
472  </tr>
473</table>
474<a name="a70" doxytag="oscl_mem_audit.h::MM_AUDIT_ALLOC_NODE_ENABLE_FLAG"></a><p>
475<table width="100%" cellpadding="2" cellspacing="0" border="0">
476  <tr>
477    <td class="md">
478      <table cellpadding="0" cellspacing="0" border="0">
479        <tr>
480          <td class="md" nowrap valign="top"> #define MM_AUDIT_ALLOC_NODE_ENABLE_FLAG&nbsp;&nbsp;&nbsp;0x10
481      </table>
482    </td>
483  </tr>
484</table>
485<table cellspacing=5 cellpadding=0 border=0>
486  <tr>
487    <td>
488      &nbsp;
489    </td>
490    <td>
491
492<p>
493    </td>
494  </tr>
495</table>
496<a name="a73" doxytag="oscl_mem_audit_internals.h::MM_AUDIT_ALLOC_NODE_SUPPORT"></a><p>
497<table width="100%" cellpadding="2" cellspacing="0" border="0">
498  <tr>
499    <td class="md">
500      <table cellpadding="0" cellspacing="0" border="0">
501        <tr>
502          <td class="md" nowrap valign="top"> #define MM_AUDIT_ALLOC_NODE_SUPPORT&nbsp;&nbsp;&nbsp;1
503      </table>
504    </td>
505  </tr>
506</table>
507<table cellspacing=5 cellpadding=0 border=0>
508  <tr>
509    <td>
510      &nbsp;
511    </td>
512    <td>
513
514<p>
515    </td>
516  </tr>
517</table>
518<a name="a77" doxytag="oscl_mem_audit_internals.h::MM_AUDIT_FAILURE_SIMULATION_SUPPORT"></a><p>
519<table width="100%" cellpadding="2" cellspacing="0" border="0">
520  <tr>
521    <td class="md">
522      <table cellpadding="0" cellspacing="0" border="0">
523        <tr>
524          <td class="md" nowrap valign="top"> #define MM_AUDIT_FAILURE_SIMULATION_SUPPORT&nbsp;&nbsp;&nbsp;1
525      </table>
526    </td>
527  </tr>
528</table>
529<table cellspacing=5 cellpadding=0 border=0>
530  <tr>
531    <td>
532      &nbsp;
533    </td>
534    <td>
535
536<p>
537    </td>
538  </tr>
539</table>
540<a name="a74" doxytag="oscl_mem_audit_internals.h::MM_AUDIT_FENCE_SUPPORT"></a><p>
541<table width="100%" cellpadding="2" cellspacing="0" border="0">
542  <tr>
543    <td class="md">
544      <table cellpadding="0" cellspacing="0" border="0">
545        <tr>
546          <td class="md" nowrap valign="top"> #define MM_AUDIT_FENCE_SUPPORT&nbsp;&nbsp;&nbsp;0
547      </table>
548    </td>
549  </tr>
550</table>
551<table cellspacing=5 cellpadding=0 border=0>
552  <tr>
553    <td>
554      &nbsp;
555    </td>
556    <td>
557
558<p>
559    </td>
560  </tr>
561</table>
562<a name="a76" doxytag="oscl_mem_audit_internals.h::MM_AUDIT_FILL_SUPPORT"></a><p>
563<table width="100%" cellpadding="2" cellspacing="0" border="0">
564  <tr>
565    <td class="md">
566      <table cellpadding="0" cellspacing="0" border="0">
567        <tr>
568          <td class="md" nowrap valign="top"> #define MM_AUDIT_FILL_SUPPORT&nbsp;&nbsp;&nbsp;0
569      </table>
570    </td>
571  </tr>
572</table>
573<table cellspacing=5 cellpadding=0 border=0>
574  <tr>
575    <td>
576      &nbsp;
577    </td>
578    <td>
579
580<p>
581    </td>
582  </tr>
583</table>
584<a name="a75" doxytag="oscl_mem_audit_internals.h::MM_AUDIT_INCLUDE_ALL_HEAP_VALIDATION"></a><p>
585<table width="100%" cellpadding="2" cellspacing="0" border="0">
586  <tr>
587    <td class="md">
588      <table cellpadding="0" cellspacing="0" border="0">
589        <tr>
590          <td class="md" nowrap valign="top"> #define MM_AUDIT_INCLUDE_ALL_HEAP_VALIDATION&nbsp;&nbsp;&nbsp;1
591      </table>
592    </td>
593  </tr>
594</table>
595<table cellspacing=5 cellpadding=0 border=0>
596  <tr>
597    <td>
598      &nbsp;
599    </td>
600    <td>
601
602<p>
603    </td>
604  </tr>
605</table>
606<a name="a67" doxytag="oscl_mem_audit.h::MM_AUDIT_POSTFILL_FLAG"></a><p>
607<table width="100%" cellpadding="2" cellspacing="0" border="0">
608  <tr>
609    <td class="md">
610      <table cellpadding="0" cellspacing="0" border="0">
611        <tr>
612          <td class="md" nowrap valign="top"> #define MM_AUDIT_POSTFILL_FLAG&nbsp;&nbsp;&nbsp;0x2
613      </table>
614    </td>
615  </tr>
616</table>
617<table cellspacing=5 cellpadding=0 border=0>
618  <tr>
619    <td>
620      &nbsp;
621    </td>
622    <td>
623
624<p>
625    </td>
626  </tr>
627</table>
628<a name="a66" doxytag="oscl_mem_audit.h::MM_AUDIT_PREFILL_FLAG"></a><p>
629<table width="100%" cellpadding="2" cellspacing="0" border="0">
630  <tr>
631    <td class="md">
632      <table cellpadding="0" cellspacing="0" border="0">
633        <tr>
634          <td class="md" nowrap valign="top"> #define MM_AUDIT_PREFILL_FLAG&nbsp;&nbsp;&nbsp;0x1
635      </table>
636    </td>
637  </tr>
638</table>
639<table cellspacing=5 cellpadding=0 border=0>
640  <tr>
641    <td>
642      &nbsp;
643    </td>
644    <td>
645
646<p>
647    </td>
648  </tr>
649</table>
650<a name="a71" doxytag="oscl_mem_audit.h::MM_AUDIT_SUPPRESS_FILENAME_FLAG"></a><p>
651<table width="100%" cellpadding="2" cellspacing="0" border="0">
652  <tr>
653    <td class="md">
654      <table cellpadding="0" cellspacing="0" border="0">
655        <tr>
656          <td class="md" nowrap valign="top"> #define MM_AUDIT_SUPPRESS_FILENAME_FLAG&nbsp;&nbsp;&nbsp;0x20
657      </table>
658    </td>
659  </tr>
660</table>
661<table cellspacing=5 cellpadding=0 border=0>
662  <tr>
663    <td>
664      &nbsp;
665    </td>
666    <td>
667
668<p>
669    </td>
670  </tr>
671</table>
672<a name="a68" doxytag="oscl_mem_audit.h::MM_AUDIT_VALIDATE_ALL_HEAP_FLAG"></a><p>
673<table width="100%" cellpadding="2" cellspacing="0" border="0">
674  <tr>
675    <td class="md">
676      <table cellpadding="0" cellspacing="0" border="0">
677        <tr>
678          <td class="md" nowrap valign="top"> #define MM_AUDIT_VALIDATE_ALL_HEAP_FLAG&nbsp;&nbsp;&nbsp;0x4
679      </table>
680    </td>
681  </tr>
682</table>
683<table cellspacing=5 cellpadding=0 border=0>
684  <tr>
685    <td>
686      &nbsp;
687    </td>
688    <td>
689
690<p>
691    </td>
692  </tr>
693</table>
694<a name="a65" doxytag="oscl_mem_audit.h::MM_AUDIT_VALIDATE_BLOCK"></a><p>
695<table width="100%" cellpadding="2" cellspacing="0" border="0">
696  <tr>
697    <td class="md">
698      <table cellpadding="0" cellspacing="0" border="0">
699        <tr>
700          <td class="md" nowrap valign="top"> #define MM_AUDIT_VALIDATE_BLOCK&nbsp;&nbsp;&nbsp;1
701      </table>
702    </td>
703  </tr>
704</table>
705<table cellspacing=5 cellpadding=0 border=0>
706  <tr>
707    <td>
708      &nbsp;
709    </td>
710    <td>
711
712<p>
713    </td>
714  </tr>
715</table>
716<a name="a69" doxytag="oscl_mem_audit.h::MM_AUDIT_VALIDATE_ON_FREE_FLAG"></a><p>
717<table width="100%" cellpadding="2" cellspacing="0" border="0">
718  <tr>
719    <td class="md">
720      <table cellpadding="0" cellspacing="0" border="0">
721        <tr>
722          <td class="md" nowrap valign="top"> #define MM_AUDIT_VALIDATE_ON_FREE_FLAG&nbsp;&nbsp;&nbsp;0x8
723      </table>
724    </td>
725  </tr>
726</table>
727<table cellspacing=5 cellpadding=0 border=0>
728  <tr>
729    <td>
730      &nbsp;
731    </td>
732    <td>
733
734<p>
735    </td>
736  </tr>
737</table>
738<a name="a38" doxytag="oscl_mem.h::OSCL_ALLOC_DELETE"></a><p>
739<table width="100%" cellpadding="2" cellspacing="0" border="0">
740  <tr>
741    <td class="md">
742      <table cellpadding="0" cellspacing="0" border="0">
743        <tr>
744          <td class="md" nowrap valign="top"> #define OSCL_ALLOC_DELETE</td>
745          <td class="md" valign="top">(&nbsp;</td>
746          <td class="md" nowrap valign="top">ptr,         <tr>
747          <td></td>
748          <td></td>
749          <td class="md" nowrap>T_allocator,         <tr>
750          <td></td>
751          <td></td>
752          <td class="md" nowrap>T&nbsp;</td>
753          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
754          <td class="md" valign="top">)&nbsp;</td>
755          <td class="md" nowrap>
756      </table>
757    </td>
758  </tr>
759</table>
760<table cellspacing=5 cellpadding=0 border=0>
761  <tr>
762    <td>
763      &nbsp;
764    </td>
765    <td>
766
767<p>
768<b>Value:</b><div class="fragment"><pre>{\
769  ptr-&gt;~T();\
770  T_allocator.deallocate(ptr);\
771  }</pre></div>Deletes the object of type T using the given allocator<dl compact><dt><b>Parameters: </b></dt><dd>
772<table border=0 cellspacing=2 cellpadding=0>
773<tr><td valign=top><em>T_allocator</em>&nbsp;</td><td>
774allocator for objects of type T </td></tr>
775<tr><td valign=top><em>T</em>&nbsp;</td><td>
776type of object to delete </td></tr>
777<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
778pointer to previously created object</td></tr>
779</table>
780</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
781<table border=0 cellspacing=2 cellpadding=0>
782<tr><td valign=top><em>none</em>&nbsp;</td><td>
783, unless thrown by the given allocator </td></tr>
784</table>
785</dl>    </td>
786  </tr>
787</table>
788<a name="a36" doxytag="oscl_mem.h::OSCL_ALLOC_NEW"></a><p>
789<table width="100%" cellpadding="2" cellspacing="0" border="0">
790  <tr>
791    <td class="md">
792      <table cellpadding="0" cellspacing="0" border="0">
793        <tr>
794          <td class="md" nowrap valign="top"> #define OSCL_ALLOC_NEW</td>
795          <td class="md" valign="top">(&nbsp;</td>
796          <td class="md" nowrap valign="top">T_allocator,         <tr>
797          <td></td>
798          <td></td>
799          <td class="md" nowrap>T,         <tr>
800          <td></td>
801          <td></td>
802          <td class="md" nowrap>params&nbsp;</td>
803          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
804          <td class="md" valign="top">)&nbsp;</td>
805          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new(T_allocator.allocate(1)) T params
806      </table>
807    </td>
808  </tr>
809</table>
810<table cellspacing=5 cellpadding=0 border=0>
811  <tr>
812    <td>
813      &nbsp;
814    </td>
815    <td>
816
817<p>
818Creates an object of type T using the given allocator to acquire the memory needed.<dl compact><dt><b>Parameters: </b></dt><dd>
819<table border=0 cellspacing=2 cellpadding=0>
820<tr><td valign=top><em>T_allocator</em>&nbsp;</td><td>
821allocator for objects of type T, must be an <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;T, Allocator&gt;, where Allocator is an <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> </td></tr>
822<tr><td valign=top><em>T</em>&nbsp;</td><td>
823type of object to create </td></tr>
824<tr><td valign=top><em>params</em>&nbsp;</td><td>
825object initialization parameters</td></tr>
826</table>
827</dl><dl compact><dt><b>Returns: </b></dt><dd>
828pointer to created object</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
829<table border=0 cellspacing=2 cellpadding=0>
830<tr><td valign=top><em>none</em>&nbsp;</td><td>
831, unless thrown by the given allocator </td></tr>
832</table>
833</dl>    </td>
834  </tr>
835</table>
836<a name="a60" doxytag="oscl_mem.h::OSCL_ARRAY_DELETE"></a><p>
837<table width="100%" cellpadding="2" cellspacing="0" border="0">
838  <tr>
839    <td class="md">
840      <table cellpadding="0" cellspacing="0" border="0">
841        <tr>
842          <td class="md" nowrap valign="top"> #define OSCL_ARRAY_DELETE</td>
843          <td class="md" valign="top">(&nbsp;</td>
844          <td class="md" nowrap valign="top">ptr&nbsp;</td>
845          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
846          <td class="md" valign="top">)&nbsp;</td>
847          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;delete [] ptr
848      </table>
849    </td>
850  </tr>
851</table>
852<table cellspacing=5 cellpadding=0 border=0>
853  <tr>
854    <td>
855      &nbsp;
856    </td>
857    <td>
858
859<p>
860Oscl array delete operator..<dl compact><dt><b>Parameters: </b></dt><dd>
861<table border=0 cellspacing=2 cellpadding=0>
862<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
863pointer to memory block previously allocated with OSCL_ARRAY_NEW</td></tr>
864</table>
865</dl><dl compact><dt><b>Returns: </b></dt><dd>
866void </dl>    </td>
867  </tr>
868</table>
869<a name="a59" doxytag="oscl_mem.h::OSCL_ARRAY_NEW"></a><p>
870<table width="100%" cellpadding="2" cellspacing="0" border="0">
871  <tr>
872    <td class="md">
873      <table cellpadding="0" cellspacing="0" border="0">
874        <tr>
875          <td class="md" nowrap valign="top"> #define OSCL_ARRAY_NEW</td>
876          <td class="md" valign="top">(&nbsp;</td>
877          <td class="md" nowrap valign="top">T,         <tr>
878          <td></td>
879          <td></td>
880          <td class="md" nowrap>count&nbsp;</td>
881          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
882          <td class="md" valign="top">)&nbsp;</td>
883          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new T[count]
884      </table>
885    </td>
886  </tr>
887</table>
888<table cellspacing=5 cellpadding=0 border=0>
889  <tr>
890    <td>
891      &nbsp;
892    </td>
893    <td>
894
895<p>
896Oscl array "new" operator. This uses the global memory audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
897<table border=0 cellspacing=2 cellpadding=0>
898<tr><td valign=top><em>T</em>&nbsp;</td><td>
899data type for 'new' operation </td></tr>
900<tr><td valign=top><em>count</em>&nbsp;</td><td>
901number of elements to create</td></tr>
902</table>
903</dl><dl compact><dt><b>Returns: </b></dt><dd>
904pointer to the newly created object array of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
905<table border=0 cellspacing=2 cellpadding=0>
906<tr><td valign=top><em>may</em>&nbsp;</td><td>
907 leave with code = bad alloc </td></tr>
908</table>
909</dl>    </td>
910  </tr>
911</table>
912<a name="a58" doxytag="oscl_mem.h::OSCL_AUDIT_ARRAY_NEW"></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"> #define OSCL_AUDIT_ARRAY_NEW</td>
919          <td class="md" valign="top">(&nbsp;</td>
920          <td class="md" nowrap valign="top">auditCB,         <tr>
921          <td></td>
922          <td></td>
923          <td class="md" nowrap>T,         <tr>
924          <td></td>
925          <td></td>
926          <td class="md" nowrap>count&nbsp;</td>
927          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
928          <td class="md" valign="top">)&nbsp;</td>
929          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new(_oscl_audit_new(sizeof(T)*(count),auditCB)) T
930      </table>
931    </td>
932  </tr>
933</table>
934<table cellspacing=5 cellpadding=0 border=0>
935  <tr>
936    <td>
937      &nbsp;
938    </td>
939    <td>
940
941<p>
942Oscl array "new" operator. This uses the input memory audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
943<table border=0 cellspacing=2 cellpadding=0>
944<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
945input memory management audit object </td></tr>
946<tr><td valign=top><em>T</em>&nbsp;</td><td>
947data type for 'new' operation </td></tr>
948<tr><td valign=top><em>count</em>&nbsp;</td><td>
949number of elements to create</td></tr>
950</table>
951</dl><dl compact><dt><b>Returns: </b></dt><dd>
952pointer to the newly created object array of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
953<table border=0 cellspacing=2 cellpadding=0>
954<tr><td valign=top><em>may</em>&nbsp;</td><td>
955 leave with code = bad alloc </td></tr>
956</table>
957</dl>    </td>
958  </tr>
959</table>
960<a name="a45" doxytag="oscl_mem.h::OSCL_AUDIT_CALLOC"></a><p>
961<table width="100%" cellpadding="2" cellspacing="0" border="0">
962  <tr>
963    <td class="md">
964      <table cellpadding="0" cellspacing="0" border="0">
965        <tr>
966          <td class="md" nowrap valign="top"> #define OSCL_AUDIT_CALLOC</td>
967          <td class="md" valign="top">(&nbsp;</td>
968          <td class="md" nowrap valign="top">auditCB,         <tr>
969          <td></td>
970          <td></td>
971          <td class="md" nowrap>num,         <tr>
972          <td></td>
973          <td></td>
974          <td class="md" nowrap>size&nbsp;</td>
975          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
976          <td class="md" valign="top">)&nbsp;</td>
977          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_audit_calloc(num,size, auditCB)
978      </table>
979    </td>
980  </tr>
981</table>
982<table cellspacing=5 cellpadding=0 border=0>
983  <tr>
984    <td>
985      &nbsp;
986    </td>
987    <td>
988
989<p>
990Allocates a memory block using the specified audit object. The block is initialized to zero.<dl compact><dt><b>Parameters: </b></dt><dd>
991<table border=0 cellspacing=2 cellpadding=0>
992<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
993input memory management audit object </td></tr>
994<tr><td valign=top><em>num</em>&nbsp;</td><td>
995number of elements </td></tr>
996<tr><td valign=top><em>size</em>&nbsp;</td><td>
997number of bytes to allocate for each element</td></tr>
998</table>
999</dl><dl compact><dt><b>Returns: </b></dt><dd>
1000a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1001<table border=0 cellspacing=2 cellpadding=0>
1002<tr><td valign=top><em>none</em>&nbsp;</td><td>
1003 </td></tr>
1004</table>
1005</dl>    </td>
1006  </tr>
1007</table>
1008<a name="a42" doxytag="oscl_mem.h::OSCL_AUDIT_MALLOC"></a><p>
1009<table width="100%" cellpadding="2" cellspacing="0" border="0">
1010  <tr>
1011    <td class="md">
1012      <table cellpadding="0" cellspacing="0" border="0">
1013        <tr>
1014          <td class="md" nowrap valign="top"> #define OSCL_AUDIT_MALLOC</td>
1015          <td class="md" valign="top">(&nbsp;</td>
1016          <td class="md" nowrap valign="top">auditCB,         <tr>
1017          <td></td>
1018          <td></td>
1019          <td class="md" nowrap>count&nbsp;</td>
1020          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1021          <td class="md" valign="top">)&nbsp;</td>
1022          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_audit_malloc(count, auditCB)
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>
1035Allocates a memory block using the given audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1036<table border=0 cellspacing=2 cellpadding=0>
1037<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
1038input memory management audit object </td></tr>
1039<tr><td valign=top><em>count</em>&nbsp;</td><td>
1040number of bytes to allocate</td></tr>
1041</table>
1042</dl><dl compact><dt><b>Returns: </b></dt><dd>
1043a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1044<table border=0 cellspacing=2 cellpadding=0>
1045<tr><td valign=top><em>none</em>&nbsp;</td><td>
1046 </td></tr>
1047</table>
1048</dl>    </td>
1049  </tr>
1050</table>
1051<a name="a55" doxytag="oscl_mem.h::OSCL_AUDIT_NEW"></a><p>
1052<table width="100%" cellpadding="2" cellspacing="0" border="0">
1053  <tr>
1054    <td class="md">
1055      <table cellpadding="0" cellspacing="0" border="0">
1056        <tr>
1057          <td class="md" nowrap valign="top"> #define OSCL_AUDIT_NEW</td>
1058          <td class="md" valign="top">(&nbsp;</td>
1059          <td class="md" nowrap valign="top">auditCB,         <tr>
1060          <td></td>
1061          <td></td>
1062          <td class="md" nowrap>T,         <tr>
1063          <td></td>
1064          <td></td>
1065          <td class="md" nowrap>params&nbsp;</td>
1066          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1067          <td class="md" valign="top">)&nbsp;</td>
1068          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new(_oscl_audit_new(sizeof(T),auditCB)) T params
1069      </table>
1070    </td>
1071  </tr>
1072</table>
1073<table cellspacing=5 cellpadding=0 border=0>
1074  <tr>
1075    <td>
1076      &nbsp;
1077    </td>
1078    <td>
1079
1080<p>
1081Oscl "new" operator. This uses the specified memory audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1082<table border=0 cellspacing=2 cellpadding=0>
1083<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
1084input memory management audit object </td></tr>
1085<tr><td valign=top><em>T</em>&nbsp;</td><td>
1086data type for 'new' operation </td></tr>
1087<tr><td valign=top><em>params</em>&nbsp;</td><td>
1088object initialization parameters</td></tr>
1089</table>
1090</dl><dl compact><dt><b>Returns: </b></dt><dd>
1091pointer to the newly created object of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1092<table border=0 cellspacing=2 cellpadding=0>
1093<tr><td valign=top><em>may</em>&nbsp;</td><td>
1094 leave with code = bad alloc </td></tr>
1095</table>
1096</dl>    </td>
1097  </tr>
1098</table>
1099<a name="a48" doxytag="oscl_mem.h::OSCL_AUDIT_REALLOC"></a><p>
1100<table width="100%" cellpadding="2" cellspacing="0" border="0">
1101  <tr>
1102    <td class="md">
1103      <table cellpadding="0" cellspacing="0" border="0">
1104        <tr>
1105          <td class="md" nowrap valign="top"> #define OSCL_AUDIT_REALLOC</td>
1106          <td class="md" valign="top">(&nbsp;</td>
1107          <td class="md" nowrap valign="top">auditCB,         <tr>
1108          <td></td>
1109          <td></td>
1110          <td class="md" nowrap>ptr,         <tr>
1111          <td></td>
1112          <td></td>
1113          <td class="md" nowrap>new_size&nbsp;</td>
1114          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1115          <td class="md" valign="top">)&nbsp;</td>
1116          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_audit_realloc(ptr,new_size, auditCB)
1117      </table>
1118    </td>
1119  </tr>
1120</table>
1121<table cellspacing=5 cellpadding=0 border=0>
1122  <tr>
1123    <td>
1124      &nbsp;
1125    </td>
1126    <td>
1127
1128<p>
1129Re-Allocates a memory block using the specified audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1130<table border=0 cellspacing=2 cellpadding=0>
1131<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
1132input memory management audit object </td></tr>
1133<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
1134original memory block </td></tr>
1135<tr><td valign=top><em>new_size</em>&nbsp;</td><td>
1136New size of the block</td></tr>
1137</table>
1138</dl><dl compact><dt><b>Returns: </b></dt><dd>
1139a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1140<table border=0 cellspacing=2 cellpadding=0>
1141<tr><td valign=top><em>none</em>&nbsp;</td><td>
1142 </td></tr>
1143</table>
1144</dl>    </td>
1145  </tr>
1146</table>
1147<a name="a44" doxytag="oscl_mem.h::oscl_calloc"></a><p>
1148<table width="100%" cellpadding="2" cellspacing="0" border="0">
1149  <tr>
1150    <td class="md">
1151      <table cellpadding="0" cellspacing="0" border="0">
1152        <tr>
1153          <td class="md" nowrap valign="top"> #define oscl_calloc</td>
1154          <td class="md" valign="top">(&nbsp;</td>
1155          <td class="md" nowrap valign="top">a,         <tr>
1156          <td></td>
1157          <td></td>
1158          <td class="md" nowrap>b&nbsp;</td>
1159          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1160          <td class="md" valign="top">)&nbsp;</td>
1161          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_CALLOC(a,b)
1162      </table>
1163    </td>
1164  </tr>
1165</table>
1166<table cellspacing=5 cellpadding=0 border=0>
1167  <tr>
1168    <td>
1169      &nbsp;
1170    </td>
1171    <td>
1172
1173<p>
1174    </td>
1175  </tr>
1176</table>
1177<a name="a43" doxytag="oscl_mem.h::OSCL_CALLOC"></a><p>
1178<table width="100%" cellpadding="2" cellspacing="0" border="0">
1179  <tr>
1180    <td class="md">
1181      <table cellpadding="0" cellspacing="0" border="0">
1182        <tr>
1183          <td class="md" nowrap valign="top"> #define OSCL_CALLOC</td>
1184          <td class="md" valign="top">(&nbsp;</td>
1185          <td class="md" nowrap valign="top">num,         <tr>
1186          <td></td>
1187          <td></td>
1188          <td class="md" nowrap>size&nbsp;</td>
1189          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1190          <td class="md" valign="top">)&nbsp;</td>
1191          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_default_audit_calloc(num,size)
1192      </table>
1193    </td>
1194  </tr>
1195</table>
1196<table cellspacing=5 cellpadding=0 border=0>
1197  <tr>
1198    <td>
1199      &nbsp;
1200    </td>
1201    <td>
1202
1203<p>
1204Allocates a memory block using the memory management's global audit object. The block is initialized to zero.<dl compact><dt><b>Parameters: </b></dt><dd>
1205<table border=0 cellspacing=2 cellpadding=0>
1206<tr><td valign=top><em>num</em>&nbsp;</td><td>
1207number of elements </td></tr>
1208<tr><td valign=top><em>size</em>&nbsp;</td><td>
1209number of bytes to allocate for each element</td></tr>
1210</table>
1211</dl><dl compact><dt><b>Returns: </b></dt><dd>
1212a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1213<table border=0 cellspacing=2 cellpadding=0>
1214<tr><td valign=top><em>none</em>&nbsp;</td><td>
1215 </td></tr>
1216</table>
1217</dl>    </td>
1218  </tr>
1219</table>
1220<a name="a35" doxytag="oscl_mem.h::OSCL_CLEANUP_BASE_CLASS"></a><p>
1221<table width="100%" cellpadding="2" cellspacing="0" border="0">
1222  <tr>
1223    <td class="md">
1224      <table cellpadding="0" cellspacing="0" border="0">
1225        <tr>
1226          <td class="md" nowrap valign="top"> #define OSCL_CLEANUP_BASE_CLASS</td>
1227          <td class="md" valign="top">(&nbsp;</td>
1228          <td class="md" nowrap valign="top">T&nbsp;</td>
1229          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1230          <td class="md" valign="top">)&nbsp;</td>
1231          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_OSCL_CLEANUP_BASE_CLASS(T)
1232      </table>
1233    </td>
1234  </tr>
1235</table>
1236<table cellspacing=5 cellpadding=0 border=0>
1237  <tr>
1238    <td>
1239      &nbsp;
1240    </td>
1241    <td>
1242
1243<p>
1244Cleans up the base class of a partially-constructed derived class. This macro will call the destructor if necessary, based on the error-handling implementation.<dl compact><dt><b>Parameters: </b></dt><dd>
1245<table border=0 cellspacing=2 cellpadding=0>
1246<tr><td valign=top><em>T:</em>&nbsp;</td><td>
1247name of the base class. </td></tr>
1248</table>
1249</dl>    </td>
1250  </tr>
1251</table>
1252<a name="a51" doxytag="oscl_mem.h::OSCL_DEFAULT_FREE"></a><p>
1253<table width="100%" cellpadding="2" cellspacing="0" border="0">
1254  <tr>
1255    <td class="md">
1256      <table cellpadding="0" cellspacing="0" border="0">
1257        <tr>
1258          <td class="md" nowrap valign="top"> #define OSCL_DEFAULT_FREE</td>
1259          <td class="md" valign="top">(&nbsp;</td>
1260          <td class="md" nowrap valign="top">x&nbsp;</td>
1261          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1262          <td class="md" valign="top">)&nbsp;</td>
1263          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_FREE(x)
1264      </table>
1265    </td>
1266  </tr>
1267</table>
1268<table cellspacing=5 cellpadding=0 border=0>
1269  <tr>
1270    <td>
1271      &nbsp;
1272    </td>
1273    <td>
1274
1275<p>
1276Another back-compatibility definition.     </td>
1277  </tr>
1278</table>
1279<a name="a41" doxytag="oscl_mem.h::OSCL_DEFAULT_MALLOC"></a><p>
1280<table width="100%" cellpadding="2" cellspacing="0" border="0">
1281  <tr>
1282    <td class="md">
1283      <table cellpadding="0" cellspacing="0" border="0">
1284        <tr>
1285          <td class="md" nowrap valign="top"> #define OSCL_DEFAULT_MALLOC</td>
1286          <td class="md" valign="top">(&nbsp;</td>
1287          <td class="md" nowrap valign="top">x&nbsp;</td>
1288          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1289          <td class="md" valign="top">)&nbsp;</td>
1290          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_MALLOC(x)
1291      </table>
1292    </td>
1293  </tr>
1294</table>
1295<table cellspacing=5 cellpadding=0 border=0>
1296  <tr>
1297    <td>
1298      &nbsp;
1299    </td>
1300    <td>
1301
1302<p>
1303Another back-compatibility definition.     </td>
1304  </tr>
1305</table>
1306<a name="a57" doxytag="oscl_mem.h::OSCL_DELETE"></a><p>
1307<table width="100%" cellpadding="2" cellspacing="0" border="0">
1308  <tr>
1309    <td class="md">
1310      <table cellpadding="0" cellspacing="0" border="0">
1311        <tr>
1312          <td class="md" nowrap valign="top"> #define OSCL_DELETE</td>
1313          <td class="md" valign="top">(&nbsp;</td>
1314          <td class="md" nowrap valign="top">ptr&nbsp;</td>
1315          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1316          <td class="md" valign="top">)&nbsp;</td>
1317          <td class="md" nowrap>
1318      </table>
1319    </td>
1320  </tr>
1321</table>
1322<table cellspacing=5 cellpadding=0 border=0>
1323  <tr>
1324    <td>
1325      &nbsp;
1326    </td>
1327    <td>
1328
1329<p>
1330<b>Value:</b><div class="fragment"><pre>{\
1331    <span class="keywordflow">if</span>(ptr){<span class="keyword">delete</span>(ptr);}\
1332}</pre></div>Oscl "delete" operator.<dl compact><dt><b>Parameters: </b></dt><dd>
1333<table border=0 cellspacing=2 cellpadding=0>
1334<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
1335pointer to memory block previously allocated with OSCL_NEW</td></tr>
1336</table>
1337</dl><dl compact><dt><b>Returns: </b></dt><dd>
1338void </dl>    </td>
1339  </tr>
1340</table>
1341<a name="a84" doxytag="oscl_mem_auto_ptr.h::OSCL_DISABLE_WARNING_RETURN_TYPE_NOT_UDT"></a><p>
1342<table width="100%" cellpadding="2" cellspacing="0" border="0">
1343  <tr>
1344    <td class="md">
1345      <table cellpadding="0" cellspacing="0" border="0">
1346        <tr>
1347          <td class="md" nowrap valign="top"> #define OSCL_DISABLE_WARNING_RETURN_TYPE_NOT_UDT
1348      </table>
1349    </td>
1350  </tr>
1351</table>
1352<table cellspacing=5 cellpadding=0 border=0>
1353  <tr>
1354    <td>
1355      &nbsp;
1356    </td>
1357    <td>
1358
1359<p>
1360    </td>
1361  </tr>
1362</table>
1363<a name="a33" doxytag="oscl_mem.h::OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE"></a><p>
1364<table width="100%" cellpadding="2" cellspacing="0" border="0">
1365  <tr>
1366    <td class="md">
1367      <table cellpadding="0" cellspacing="0" border="0">
1368        <tr>
1369          <td class="md" nowrap valign="top"> #define OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE
1370      </table>
1371    </td>
1372  </tr>
1373</table>
1374<table cellspacing=5 cellpadding=0 border=0>
1375  <tr>
1376    <td>
1377      &nbsp;
1378    </td>
1379    <td>
1380
1381<p>
1382Previously this was in oscl_mem_imp.h     </td>
1383  </tr>
1384</table>
1385<a name="a50" doxytag="oscl_mem.h::oscl_free"></a><p>
1386<table width="100%" cellpadding="2" cellspacing="0" border="0">
1387  <tr>
1388    <td class="md">
1389      <table cellpadding="0" cellspacing="0" border="0">
1390        <tr>
1391          <td class="md" nowrap valign="top"> #define oscl_free</td>
1392          <td class="md" valign="top">(&nbsp;</td>
1393          <td class="md" nowrap valign="top">x&nbsp;</td>
1394          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1395          <td class="md" valign="top">)&nbsp;</td>
1396          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_FREE(x)
1397      </table>
1398    </td>
1399  </tr>
1400</table>
1401<table cellspacing=5 cellpadding=0 border=0>
1402  <tr>
1403    <td>
1404      &nbsp;
1405    </td>
1406    <td>
1407
1408<p>
1409    </td>
1410  </tr>
1411</table>
1412<a name="a49" doxytag="oscl_mem.h::OSCL_FREE"></a><p>
1413<table width="100%" cellpadding="2" cellspacing="0" border="0">
1414  <tr>
1415    <td class="md">
1416      <table cellpadding="0" cellspacing="0" border="0">
1417        <tr>
1418          <td class="md" nowrap valign="top"> #define OSCL_FREE</td>
1419          <td class="md" valign="top">(&nbsp;</td>
1420          <td class="md" nowrap valign="top">ptr&nbsp;</td>
1421          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1422          <td class="md" valign="top">)&nbsp;</td>
1423          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_audit_free(ptr)
1424      </table>
1425    </td>
1426  </tr>
1427</table>
1428<table cellspacing=5 cellpadding=0 border=0>
1429  <tr>
1430    <td>
1431      &nbsp;
1432    </td>
1433    <td>
1434
1435<p>
1436Deallocates or frees a memory block.<dl compact><dt><b>Parameters: </b></dt><dd>
1437<table border=0 cellspacing=2 cellpadding=0>
1438<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
1439pointer to previously allocated memory block using the given audit object </td></tr>
1440</table>
1441</dl>    </td>
1442  </tr>
1443</table>
1444<a name="a34" doxytag="oscl_mem.h::OSCL_HAS_GLOBAL_NEW_DELETE"></a><p>
1445<table width="100%" cellpadding="2" cellspacing="0" border="0">
1446  <tr>
1447    <td class="md">
1448      <table cellpadding="0" cellspacing="0" border="0">
1449        <tr>
1450          <td class="md" nowrap valign="top"> #define OSCL_HAS_GLOBAL_NEW_DELETE&nbsp;&nbsp;&nbsp;1
1451      </table>
1452    </td>
1453  </tr>
1454</table>
1455<table cellspacing=5 cellpadding=0 border=0>
1456  <tr>
1457    <td>
1458      &nbsp;
1459    </td>
1460    <td>
1461
1462<p>
1463    </td>
1464  </tr>
1465</table>
1466<a name="a40" doxytag="oscl_mem.h::oscl_malloc"></a><p>
1467<table width="100%" cellpadding="2" cellspacing="0" border="0">
1468  <tr>
1469    <td class="md">
1470      <table cellpadding="0" cellspacing="0" border="0">
1471        <tr>
1472          <td class="md" nowrap valign="top"> #define oscl_malloc</td>
1473          <td class="md" valign="top">(&nbsp;</td>
1474          <td class="md" nowrap valign="top">a&nbsp;</td>
1475          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1476          <td class="md" valign="top">)&nbsp;</td>
1477          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_MALLOC(a)
1478      </table>
1479    </td>
1480  </tr>
1481</table>
1482<table cellspacing=5 cellpadding=0 border=0>
1483  <tr>
1484    <td>
1485      &nbsp;
1486    </td>
1487    <td>
1488
1489<p>
1490    </td>
1491  </tr>
1492</table>
1493<a name="a39" doxytag="oscl_mem.h::OSCL_MALLOC"></a><p>
1494<table width="100%" cellpadding="2" cellspacing="0" border="0">
1495  <tr>
1496    <td class="md">
1497      <table cellpadding="0" cellspacing="0" border="0">
1498        <tr>
1499          <td class="md" nowrap valign="top"> #define OSCL_MALLOC</td>
1500          <td class="md" valign="top">(&nbsp;</td>
1501          <td class="md" nowrap valign="top">count&nbsp;</td>
1502          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1503          <td class="md" valign="top">)&nbsp;</td>
1504          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_default_audit_malloc(count)
1505      </table>
1506    </td>
1507  </tr>
1508</table>
1509<table cellspacing=5 cellpadding=0 border=0>
1510  <tr>
1511    <td>
1512      &nbsp;
1513    </td>
1514    <td>
1515
1516<p>
1517Allocates a memory block using the memory management's global audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1518<table border=0 cellspacing=2 cellpadding=0>
1519<tr><td valign=top><em>count</em>&nbsp;</td><td>
1520number of bytes to allocate</td></tr>
1521</table>
1522</dl><dl compact><dt><b>Returns: </b></dt><dd>
1523a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1524<table border=0 cellspacing=2 cellpadding=0>
1525<tr><td valign=top><em>none</em>&nbsp;</td><td>
1526 </td></tr>
1527</table>
1528</dl>    </td>
1529  </tr>
1530</table>
1531<a name="a52" doxytag="oscl_mem.h::OSCL_NEW"></a><p>
1532<table width="100%" cellpadding="2" cellspacing="0" border="0">
1533  <tr>
1534    <td class="md">
1535      <table cellpadding="0" cellspacing="0" border="0">
1536        <tr>
1537          <td class="md" nowrap valign="top"> #define OSCL_NEW</td>
1538          <td class="md" valign="top">(&nbsp;</td>
1539          <td class="md" nowrap valign="top">T,         <tr>
1540          <td></td>
1541          <td></td>
1542          <td class="md" nowrap>params&nbsp;</td>
1543          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1544          <td class="md" valign="top">)&nbsp;</td>
1545          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new T params
1546      </table>
1547    </td>
1548  </tr>
1549</table>
1550<table cellspacing=5 cellpadding=0 border=0>
1551  <tr>
1552    <td>
1553      &nbsp;
1554    </td>
1555    <td>
1556
1557<p>
1558Oscl "new" operator. This uses the global memory audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1559<table border=0 cellspacing=2 cellpadding=0>
1560<tr><td valign=top><em>T</em>&nbsp;</td><td>
1561data type for 'new' operation </td></tr>
1562<tr><td valign=top><em>params</em>&nbsp;</td><td>
1563object initialization parameters</td></tr>
1564</table>
1565</dl><dl compact><dt><b>Returns: </b></dt><dd>
1566pointer to the newly created object of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1567<table border=0 cellspacing=2 cellpadding=0>
1568<tr><td valign=top><em>may</em>&nbsp;</td><td>
1569 leave with code = bad alloc </td></tr>
1570</table>
1571</dl>    </td>
1572  </tr>
1573</table>
1574<a name="a53" doxytag="oscl_mem.h::OSCL_PLACEMENT_NEW"></a><p>
1575<table width="100%" cellpadding="2" cellspacing="0" border="0">
1576  <tr>
1577    <td class="md">
1578      <table cellpadding="0" cellspacing="0" border="0">
1579        <tr>
1580          <td class="md" nowrap valign="top"> #define OSCL_PLACEMENT_NEW</td>
1581          <td class="md" valign="top">(&nbsp;</td>
1582          <td class="md" nowrap valign="top">ptr,         <tr>
1583          <td></td>
1584          <td></td>
1585          <td class="md" nowrap>constructor&nbsp;</td>
1586          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1587          <td class="md" valign="top">)&nbsp;</td>
1588          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;new(ptr) constructor
1589      </table>
1590    </td>
1591  </tr>
1592</table>
1593<table cellspacing=5 cellpadding=0 border=0>
1594  <tr>
1595    <td>
1596      &nbsp;
1597    </td>
1598    <td>
1599
1600<p>
1601    </td>
1602  </tr>
1603</table>
1604<a name="a47" doxytag="oscl_mem.h::oscl_realloc"></a><p>
1605<table width="100%" cellpadding="2" cellspacing="0" border="0">
1606  <tr>
1607    <td class="md">
1608      <table cellpadding="0" cellspacing="0" border="0">
1609        <tr>
1610          <td class="md" nowrap valign="top"> #define oscl_realloc</td>
1611          <td class="md" valign="top">(&nbsp;</td>
1612          <td class="md" nowrap valign="top">a,         <tr>
1613          <td></td>
1614          <td></td>
1615          <td class="md" nowrap>b&nbsp;</td>
1616          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1617          <td class="md" valign="top">)&nbsp;</td>
1618          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;OSCL_REALLOC(a,b)
1619      </table>
1620    </td>
1621  </tr>
1622</table>
1623<table cellspacing=5 cellpadding=0 border=0>
1624  <tr>
1625    <td>
1626      &nbsp;
1627    </td>
1628    <td>
1629
1630<p>
1631    </td>
1632  </tr>
1633</table>
1634<a name="a46" doxytag="oscl_mem.h::OSCL_REALLOC"></a><p>
1635<table width="100%" cellpadding="2" cellspacing="0" border="0">
1636  <tr>
1637    <td class="md">
1638      <table cellpadding="0" cellspacing="0" border="0">
1639        <tr>
1640          <td class="md" nowrap valign="top"> #define OSCL_REALLOC</td>
1641          <td class="md" valign="top">(&nbsp;</td>
1642          <td class="md" nowrap valign="top">ptr,         <tr>
1643          <td></td>
1644          <td></td>
1645          <td class="md" nowrap>new_size&nbsp;</td>
1646          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1647          <td class="md" valign="top">)&nbsp;</td>
1648          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_oscl_default_audit_realloc(ptr,new_size)
1649      </table>
1650    </td>
1651  </tr>
1652</table>
1653<table cellspacing=5 cellpadding=0 border=0>
1654  <tr>
1655    <td>
1656      &nbsp;
1657    </td>
1658    <td>
1659
1660<p>
1661Re-Allocates a memory block using the memory management's global audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
1662<table border=0 cellspacing=2 cellpadding=0>
1663<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
1664original memory block </td></tr>
1665<tr><td valign=top><em>new_size</em>&nbsp;</td><td>
1666New size of the block</td></tr>
1667</table>
1668</dl><dl compact><dt><b>Returns: </b></dt><dd>
1669a void pointer to the allocated space, or NULL if there is insufficient memory available.</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1670<table border=0 cellspacing=2 cellpadding=0>
1671<tr><td valign=top><em>none</em>&nbsp;</td><td>
1672 </td></tr>
1673</table>
1674</dl>    </td>
1675  </tr>
1676</table>
1677<a name="a37" doxytag="oscl_mem.h::OSCL_TRAP_ALLOC_NEW"></a><p>
1678<table width="100%" cellpadding="2" cellspacing="0" border="0">
1679  <tr>
1680    <td class="md">
1681      <table cellpadding="0" cellspacing="0" border="0">
1682        <tr>
1683          <td class="md" nowrap valign="top"> #define OSCL_TRAP_ALLOC_NEW</td>
1684          <td class="md" valign="top">(&nbsp;</td>
1685          <td class="md" nowrap valign="top">T_ptr,         <tr>
1686          <td></td>
1687          <td></td>
1688          <td class="md" nowrap>T_allocator,         <tr>
1689          <td></td>
1690          <td></td>
1691          <td class="md" nowrap>T,         <tr>
1692          <td></td>
1693          <td></td>
1694          <td class="md" nowrap>params&nbsp;</td>
1695          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1696          <td class="md" valign="top">)&nbsp;</td>
1697          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(T_allocator.allocate(1),T_allocator.deallocate,T_ptr,T,params)
1698      </table>
1699    </td>
1700  </tr>
1701</table>
1702<table cellspacing=5 cellpadding=0 border=0>
1703  <tr>
1704    <td>
1705      &nbsp;
1706    </td>
1707    <td>
1708
1709<p>
1710Creates an object of type T using the given allocator to acquire the memory needed. This macro is similar to OSCL_ALLOC_NEW except that it handles constructors that leave. If the constructor leaves, the destructor will be called, and allocated memory will be freed before allowing the leave to propagate to the next level.<dl compact><dt><b>Parameters: </b></dt><dd>
1711<table border=0 cellspacing=2 cellpadding=0>
1712<tr><td valign=top><em>T_ptr</em>&nbsp;</td><td>
1713variable to hold return value-- pointer to new object of type T. </td></tr>
1714<tr><td valign=top><em>T_allocator</em>&nbsp;</td><td>
1715allocator for objects of type T, must be an <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;T, Allocator&gt;, where Allocator is an <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> </td></tr>
1716<tr><td valign=top><em>T</em>&nbsp;</td><td>
1717type of object to create </td></tr>
1718<tr><td valign=top><em>params</em>&nbsp;</td><td>
1719object initialization parameters</td></tr>
1720</table>
1721</dl><dl compact><dt><b>Returns: </b></dt><dd>
1722pointer to created object</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1723<table border=0 cellspacing=2 cellpadding=0>
1724<tr><td valign=top><em>none</em>&nbsp;</td><td>
1725, unless thrown by the given allocator </td></tr>
1726</table>
1727</dl>    </td>
1728  </tr>
1729</table>
1730<a name="a56" doxytag="oscl_mem.h::OSCL_TRAP_AUDIT_NEW"></a><p>
1731<table width="100%" cellpadding="2" cellspacing="0" border="0">
1732  <tr>
1733    <td class="md">
1734      <table cellpadding="0" cellspacing="0" border="0">
1735        <tr>
1736          <td class="md" nowrap valign="top"> #define OSCL_TRAP_AUDIT_NEW</td>
1737          <td class="md" valign="top">(&nbsp;</td>
1738          <td class="md" nowrap valign="top">T_ptr,         <tr>
1739          <td></td>
1740          <td></td>
1741          <td class="md" nowrap>auditCB,         <tr>
1742          <td></td>
1743          <td></td>
1744          <td class="md" nowrap>T,         <tr>
1745          <td></td>
1746          <td></td>
1747          <td class="md" nowrap>params&nbsp;</td>
1748          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1749          <td class="md" valign="top">)&nbsp;</td>
1750          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(_oscl_audit_new(sizeof(T),auditCB),_oscl_audit_free,T_ptr,T,params)
1751      </table>
1752    </td>
1753  </tr>
1754</table>
1755<table cellspacing=5 cellpadding=0 border=0>
1756  <tr>
1757    <td>
1758      &nbsp;
1759    </td>
1760    <td>
1761
1762<p>
1763Oscl "new" operator. This uses the specified memory audit object. This macro is similar to OSCL_AUDIT_NEW except that it will handle constructors that leave. If the constructor leaves, the destructor will be called, and allocated memory will be freed before allowing the leave to propagate to the next level.<dl compact><dt><b>Parameters: </b></dt><dd>
1764<table border=0 cellspacing=2 cellpadding=0>
1765<tr><td valign=top><em>T_ptr</em>&nbsp;</td><td>
1766variable to hold return value-- pointer to new object of type T. </td></tr>
1767<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
1768input memory management audit object </td></tr>
1769<tr><td valign=top><em>T</em>&nbsp;</td><td>
1770data type for 'new' operation </td></tr>
1771<tr><td valign=top><em>params</em>&nbsp;</td><td>
1772object initialization parameters</td></tr>
1773</table>
1774</dl><dl compact><dt><b>Returns: </b></dt><dd>
1775pointer to the newly created object of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1776<table border=0 cellspacing=2 cellpadding=0>
1777<tr><td valign=top><em>may</em>&nbsp;</td><td>
1778 leave with code = bad alloc </td></tr>
1779</table>
1780</dl>    </td>
1781  </tr>
1782</table>
1783<a name="a54" doxytag="oscl_mem.h::OSCL_TRAP_NEW"></a><p>
1784<table width="100%" cellpadding="2" cellspacing="0" border="0">
1785  <tr>
1786    <td class="md">
1787      <table cellpadding="0" cellspacing="0" border="0">
1788        <tr>
1789          <td class="md" nowrap valign="top"> #define OSCL_TRAP_NEW</td>
1790          <td class="md" valign="top">(&nbsp;</td>
1791          <td class="md" nowrap valign="top">T_ptr,         <tr>
1792          <td></td>
1793          <td></td>
1794          <td class="md" nowrap>T,         <tr>
1795          <td></td>
1796          <td></td>
1797          <td class="md" nowrap>params&nbsp;</td>
1798          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1799          <td class="md" valign="top">)&nbsp;</td>
1800          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;_OSCL_TRAP_NEW(_oscl_default_audit_new(sizeof(T)),_oscl_audit_free,T_ptr,T,params)
1801      </table>
1802    </td>
1803  </tr>
1804</table>
1805<table cellspacing=5 cellpadding=0 border=0>
1806  <tr>
1807    <td>
1808      &nbsp;
1809    </td>
1810    <td>
1811
1812<p>
1813Oscl "new" operator. This uses the global memory audit object. This operator is similar to OSCL_NEW except that it will handle constructors that leave. If the constructor leaves, the destructor will be called, and allocated memory will be freed before allowing the leave to propagate to the next level.<dl compact><dt><b>Parameters: </b></dt><dd>
1814<table border=0 cellspacing=2 cellpadding=0>
1815<tr><td valign=top><em>T_ptr</em>&nbsp;</td><td>
1816variable to hold return value-- pointer to new object of type T. </td></tr>
1817<tr><td valign=top><em>T</em>&nbsp;</td><td>
1818data type for 'new' operation </td></tr>
1819<tr><td valign=top><em>params</em>&nbsp;</td><td>
1820object initialization parameters</td></tr>
1821</table>
1822</dl><dl compact><dt><b>Returns: </b></dt><dd>
1823pointer to the newly created object of type T</dl><dl compact><dt><b>Exceptions: </b></dt><dd>
1824<table border=0 cellspacing=2 cellpadding=0>
1825<tr><td valign=top><em>may</em>&nbsp;</td><td>
1826 leave with code = bad alloc </td></tr>
1827</table>
1828</dl>    </td>
1829  </tr>
1830</table>
1831<hr><h2>Typedef Documentation</h2>
1832<a name="a2" doxytag="oscl_mem_audit.h::MM_AllocNodeAutoPtr"></a><p>
1833<table width="100%" cellpadding="2" cellspacing="0" border="0">
1834  <tr>
1835    <td class="md">
1836      <table cellpadding="0" cellspacing="0" border="0">
1837        <tr>
1838          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt;<a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;<a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>&gt; &gt; MM_AllocNodeAutoPtr
1839      </table>
1840    </td>
1841  </tr>
1842</table>
1843<table cellspacing=5 cellpadding=0 border=0>
1844  <tr>
1845    <td>
1846      &nbsp;
1847    </td>
1848    <td>
1849
1850<p>
1851    </td>
1852  </tr>
1853</table>
1854<a name="a3" doxytag="oscl_mem_audit.h::MM_StatsNodeTagTreeType"></a><p>
1855<table width="100%" cellpadding="2" cellspacing="0" border="0">
1856  <tr>
1857    <td class="md">
1858      <table cellpadding="0" cellspacing="0" border="0">
1859        <tr>
1860          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt;<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>&gt; &gt; MM_StatsNodeTagTreeType
1861      </table>
1862    </td>
1863  </tr>
1864</table>
1865<table cellspacing=5 cellpadding=0 border=0>
1866  <tr>
1867    <td>
1868      &nbsp;
1869    </td>
1870    <td>
1871
1872<p>
1873    </td>
1874  </tr>
1875</table>
1876<a name="a0" doxytag="oscl_mem_audit.h::MMAuditCharAutoPtr"></a><p>
1877<table width="100%" cellpadding="2" cellspacing="0" border="0">
1878  <tr>
1879    <td class="md">
1880      <table cellpadding="0" cellspacing="0" border="0">
1881        <tr>
1882          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt;char, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;char, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>&gt; &gt; MMAuditCharAutoPtr
1883      </table>
1884    </td>
1885  </tr>
1886</table>
1887<table cellspacing=5 cellpadding=0 border=0>
1888  <tr>
1889    <td>
1890      &nbsp;
1891    </td>
1892    <td>
1893
1894<p>
1895    </td>
1896  </tr>
1897</table>
1898<a name="a1" doxytag="oscl_mem_audit.h::MMAuditUint8AutoPtr"></a><p>
1899<table width="100%" cellpadding="2" cellspacing="0" border="0">
1900  <tr>
1901    <td class="md">
1902      <table cellpadding="0" cellspacing="0" border="0">
1903        <tr>
1904          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt;uint8, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;uint8, <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a>&gt; &gt; MMAuditUint8AutoPtr
1905      </table>
1906    </td>
1907  </tr>
1908</table>
1909<table cellspacing=5 cellpadding=0 border=0>
1910  <tr>
1911    <td>
1912      &nbsp;
1913    </td>
1914    <td>
1915
1916<p>
1917    </td>
1918  </tr>
1919</table>
1920<a name="a4" doxytag="oscl_mem_audit.h::OsclMemStatsNodeAutoPtr"></a><p>
1921<table width="100%" cellpadding="2" cellspacing="0" border="0">
1922  <tr>
1923    <td class="md">
1924      <table cellpadding="0" cellspacing="0" border="0">
1925        <tr>
1926          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a>&lt;<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>&gt; &gt; OsclMemStatsNodeAutoPtr
1927      </table>
1928    </td>
1929  </tr>
1930</table>
1931<table cellspacing=5 cellpadding=0 border=0>
1932  <tr>
1933    <td>
1934      &nbsp;
1935    </td>
1936    <td>
1937
1938<p>
1939    </td>
1940  </tr>
1941</table>
1942<a name="a6" doxytag="oscl_mem_audit.h::OsclTagTreeType"></a><p>
1943<table width="100%" cellpadding="2" cellspacing="0" border="0">
1944  <tr>
1945    <td class="md">
1946      <table cellpadding="0" cellspacing="0" border="0">
1947        <tr>
1948          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOscl__TagTree.html">Oscl_TagTree</a>&lt;<a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>, <a class="el" href="group__osclmemory.html#a5">TagTree_Allocator</a>&gt; OsclTagTreeType
1949      </table>
1950    </td>
1951  </tr>
1952</table>
1953<table cellspacing=5 cellpadding=0 border=0>
1954  <tr>
1955    <td>
1956      &nbsp;
1957    </td>
1958    <td>
1959
1960<p>
1961    </td>
1962  </tr>
1963</table>
1964<a name="a5" doxytag="oscl_mem_audit.h::TagTree_Allocator"></a><p>
1965<table width="100%" cellpadding="2" cellspacing="0" border="0">
1966  <tr>
1967    <td class="md">
1968      <table cellpadding="0" cellspacing="0" border="0">
1969        <tr>
1970          <td class="md" nowrap valign="top"> typedef <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>&lt;<a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>&gt; TagTree_Allocator
1971      </table>
1972    </td>
1973  </tr>
1974</table>
1975<table cellspacing=5 cellpadding=0 border=0>
1976  <tr>
1977    <td>
1978      &nbsp;
1979    </td>
1980    <td>
1981
1982<p>
1983    </td>
1984  </tr>
1985</table>
1986<hr><h2>Function Documentation</h2>
1987<a name="a19" doxytag="oscl_mem.h::_oscl_audit_calloc"></a><p>
1988<table width="100%" cellpadding="2" cellspacing="0" border="0">
1989  <tr>
1990    <td class="md">
1991      <table cellpadding="0" cellspacing="0" border="0">
1992        <tr>
1993          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_audit_calloc </td>
1994          <td class="md" valign="top">(&nbsp;</td>
1995          <td class="md" nowrap valign="top">size_t&nbsp;</td>
1996          <td class="mdname" nowrap>&nbsp;, </td>
1997        </tr>
1998        <tr>
1999          <td></td>
2000          <td></td>
2001          <td class="md" nowrap>size_t&nbsp;</td>
2002          <td class="mdname" nowrap>&nbsp;, </td>
2003        </tr>
2004        <tr>
2005          <td></td>
2006          <td></td>
2007          <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;&nbsp;</td>
2008          <td class="mdname" nowrap>&nbsp;, </td>
2009        </tr>
2010        <tr>
2011          <td></td>
2012          <td></td>
2013          <td class="md" nowrap>const char *&nbsp;</td>
2014          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2015        </tr>
2016        <tr>
2017          <td></td>
2018          <td></td>
2019          <td class="md" nowrap>const int&nbsp;</td>
2020          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2021        </tr>
2022        <tr>
2023          <td></td>
2024          <td class="md">)&nbsp;</td>
2025          <td class="md" colspan="2"></td>
2026        </tr>
2027
2028      </table>
2029    </td>
2030  </tr>
2031</table>
2032<table cellspacing=5 cellpadding=0 border=0>
2033  <tr>
2034    <td>
2035      &nbsp;
2036    </td>
2037    <td>
2038
2039<p>
2040    </td>
2041  </tr>
2042</table>
2043<a name="a26" doxytag="oscl_mem.h::_oscl_audit_free"></a><p>
2044<table width="100%" cellpadding="2" cellspacing="0" border="0">
2045  <tr>
2046    <td class="md">
2047      <table cellpadding="0" cellspacing="0" border="0">
2048        <tr>
2049          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void _oscl_audit_free </td>
2050          <td class="md" valign="top">(&nbsp;</td>
2051          <td class="md" nowrap valign="top">void *&nbsp;</td>
2052          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
2053          <td class="md" valign="top">)&nbsp;</td>
2054          <td class="md" nowrap></td>
2055        </tr>
2056
2057      </table>
2058    </td>
2059  </tr>
2060</table>
2061<table cellspacing=5 cellpadding=0 border=0>
2062  <tr>
2063    <td>
2064      &nbsp;
2065    </td>
2066    <td>
2067
2068<p>
2069    </td>
2070  </tr>
2071</table>
2072<a name="a18" doxytag="oscl_mem.h::_oscl_audit_malloc"></a><p>
2073<table width="100%" cellpadding="2" cellspacing="0" border="0">
2074  <tr>
2075    <td class="md">
2076      <table cellpadding="0" cellspacing="0" border="0">
2077        <tr>
2078          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_audit_malloc </td>
2079          <td class="md" valign="top">(&nbsp;</td>
2080          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2081          <td class="mdname" nowrap>&nbsp;, </td>
2082        </tr>
2083        <tr>
2084          <td></td>
2085          <td></td>
2086          <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;&nbsp;</td>
2087          <td class="mdname" nowrap>&nbsp;, </td>
2088        </tr>
2089        <tr>
2090          <td></td>
2091          <td></td>
2092          <td class="md" nowrap>const char *&nbsp;</td>
2093          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2094        </tr>
2095        <tr>
2096          <td></td>
2097          <td></td>
2098          <td class="md" nowrap>const int&nbsp;</td>
2099          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2100        </tr>
2101        <tr>
2102          <td></td>
2103          <td class="md">)&nbsp;</td>
2104          <td class="md" colspan="2"></td>
2105        </tr>
2106
2107      </table>
2108    </td>
2109  </tr>
2110</table>
2111<table cellspacing=5 cellpadding=0 border=0>
2112  <tr>
2113    <td>
2114      &nbsp;
2115    </td>
2116    <td>
2117
2118<p>
2119******************************************************* Macros for malloc/free with memory management.     </td>
2120  </tr>
2121</table>
2122<a name="a21" doxytag="oscl_mem.h::_oscl_audit_new"></a><p>
2123<table width="100%" cellpadding="2" cellspacing="0" border="0">
2124  <tr>
2125    <td class="md">
2126      <table cellpadding="0" cellspacing="0" border="0">
2127        <tr>
2128          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_audit_new </td>
2129          <td class="md" valign="top">(&nbsp;</td>
2130          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2131          <td class="mdname" nowrap>&nbsp;, </td>
2132        </tr>
2133        <tr>
2134          <td></td>
2135          <td></td>
2136          <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;&nbsp;</td>
2137          <td class="mdname" nowrap>&nbsp;, </td>
2138        </tr>
2139        <tr>
2140          <td></td>
2141          <td></td>
2142          <td class="md" nowrap>const char *&nbsp;</td>
2143          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2144        </tr>
2145        <tr>
2146          <td></td>
2147          <td></td>
2148          <td class="md" nowrap>const int&nbsp;</td>
2149          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2150        </tr>
2151        <tr>
2152          <td></td>
2153          <td class="md">)&nbsp;</td>
2154          <td class="md" colspan="2"></td>
2155        </tr>
2156
2157      </table>
2158    </td>
2159  </tr>
2160</table>
2161<table cellspacing=5 cellpadding=0 border=0>
2162  <tr>
2163    <td>
2164      &nbsp;
2165    </td>
2166    <td>
2167
2168<p>
2169    </td>
2170  </tr>
2171</table>
2172<a name="a20" doxytag="oscl_mem.h::_oscl_audit_realloc"></a><p>
2173<table width="100%" cellpadding="2" cellspacing="0" border="0">
2174  <tr>
2175    <td class="md">
2176      <table cellpadding="0" cellspacing="0" border="0">
2177        <tr>
2178          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_audit_realloc </td>
2179          <td class="md" valign="top">(&nbsp;</td>
2180          <td class="md" nowrap valign="top">void *&nbsp;</td>
2181          <td class="mdname" nowrap>&nbsp;, </td>
2182        </tr>
2183        <tr>
2184          <td></td>
2185          <td></td>
2186          <td class="md" nowrap>size_t&nbsp;</td>
2187          <td class="mdname" nowrap>&nbsp;, </td>
2188        </tr>
2189        <tr>
2190          <td></td>
2191          <td></td>
2192          <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;&nbsp;</td>
2193          <td class="mdname" nowrap>&nbsp;, </td>
2194        </tr>
2195        <tr>
2196          <td></td>
2197          <td></td>
2198          <td class="md" nowrap>const char *&nbsp;</td>
2199          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2200        </tr>
2201        <tr>
2202          <td></td>
2203          <td></td>
2204          <td class="md" nowrap>const int&nbsp;</td>
2205          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2206        </tr>
2207        <tr>
2208          <td></td>
2209          <td class="md">)&nbsp;</td>
2210          <td class="md" colspan="2"></td>
2211        </tr>
2212
2213      </table>
2214    </td>
2215  </tr>
2216</table>
2217<table cellspacing=5 cellpadding=0 border=0>
2218  <tr>
2219    <td>
2220      &nbsp;
2221    </td>
2222    <td>
2223
2224<p>
2225    </td>
2226  </tr>
2227</table>
2228<a name="a8" doxytag="oscl_mem_basic_functions.h::_oscl_calloc"></a><p>
2229<table width="100%" cellpadding="2" cellspacing="0" border="0">
2230  <tr>
2231    <td class="md">
2232      <table cellpadding="0" cellspacing="0" border="0">
2233        <tr>
2234          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* _oscl_calloc </td>
2235          <td class="md" valign="top">(&nbsp;</td>
2236          <td class="md" nowrap valign="top">int32&nbsp;</td>
2237          <td class="mdname" nowrap>&nbsp; <em>nelems</em>, </td>
2238        </tr>
2239        <tr>
2240          <td></td>
2241          <td></td>
2242          <td class="md" nowrap>int32&nbsp;</td>
2243          <td class="mdname" nowrap>&nbsp; <em>size</em></td>
2244        </tr>
2245        <tr>
2246          <td></td>
2247          <td class="md">)&nbsp;</td>
2248          <td class="md" colspan="2"></td>
2249        </tr>
2250
2251      </table>
2252    </td>
2253  </tr>
2254</table>
2255<table cellspacing=5 cellpadding=0 border=0>
2256  <tr>
2257    <td>
2258      &nbsp;
2259    </td>
2260    <td>
2261
2262<p>
2263    </td>
2264  </tr>
2265</table>
2266<a name="a23" doxytag="oscl_mem.h::_oscl_default_audit_calloc"></a><p>
2267<table width="100%" cellpadding="2" cellspacing="0" border="0">
2268  <tr>
2269    <td class="md">
2270      <table cellpadding="0" cellspacing="0" border="0">
2271        <tr>
2272          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_default_audit_calloc </td>
2273          <td class="md" valign="top">(&nbsp;</td>
2274          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2275          <td class="mdname" nowrap>&nbsp;, </td>
2276        </tr>
2277        <tr>
2278          <td></td>
2279          <td></td>
2280          <td class="md" nowrap>size_t&nbsp;</td>
2281          <td class="mdname" nowrap>&nbsp;, </td>
2282        </tr>
2283        <tr>
2284          <td></td>
2285          <td></td>
2286          <td class="md" nowrap>const char *&nbsp;</td>
2287          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2288        </tr>
2289        <tr>
2290          <td></td>
2291          <td></td>
2292          <td class="md" nowrap>const int&nbsp;</td>
2293          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2294        </tr>
2295        <tr>
2296          <td></td>
2297          <td class="md">)&nbsp;</td>
2298          <td class="md" colspan="2"></td>
2299        </tr>
2300
2301      </table>
2302    </td>
2303  </tr>
2304</table>
2305<table cellspacing=5 cellpadding=0 border=0>
2306  <tr>
2307    <td>
2308      &nbsp;
2309    </td>
2310    <td>
2311
2312<p>
2313    </td>
2314  </tr>
2315</table>
2316<a name="a22" doxytag="oscl_mem.h::_oscl_default_audit_malloc"></a><p>
2317<table width="100%" cellpadding="2" cellspacing="0" border="0">
2318  <tr>
2319    <td class="md">
2320      <table cellpadding="0" cellspacing="0" border="0">
2321        <tr>
2322          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_default_audit_malloc </td>
2323          <td class="md" valign="top">(&nbsp;</td>
2324          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2325          <td class="mdname" nowrap>&nbsp;, </td>
2326        </tr>
2327        <tr>
2328          <td></td>
2329          <td></td>
2330          <td class="md" nowrap>const char *&nbsp;</td>
2331          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2332        </tr>
2333        <tr>
2334          <td></td>
2335          <td></td>
2336          <td class="md" nowrap>const int&nbsp;</td>
2337          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2338        </tr>
2339        <tr>
2340          <td></td>
2341          <td class="md">)&nbsp;</td>
2342          <td class="md" colspan="2"></td>
2343        </tr>
2344
2345      </table>
2346    </td>
2347  </tr>
2348</table>
2349<table cellspacing=5 cellpadding=0 border=0>
2350  <tr>
2351    <td>
2352      &nbsp;
2353    </td>
2354    <td>
2355
2356<p>
2357    </td>
2358  </tr>
2359</table>
2360<a name="a25" doxytag="oscl_mem.h::_oscl_default_audit_new"></a><p>
2361<table width="100%" cellpadding="2" cellspacing="0" border="0">
2362  <tr>
2363    <td class="md">
2364      <table cellpadding="0" cellspacing="0" border="0">
2365        <tr>
2366          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_default_audit_new </td>
2367          <td class="md" valign="top">(&nbsp;</td>
2368          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2369          <td class="mdname" nowrap>&nbsp;, </td>
2370        </tr>
2371        <tr>
2372          <td></td>
2373          <td></td>
2374          <td class="md" nowrap>const char *&nbsp;</td>
2375          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2376        </tr>
2377        <tr>
2378          <td></td>
2379          <td></td>
2380          <td class="md" nowrap>const int&nbsp;</td>
2381          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2382        </tr>
2383        <tr>
2384          <td></td>
2385          <td class="md">)&nbsp;</td>
2386          <td class="md" colspan="2"></td>
2387        </tr>
2388
2389      </table>
2390    </td>
2391  </tr>
2392</table>
2393<table cellspacing=5 cellpadding=0 border=0>
2394  <tr>
2395    <td>
2396      &nbsp;
2397    </td>
2398    <td>
2399
2400<p>
2401    </td>
2402  </tr>
2403</table>
2404<a name="a24" doxytag="oscl_mem.h::_oscl_default_audit_realloc"></a><p>
2405<table width="100%" cellpadding="2" cellspacing="0" border="0">
2406  <tr>
2407    <td class="md">
2408      <table cellpadding="0" cellspacing="0" border="0">
2409        <tr>
2410          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void* _oscl_default_audit_realloc </td>
2411          <td class="md" valign="top">(&nbsp;</td>
2412          <td class="md" nowrap valign="top">void *&nbsp;</td>
2413          <td class="mdname" nowrap>&nbsp;, </td>
2414        </tr>
2415        <tr>
2416          <td></td>
2417          <td></td>
2418          <td class="md" nowrap>size_t&nbsp;</td>
2419          <td class="mdname" nowrap>&nbsp;, </td>
2420        </tr>
2421        <tr>
2422          <td></td>
2423          <td></td>
2424          <td class="md" nowrap>const char *&nbsp;</td>
2425          <td class="mdname" nowrap>&nbsp; <em>f</em> = NULL, </td>
2426        </tr>
2427        <tr>
2428          <td></td>
2429          <td></td>
2430          <td class="md" nowrap>const int&nbsp;</td>
2431          <td class="mdname" nowrap>&nbsp; <em>l</em> = 0</td>
2432        </tr>
2433        <tr>
2434          <td></td>
2435          <td class="md">)&nbsp;</td>
2436          <td class="md" colspan="2"></td>
2437        </tr>
2438
2439      </table>
2440    </td>
2441  </tr>
2442</table>
2443<table cellspacing=5 cellpadding=0 border=0>
2444  <tr>
2445    <td>
2446      &nbsp;
2447    </td>
2448    <td>
2449
2450<p>
2451    </td>
2452  </tr>
2453</table>
2454<a name="a10" doxytag="oscl_mem_basic_functions.h::_oscl_free"></a><p>
2455<table width="100%" cellpadding="2" cellspacing="0" border="0">
2456  <tr>
2457    <td class="md">
2458      <table cellpadding="0" cellspacing="0" border="0">
2459        <tr>
2460          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void _oscl_free </td>
2461          <td class="md" valign="top">(&nbsp;</td>
2462          <td class="md" nowrap valign="top">void *&nbsp;</td>
2463          <td class="mdname1" valign="top" nowrap>&nbsp; <em>src</em>          </td>
2464          <td class="md" valign="top">)&nbsp;</td>
2465          <td class="md" nowrap></td>
2466        </tr>
2467
2468      </table>
2469    </td>
2470  </tr>
2471</table>
2472<table cellspacing=5 cellpadding=0 border=0>
2473  <tr>
2474    <td>
2475      &nbsp;
2476    </td>
2477    <td>
2478
2479<p>
2480    </td>
2481  </tr>
2482</table>
2483<a name="a7" doxytag="oscl_mem_basic_functions.h::_oscl_malloc"></a><p>
2484<table width="100%" cellpadding="2" cellspacing="0" border="0">
2485  <tr>
2486    <td class="md">
2487      <table cellpadding="0" cellspacing="0" border="0">
2488        <tr>
2489          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* _oscl_malloc </td>
2490          <td class="md" valign="top">(&nbsp;</td>
2491          <td class="md" nowrap valign="top">int32&nbsp;</td>
2492          <td class="mdname1" valign="top" nowrap>&nbsp; <em>count</em>          </td>
2493          <td class="md" valign="top">)&nbsp;</td>
2494          <td class="md" nowrap></td>
2495        </tr>
2496
2497      </table>
2498    </td>
2499  </tr>
2500</table>
2501<table cellspacing=5 cellpadding=0 border=0>
2502  <tr>
2503    <td>
2504      &nbsp;
2505    </td>
2506    <td>
2507
2508<p>
2509    </td>
2510  </tr>
2511</table>
2512<a name="a9" doxytag="oscl_mem_basic_functions.h::_oscl_realloc"></a><p>
2513<table width="100%" cellpadding="2" cellspacing="0" border="0">
2514  <tr>
2515    <td class="md">
2516      <table cellpadding="0" cellspacing="0" border="0">
2517        <tr>
2518          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* _oscl_realloc </td>
2519          <td class="md" valign="top">(&nbsp;</td>
2520          <td class="md" nowrap valign="top">void *&nbsp;</td>
2521          <td class="mdname" nowrap>&nbsp; <em>src</em>, </td>
2522        </tr>
2523        <tr>
2524          <td></td>
2525          <td></td>
2526          <td class="md" nowrap>int32&nbsp;</td>
2527          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
2528        </tr>
2529        <tr>
2530          <td></td>
2531          <td class="md">)&nbsp;</td>
2532          <td class="md" colspan="2"></td>
2533        </tr>
2534
2535      </table>
2536    </td>
2537  </tr>
2538</table>
2539<table cellspacing=5 cellpadding=0 border=0>
2540  <tr>
2541    <td>
2542      &nbsp;
2543    </td>
2544    <td>
2545
2546<p>
2547    </td>
2548  </tr>
2549</table>
2550<a name="a29" doxytag="osclconfig_global_new_delete.h::operator delete"></a><p>
2551<table width="100%" cellpadding="2" cellspacing="0" border="0">
2552  <tr>
2553    <td class="md">
2554      <table cellpadding="0" cellspacing="0" border="0">
2555        <tr>
2556          <td class="md" nowrap valign="top"> void operator delete </td>
2557          <td class="md" valign="top">(&nbsp;</td>
2558          <td class="md" nowrap valign="top">void *&nbsp;</td>
2559          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
2560          <td class="md" valign="top">)&nbsp;</td>
2561          <td class="md" nowrap><code> [inline]</code></td>
2562        </tr>
2563
2564      </table>
2565    </td>
2566  </tr>
2567</table>
2568<table cellspacing=5 cellpadding=0 border=0>
2569  <tr>
2570    <td>
2571      &nbsp;
2572    </td>
2573    <td>
2574
2575<p>
2576    </td>
2577  </tr>
2578</table>
2579<a name="a32" doxytag="oscl_mem.h::operator delete[]"></a><p>
2580<table width="100%" cellpadding="2" cellspacing="0" border="0">
2581  <tr>
2582    <td class="md">
2583      <table cellpadding="0" cellspacing="0" border="0">
2584        <tr>
2585          <td class="md" nowrap valign="top"> void operator delete[] </td>
2586          <td class="md" valign="top">(&nbsp;</td>
2587          <td class="md" nowrap valign="top">void *&nbsp;</td>
2588          <td class="mdname1" valign="top" nowrap>&nbsp; <em>aPtr</em>          </td>
2589          <td class="md" valign="top">)&nbsp;</td>
2590          <td class="md" nowrap><code> [inline]</code></td>
2591        </tr>
2592
2593      </table>
2594    </td>
2595  </tr>
2596</table>
2597<table cellspacing=5 cellpadding=0 border=0>
2598  <tr>
2599    <td>
2600      &nbsp;
2601    </td>
2602    <td>
2603
2604<p>
2605    </td>
2606  </tr>
2607</table>
2608<a name="a28" doxytag="osclconfig_global_new_delete.h::operator new"></a><p>
2609<table width="100%" cellpadding="2" cellspacing="0" border="0">
2610  <tr>
2611    <td class="md">
2612      <table cellpadding="0" cellspacing="0" border="0">
2613        <tr>
2614          <td class="md" nowrap valign="top"> void* operator new </td>
2615          <td class="md" valign="top">(&nbsp;</td>
2616          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2617          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
2618          <td class="md" valign="top">)&nbsp;</td>
2619          <td class="md" nowrap><code> [inline]</code></td>
2620        </tr>
2621
2622      </table>
2623    </td>
2624  </tr>
2625</table>
2626<table cellspacing=5 cellpadding=0 border=0>
2627  <tr>
2628    <td>
2629      &nbsp;
2630    </td>
2631    <td>
2632
2633<p>
2634    </td>
2635  </tr>
2636</table>
2637<a name="a27" doxytag="oscl_mem.h::operator new"></a><p>
2638<table width="100%" cellpadding="2" cellspacing="0" border="0">
2639  <tr>
2640    <td class="md">
2641      <table cellpadding="0" cellspacing="0" border="0">
2642        <tr>
2643          <td class="md" nowrap valign="top"> void* operator new </td>
2644          <td class="md" valign="top">(&nbsp;</td>
2645          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2646          <td class="mdname" nowrap>&nbsp; <em>aSize</em>, </td>
2647        </tr>
2648        <tr>
2649          <td></td>
2650          <td></td>
2651          <td class="md" nowrap>const char *&nbsp;</td>
2652          <td class="mdname" nowrap>&nbsp; <em>aFile</em>, </td>
2653        </tr>
2654        <tr>
2655          <td></td>
2656          <td></td>
2657          <td class="md" nowrap>int&nbsp;</td>
2658          <td class="mdname" nowrap>&nbsp; <em>aLine</em></td>
2659        </tr>
2660        <tr>
2661          <td></td>
2662          <td class="md">)&nbsp;</td>
2663          <td class="md" colspan="2"><code> [inline]</code></td>
2664        </tr>
2665
2666      </table>
2667    </td>
2668  </tr>
2669</table>
2670<table cellspacing=5 cellpadding=0 border=0>
2671  <tr>
2672    <td>
2673      &nbsp;
2674    </td>
2675    <td>
2676
2677<p>
2678    </td>
2679  </tr>
2680</table>
2681<a name="a31" doxytag="oscl_mem.h::operator new[]"></a><p>
2682<table width="100%" cellpadding="2" cellspacing="0" border="0">
2683  <tr>
2684    <td class="md">
2685      <table cellpadding="0" cellspacing="0" border="0">
2686        <tr>
2687          <td class="md" nowrap valign="top"> void* operator new[] </td>
2688          <td class="md" valign="top">(&nbsp;</td>
2689          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2690          <td class="mdname1" valign="top" nowrap>&nbsp; <em>aSize</em>          </td>
2691          <td class="md" valign="top">)&nbsp;</td>
2692          <td class="md" nowrap><code> [inline]</code></td>
2693        </tr>
2694
2695      </table>
2696    </td>
2697  </tr>
2698</table>
2699<table cellspacing=5 cellpadding=0 border=0>
2700  <tr>
2701    <td>
2702      &nbsp;
2703    </td>
2704    <td>
2705
2706<p>
2707    </td>
2708  </tr>
2709</table>
2710<a name="a30" doxytag="oscl_mem.h::operator new[]"></a><p>
2711<table width="100%" cellpadding="2" cellspacing="0" border="0">
2712  <tr>
2713    <td class="md">
2714      <table cellpadding="0" cellspacing="0" border="0">
2715        <tr>
2716          <td class="md" nowrap valign="top"> void* operator new[] </td>
2717          <td class="md" valign="top">(&nbsp;</td>
2718          <td class="md" nowrap valign="top">size_t&nbsp;</td>
2719          <td class="mdname" nowrap>&nbsp; <em>aSize</em>, </td>
2720        </tr>
2721        <tr>
2722          <td></td>
2723          <td></td>
2724          <td class="md" nowrap>const char *&nbsp;</td>
2725          <td class="mdname" nowrap>&nbsp; <em>aFile</em>, </td>
2726        </tr>
2727        <tr>
2728          <td></td>
2729          <td></td>
2730          <td class="md" nowrap>int&nbsp;</td>
2731          <td class="mdname" nowrap>&nbsp; <em>aLine</em></td>
2732        </tr>
2733        <tr>
2734          <td></td>
2735          <td class="md">)&nbsp;</td>
2736          <td class="md" colspan="2"><code> [inline]</code></td>
2737        </tr>
2738
2739      </table>
2740    </td>
2741  </tr>
2742</table>
2743<table cellspacing=5 cellpadding=0 border=0>
2744  <tr>
2745    <td>
2746      &nbsp;
2747    </td>
2748    <td>
2749
2750<p>
2751    </td>
2752  </tr>
2753</table>
2754<a name="a16" doxytag="oscl_mem.h::oscl_mem_aligned_size"></a><p>
2755<table width="100%" cellpadding="2" cellspacing="0" border="0">
2756  <tr>
2757    <td class="md">
2758      <table cellpadding="0" cellspacing="0" border="0">
2759        <tr>
2760          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF <a class="el" href="group__osclbase.html#a27">uint</a> oscl_mem_aligned_size </td>
2761          <td class="md" valign="top">(&nbsp;</td>
2762          <td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a27">uint</a>&nbsp;</td>
2763          <td class="mdname1" valign="top" nowrap>&nbsp; <em>size</em>          </td>
2764          <td class="md" valign="top">)&nbsp;</td>
2765          <td class="md" nowrap></td>
2766        </tr>
2767
2768      </table>
2769    </td>
2770  </tr>
2771</table>
2772<table cellspacing=5 cellpadding=0 border=0>
2773  <tr>
2774    <td>
2775      &nbsp;
2776    </td>
2777    <td>
2778
2779<p>
2780Get memory-aligned size of an object.<dl compact><dt><b>Parameters: </b></dt><dd>
2781<table border=0 cellspacing=2 cellpadding=0>
2782<tr><td valign=top><em>size</em>&nbsp;</td><td>
2783size of object</td></tr>
2784</table>
2785</dl><dl compact><dt><b>Returns: </b></dt><dd>
2786memory-aligned size </dl>    </td>
2787  </tr>
2788</table>
2789<a name="a15" doxytag="oscl_mem_basic_functions.h::oscl_memcmp"></a><p>
2790<table width="100%" cellpadding="2" cellspacing="0" border="0">
2791  <tr>
2792    <td class="md">
2793      <table cellpadding="0" cellspacing="0" border="0">
2794        <tr>
2795          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF int oscl_memcmp </td>
2796          <td class="md" valign="top">(&nbsp;</td>
2797          <td class="md" nowrap valign="top">const void *&nbsp;</td>
2798          <td class="mdname" nowrap>&nbsp; <em>buf1</em>, </td>
2799        </tr>
2800        <tr>
2801          <td></td>
2802          <td></td>
2803          <td class="md" nowrap>const void *&nbsp;</td>
2804          <td class="mdname" nowrap>&nbsp; <em>buf2</em>, </td>
2805        </tr>
2806        <tr>
2807          <td></td>
2808          <td></td>
2809          <td class="md" nowrap>uint32&nbsp;</td>
2810          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
2811        </tr>
2812        <tr>
2813          <td></td>
2814          <td class="md">)&nbsp;</td>
2815          <td class="md" colspan="2"></td>
2816        </tr>
2817
2818      </table>
2819    </td>
2820  </tr>
2821</table>
2822<table cellspacing=5 cellpadding=0 border=0>
2823  <tr>
2824    <td>
2825      &nbsp;
2826    </td>
2827    <td>
2828
2829<p>
2830Compare characters in two buffers<dl compact><dt><b>Parameters: </b></dt><dd>
2831<table border=0 cellspacing=2 cellpadding=0>
2832<tr><td valign=top><em>buf1</em>&nbsp;</td><td>
2833first buffer </td></tr>
2834<tr><td valign=top><em>buf2</em>&nbsp;</td><td>
2835second buffer </td></tr>
2836<tr><td valign=top><em>count</em>&nbsp;</td><td>
2837number of bytes to compare</td></tr>
2838</table>
2839</dl><dl compact><dt><b>Returns: </b></dt><dd>
2840&lt;0 buf1 less than buf2 0 buf1 equal to buf2 &gt;0 buf1 greater than buf2 </dl>    </td>
2841  </tr>
2842</table>
2843<a name="a11" doxytag="oscl_mem_basic_functions.h::oscl_memcpy"></a><p>
2844<table width="100%" cellpadding="2" cellspacing="0" border="0">
2845  <tr>
2846    <td class="md">
2847      <table cellpadding="0" cellspacing="0" border="0">
2848        <tr>
2849          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* oscl_memcpy </td>
2850          <td class="md" valign="top">(&nbsp;</td>
2851          <td class="md" nowrap valign="top">void *&nbsp;</td>
2852          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
2853        </tr>
2854        <tr>
2855          <td></td>
2856          <td></td>
2857          <td class="md" nowrap>const void *&nbsp;</td>
2858          <td class="mdname" nowrap>&nbsp; <em>src</em>, </td>
2859        </tr>
2860        <tr>
2861          <td></td>
2862          <td></td>
2863          <td class="md" nowrap>uint32&nbsp;</td>
2864          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
2865        </tr>
2866        <tr>
2867          <td></td>
2868          <td class="md">)&nbsp;</td>
2869          <td class="md" colspan="2"></td>
2870        </tr>
2871
2872      </table>
2873    </td>
2874  </tr>
2875</table>
2876<table cellspacing=5 cellpadding=0 border=0>
2877  <tr>
2878    <td>
2879      &nbsp;
2880    </td>
2881    <td>
2882
2883<p>
2884Copies characters between buffers The oscl_memcpy function copies count bytes of src to dest. If the source and destination overlap, this function does not ensure that the original source bytes in the overlapping region are copied before being overwritten. Use oscl_memmove to handle overlapping regions<dl compact><dt><b>Parameters: </b></dt><dd>
2885<table border=0 cellspacing=2 cellpadding=0>
2886<tr><td valign=top><em>dest</em>&nbsp;</td><td>
2887new buffer </td></tr>
2888<tr><td valign=top><em>src</em>&nbsp;</td><td>
2889buffer to copy </td></tr>
2890<tr><td valign=top><em>count</em>&nbsp;</td><td>
2891number of bytes to copy</td></tr>
2892</table>
2893</dl><dl compact><dt><b>Returns: </b></dt><dd>
2894the value of dest </dl>    </td>
2895  </tr>
2896</table>
2897<a name="a12" doxytag="oscl_mem_basic_functions.h::oscl_memmove"></a><p>
2898<table width="100%" cellpadding="2" cellspacing="0" border="0">
2899  <tr>
2900    <td class="md">
2901      <table cellpadding="0" cellspacing="0" border="0">
2902        <tr>
2903          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* oscl_memmove </td>
2904          <td class="md" valign="top">(&nbsp;</td>
2905          <td class="md" nowrap valign="top">void *&nbsp;</td>
2906          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
2907        </tr>
2908        <tr>
2909          <td></td>
2910          <td></td>
2911          <td class="md" nowrap>const void *&nbsp;</td>
2912          <td class="mdname" nowrap>&nbsp; <em>src</em>, </td>
2913        </tr>
2914        <tr>
2915          <td></td>
2916          <td></td>
2917          <td class="md" nowrap>uint32&nbsp;</td>
2918          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
2919        </tr>
2920        <tr>
2921          <td></td>
2922          <td class="md">)&nbsp;</td>
2923          <td class="md" colspan="2"></td>
2924        </tr>
2925
2926      </table>
2927    </td>
2928  </tr>
2929</table>
2930<table cellspacing=5 cellpadding=0 border=0>
2931  <tr>
2932    <td>
2933      &nbsp;
2934    </td>
2935    <td>
2936
2937<p>
2938Moves chars from one buffer to another The memmove function copies count bytes of characters from src to dest. If some regions of the source area and the destination overlap, memmove ensures that the original source bytes in the overlapping region are copied before being overwritten.<dl compact><dt><b>Parameters: </b></dt><dd>
2939<table border=0 cellspacing=2 cellpadding=0>
2940<tr><td valign=top><em>dest</em>&nbsp;</td><td>
2941new buffer </td></tr>
2942<tr><td valign=top><em>src</em>&nbsp;</td><td>
2943buffer to copy </td></tr>
2944<tr><td valign=top><em>count</em>&nbsp;</td><td>
2945number of bytes to copy</td></tr>
2946</table>
2947</dl><dl compact><dt><b>Returns: </b></dt><dd>
2948the value of dest </dl>    </td>
2949  </tr>
2950</table>
2951<a name="a13" doxytag="oscl_mem_basic_functions.h::oscl_memmove32"></a><p>
2952<table width="100%" cellpadding="2" cellspacing="0" border="0">
2953  <tr>
2954    <td class="md">
2955      <table cellpadding="0" cellspacing="0" border="0">
2956        <tr>
2957          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* oscl_memmove32 </td>
2958          <td class="md" valign="top">(&nbsp;</td>
2959          <td class="md" nowrap valign="top">void *&nbsp;</td>
2960          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
2961        </tr>
2962        <tr>
2963          <td></td>
2964          <td></td>
2965          <td class="md" nowrap>const void *&nbsp;</td>
2966          <td class="mdname" nowrap>&nbsp; <em>src</em>, </td>
2967        </tr>
2968        <tr>
2969          <td></td>
2970          <td></td>
2971          <td class="md" nowrap>uint32&nbsp;</td>
2972          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
2973        </tr>
2974        <tr>
2975          <td></td>
2976          <td class="md">)&nbsp;</td>
2977          <td class="md" colspan="2"></td>
2978        </tr>
2979
2980      </table>
2981    </td>
2982  </tr>
2983</table>
2984<table cellspacing=5 cellpadding=0 border=0>
2985  <tr>
2986    <td>
2987      &nbsp;
2988    </td>
2989    <td>
2990
2991<p>
2992Same functionality as oscl_memmove, yet optimized for memory alligned on 32-bit boundary<dl compact><dt><b>Parameters: </b></dt><dd>
2993<table border=0 cellspacing=2 cellpadding=0>
2994<tr><td valign=top><em>dest</em>&nbsp;</td><td>
2995new buffer </td></tr>
2996<tr><td valign=top><em>src</em>&nbsp;</td><td>
2997buffer to copy </td></tr>
2998<tr><td valign=top><em>count</em>&nbsp;</td><td>
2999number of bytes to copy</td></tr>
3000</table>
3001</dl><dl compact><dt><b>Returns: </b></dt><dd>
3002the value of dest </dl>    </td>
3003  </tr>
3004</table>
3005<a name="a14" doxytag="oscl_mem_basic_functions.h::oscl_memset"></a><p>
3006<table width="100%" cellpadding="2" cellspacing="0" border="0">
3007  <tr>
3008    <td class="md">
3009      <table cellpadding="0" cellspacing="0" border="0">
3010        <tr>
3011          <td class="md" nowrap valign="top"> OSCL_COND_IMPORT_REF void* oscl_memset </td>
3012          <td class="md" valign="top">(&nbsp;</td>
3013          <td class="md" nowrap valign="top">void *&nbsp;</td>
3014          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
3015        </tr>
3016        <tr>
3017          <td></td>
3018          <td></td>
3019          <td class="md" nowrap>uint8&nbsp;</td>
3020          <td class="mdname" nowrap>&nbsp; <em>val</em>, </td>
3021        </tr>
3022        <tr>
3023          <td></td>
3024          <td></td>
3025          <td class="md" nowrap>uint32&nbsp;</td>
3026          <td class="mdname" nowrap>&nbsp; <em>count</em></td>
3027        </tr>
3028        <tr>
3029          <td></td>
3030          <td class="md">)&nbsp;</td>
3031          <td class="md" colspan="2"></td>
3032        </tr>
3033
3034      </table>
3035    </td>
3036  </tr>
3037</table>
3038<table cellspacing=5 cellpadding=0 border=0>
3039  <tr>
3040    <td>
3041      &nbsp;
3042    </td>
3043    <td>
3044
3045<p>
3046Sets the bytes of a buffer to a specified character<dl compact><dt><b>Parameters: </b></dt><dd>
3047<table border=0 cellspacing=2 cellpadding=0>
3048<tr><td valign=top><em>dest</em>&nbsp;</td><td>
3049buffer to modify </td></tr>
3050<tr><td valign=top><em>val</em>&nbsp;</td><td>
3051character to set </td></tr>
3052<tr><td valign=top><em>count</em>&nbsp;</td><td>
3053number of bytes to set</td></tr>
3054</table>
3055</dl><dl compact><dt><b>Returns: </b></dt><dd>
3056the value of dest </dl>    </td>
3057  </tr>
3058</table>
3059<a name="a17" doxytag="oscl_mem.h::OsclMemInit"></a><p>
3060<table width="100%" cellpadding="2" cellspacing="0" border="0">
3061  <tr>
3062    <td class="md">
3063      <table cellpadding="0" cellspacing="0" border="0">
3064        <tr>
3065          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclMemInit </td>
3066          <td class="md" valign="top">(&nbsp;</td>
3067          <td class="md" nowrap valign="top"><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &amp;&nbsp;</td>
3068          <td class="mdname1" valign="top" nowrap>&nbsp; <em>auditCB</em>          </td>
3069          <td class="md" valign="top">)&nbsp;</td>
3070          <td class="md" nowrap></td>
3071        </tr>
3072
3073      </table>
3074    </td>
3075  </tr>
3076</table>
3077<table cellspacing=5 cellpadding=0 border=0>
3078  <tr>
3079    <td>
3080      &nbsp;
3081    </td>
3082    <td>
3083
3084<p>
3085Initialize an <a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> object. Sets the stats node pointer to null, and sets the audit pointer to the global audit object.<dl compact><dt><b>Parameters: </b></dt><dd>
3086<table border=0 cellspacing=2 cellpadding=0>
3087<tr><td valign=top><em>auditCB</em>&nbsp;</td><td>
3088memory management audit object </td></tr>
3089</table>
3090</dl>    </td>
3091  </tr>
3092</table>
3093<hr><h2>Variable Documentation</h2>
3094<a name="a85" doxytag="MM_AllocBlockHdr::ALLOC_NODE_FLAG"></a><p>
3095<table width="100%" cellpadding="2" cellspacing="0" border="0">
3096  <tr>
3097    <td class="md">
3098      <table cellpadding="0" cellspacing="0" border="0">
3099        <tr>
3100          <td class="md" nowrap valign="top"> const uint32 MM_AllocBlockHdr::ALLOC_NODE_FLAG = 0x80000000<code> [static, inherited]</code>
3101      </table>
3102    </td>
3103  </tr>
3104</table>
3105<table cellspacing=5 cellpadding=0 border=0>
3106  <tr>
3107    <td>
3108      &nbsp;
3109    </td>
3110    <td>
3111
3112<p>
3113    </td>
3114  </tr>
3115</table>
3116<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
3117<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
3118</small></address>
3119</body>
3120</html>
3121