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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </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 </td><td valign=bottom><a class="el" href="oscl__mem_8h.html">oscl_mem.h</a></td></tr> 13<tr><td> </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 </td><td valign=bottom><a class="el" href="oscl__mem__audit_8h.html">oscl_mem_audit.h</a></td></tr> 17<tr><td> </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 </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> </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 </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> </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 </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> </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 </td><td valign=bottom><a class="el" href="oscl__mem__mempool_8h.html">oscl_mem_mempool.h</a></td></tr> 33<tr><td> </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 </td><td valign=bottom><a class="el" href="classallocator.html">allocator</a></td></tr> 38<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classallocator.html">allocator</a></td></tr> 39<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classHeapBase.html">HeapBase</a></td></tr> 40<tr><td nowrap align=right valign=top>struct </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td><td valign=bottom><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a></td></tr> 51<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMem.html">OsclMem</a></td></tr> 52<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a></td></tr> 53<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemAllocator.html">OsclMemAllocator</a></td></tr> 54<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemAllocDestructDealloc.html">OsclMemAllocDestructDealloc</a></td></tr> 55<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemAllocDestructDealloc.html">OsclMemAllocDestructDealloc</a></td></tr> 56<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemAudit.html">OsclMemAudit</a></td></tr> 57<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOSCLMemAutoPtr.html">OSCLMemAutoPtr</a></td></tr> 58<tr><td> </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 </td><td valign=bottom><a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a></td></tr> 60<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a></td></tr> 61<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemBasicAllocDestructDealloc.html">OsclMemBasicAllocDestructDealloc</a></td></tr> 62<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemBasicAllocDestructDealloc.html">OsclMemBasicAllocDestructDealloc</a></td></tr> 63<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemGlobalAuditObject.html">OsclMemGlobalAuditObject</a></td></tr> 64<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemPoolFixedChunkAllocator.html">OsclMemPoolFixedChunkAllocator</a></td></tr> 65<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemPoolFixedChunkAllocatorObserver.html">OsclMemPoolFixedChunkAllocatorObserver</a></td></tr> 66<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocator.html">OsclMemPoolResizableAllocator</a></td></tr> 67<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocatorMemoryObserver.html">OsclMemPoolResizableAllocatorMemoryObserver</a></td></tr> 68<tr><td nowrap align=right valign=top>class </td><td valign=bottom><a class="el" href="classOsclMemPoolResizableAllocatorObserver.html">OsclMemPoolResizableAllocatorObserver</a></td></tr> 69<tr><td nowrap align=right valign=top>class </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 </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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a34">OSCL_HAS_GLOBAL_NEW_DELETE</a> 1</td></tr> 73<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a35">OSCL_CLEANUP_BASE_CLASS</a>(T) _OSCL_CLEANUP_BASE_CLASS(T)</td></tr> 74<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a36">OSCL_ALLOC_NEW</a>(T_allocator, T, params) new(T_allocator.allocate(1)) T params</td></tr> 75<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a37">OSCL_TRAP_ALLOC_NEW</a>(T_ptr, T_allocator, T, params) _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 </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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a39">OSCL_MALLOC</a>(count) _oscl_default_audit_malloc(count)</td></tr> 78<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a40">oscl_malloc</a>(a) OSCL_MALLOC(a)</td></tr> 79<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a41">OSCL_DEFAULT_MALLOC</a>(x) OSCL_MALLOC(x)</td></tr> 80<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a42">OSCL_AUDIT_MALLOC</a>(auditCB, count) _oscl_audit_malloc(count, auditCB)</td></tr> 81<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a43">OSCL_CALLOC</a>(num, size) _oscl_default_audit_calloc(num,size)</td></tr> 82<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a44">oscl_calloc</a>(a, b) OSCL_CALLOC(a,b)</td></tr> 83<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a45">OSCL_AUDIT_CALLOC</a>(auditCB, num, size) _oscl_audit_calloc(num,size, auditCB)</td></tr> 84<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a46">OSCL_REALLOC</a>(ptr, new_size) _oscl_default_audit_realloc(ptr,new_size)</td></tr> 85<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a47">oscl_realloc</a>(a, b) OSCL_REALLOC(a,b)</td></tr> 86<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a48">OSCL_AUDIT_REALLOC</a>(auditCB, ptr, new_size) _oscl_audit_realloc(ptr,new_size, auditCB)</td></tr> 87<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a49">OSCL_FREE</a>(ptr) _oscl_audit_free(ptr)</td></tr> 88<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a50">oscl_free</a>(x) OSCL_FREE(x)</td></tr> 89<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a51">OSCL_DEFAULT_FREE</a>(x) OSCL_FREE(x)</td></tr> 90<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a52">OSCL_NEW</a>(T, params) new T params</td></tr> 91<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a53">OSCL_PLACEMENT_NEW</a>(ptr, constructor) new(ptr) constructor</td></tr> 92<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a54">OSCL_TRAP_NEW</a>(T_ptr, T, params) _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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a55">OSCL_AUDIT_NEW</a>(auditCB, T, params) new(_oscl_audit_new(sizeof(T),auditCB)) T params</td></tr> 94<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a56">OSCL_TRAP_AUDIT_NEW</a>(T_ptr, auditCB, T, params) _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 </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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a58">OSCL_AUDIT_ARRAY_NEW</a>(auditCB, T, count) new(_oscl_audit_new(sizeof(T)*(count),auditCB)) T</td></tr> 97<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a59">OSCL_ARRAY_NEW</a>(T, count) new T[count]</td></tr> 98<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a60">OSCL_ARRAY_DELETE</a>(ptr) delete [] ptr</td></tr> 99<tr><td nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a62">_OSCL_CLEANUP_BASE_CLASS</a>(T) this->T::~T()</td></tr> 101<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a63">MM_ALLOC_MAX_QUERY_FILENAME_LEN</a> 128</td></tr> 102<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a64">MM_ALLOC_MAX_QUERY_TAG_LEN</a> 64</td></tr> 103<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a65">MM_AUDIT_VALIDATE_BLOCK</a> 1</td></tr> 104<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a66">MM_AUDIT_PREFILL_FLAG</a> 0x1</td></tr> 105<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a67">MM_AUDIT_POSTFILL_FLAG</a> 0x2</td></tr> 106<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a68">MM_AUDIT_VALIDATE_ALL_HEAP_FLAG</a> 0x4</td></tr> 107<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a69">MM_AUDIT_VALIDATE_ON_FREE_FLAG</a> 0x8</td></tr> 108<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a70">MM_AUDIT_ALLOC_NODE_ENABLE_FLAG</a> 0x10</td></tr> 109<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a71">MM_AUDIT_SUPPRESS_FILENAME_FLAG</a> 0x20</td></tr> 110<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a72">DEFAULT_MM_AUDIT_MODE</a> 0</td></tr> 111<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a73">MM_AUDIT_ALLOC_NODE_SUPPORT</a> 1</td></tr> 112<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a74">MM_AUDIT_FENCE_SUPPORT</a> 0</td></tr> 113<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a75">MM_AUDIT_INCLUDE_ALL_HEAP_VALIDATION</a> 1</td></tr> 114<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a76">MM_AUDIT_FILL_SUPPORT</a> 0</td></tr> 115<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a77">MM_AUDIT_FAILURE_SIMULATION_SUPPORT</a> 1</td></tr> 116<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a78">FENCE_PATTERN</a> 0xAA</td></tr> 117<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a79">MIN_FENCE_SIZE</a> 4</td></tr> 118<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a80">MEM_ALIGN_SIZE</a> 8</td></tr> 119<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a81">COMPUTE_MEM_ALIGN_SIZE</a>(x, y, z) (y+(((x+y)%z) ? (z - (x+y)%z) : 0))</td></tr> 120<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a82">DEFAULT_PREFILL_PATTERN</a> 0x96</td></tr> 121<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group__osclmemory.html#a83">DEFAULT_POSTFILL_PATTERN</a> 0x5A</td></tr> 122<tr><td nowrap align=right valign=top>#define </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>< char,<br> 125 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>< char, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> > > </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>< uint8,<br> 127 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>< uint8, <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> > > </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>< <a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>,<br> 129 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>< <a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>,<br> 130 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> > > </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>< <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br> 132 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>< <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br> 133 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> > > </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>< <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br> 135 <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a>< <a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>,<br> 136 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> > > </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>< <a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>,<br> 138 <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> > </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>< <a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>,<br> 140 <a class="el" href="group__osclmemory.html#a5">TagTree_Allocator</a> > </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 * </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 * </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 * </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 </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 * </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 * </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 * </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 * </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 </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> </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 </td><td valign=bottom><a class="el" href="group__osclmemory.html#a17">OsclMemInit</a> (<a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> &auditCB)</td></tr> 153<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void * </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> &, const char *f=NULL, const int l=0)</td></tr> 154<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void * </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> &, const char *f=NULL, const int l=0)</td></tr> 155<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void * </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> &, const char *f=NULL, const int l=0)</td></tr> 156<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void * </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> &, const char *f=NULL, const int l=0)</td></tr> 157<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void * </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 * </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 * </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 * </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 </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 * </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 * </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 </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 * </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 * </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 </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 </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">( </td> 180 <td class="md" nowrap valign="top">T </td> 181 <td class="mdname1" valign="top" nowrap> </td> 182 <td class="md" valign="top">) </td> 183 <td class="md" nowrap> this->T::~T() 184 </table> 185 </td> 186 </tr> 187</table> 188<table cellspacing=5 cellpadding=0 border=0> 189 <tr> 190 <td> 191 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> </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">( </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 </td> 225 <td class="mdname1" valign="top" nowrap> </td> 226 <td class="md" valign="top">) </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 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> </td><td> 252expression to allocate memory. </td></tr> 253<tr><td valign=top><em>Tptr:variable</em> </td><td> 254to hold result. </td></tr> 255<tr><td valign=top><em>T:</em> </td><td> 256type </td></tr> 257<tr><td valign=top><em>params:</em> </td><td> 258constructor arg list </td></tr> 259<tr><td valign=top><em>freeFunc:</em> </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">( </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 </td> 280 <td class="mdname1" valign="top" nowrap> </td> 281 <td class="md" valign="top">) </td> 282 <td class="md" nowrap> (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 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 0 305 </table> 306 </td> 307 </tr> 308</table> 309<table cellspacing=5 cellpadding=0 border=0> 310 <tr> 311 <td> 312 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 0x5A 327 </table> 328 </td> 329 </tr> 330</table> 331<table cellspacing=5 cellpadding=0 border=0> 332 <tr> 333 <td> 334 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 0x96 349 </table> 350 </td> 351 </tr> 352</table> 353<table cellspacing=5 cellpadding=0 border=0> 354 <tr> 355 <td> 356 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 0xAA 371 </table> 372 </td> 373 </tr> 374</table> 375<table cellspacing=5 cellpadding=0 border=0> 376 <tr> 377 <td> 378 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 8 393 </table> 394 </td> 395 </tr> 396</table> 397<table cellspacing=5 cellpadding=0 border=0> 398 <tr> 399 <td> 400 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 4 415 </table> 416 </td> 417 </tr> 418</table> 419<table cellspacing=5 cellpadding=0 border=0> 420 <tr> 421 <td> 422 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 128 437 </table> 438 </td> 439 </tr> 440</table> 441<table cellspacing=5 cellpadding=0 border=0> 442 <tr> 443 <td> 444 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 64 459 </table> 460 </td> 461 </tr> 462</table> 463<table cellspacing=5 cellpadding=0 border=0> 464 <tr> 465 <td> 466 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 0x10 481 </table> 482 </td> 483 </tr> 484</table> 485<table cellspacing=5 cellpadding=0 border=0> 486 <tr> 487 <td> 488 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 1 503 </table> 504 </td> 505 </tr> 506</table> 507<table cellspacing=5 cellpadding=0 border=0> 508 <tr> 509 <td> 510 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 1 525 </table> 526 </td> 527 </tr> 528</table> 529<table cellspacing=5 cellpadding=0 border=0> 530 <tr> 531 <td> 532 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 0 547 </table> 548 </td> 549 </tr> 550</table> 551<table cellspacing=5 cellpadding=0 border=0> 552 <tr> 553 <td> 554 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 0 569 </table> 570 </td> 571 </tr> 572</table> 573<table cellspacing=5 cellpadding=0 border=0> 574 <tr> 575 <td> 576 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 1 591 </table> 592 </td> 593 </tr> 594</table> 595<table cellspacing=5 cellpadding=0 border=0> 596 <tr> 597 <td> 598 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 0x2 613 </table> 614 </td> 615 </tr> 616</table> 617<table cellspacing=5 cellpadding=0 border=0> 618 <tr> 619 <td> 620 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 0x1 635 </table> 636 </td> 637 </tr> 638</table> 639<table cellspacing=5 cellpadding=0 border=0> 640 <tr> 641 <td> 642 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 0x20 657 </table> 658 </td> 659 </tr> 660</table> 661<table cellspacing=5 cellpadding=0 border=0> 662 <tr> 663 <td> 664 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 0x4 679 </table> 680 </td> 681 </tr> 682</table> 683<table cellspacing=5 cellpadding=0 border=0> 684 <tr> 685 <td> 686 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 1 701 </table> 702 </td> 703 </tr> 704</table> 705<table cellspacing=5 cellpadding=0 border=0> 706 <tr> 707 <td> 708 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 0x8 723 </table> 724 </td> 725 </tr> 726</table> 727<table cellspacing=5 cellpadding=0 border=0> 728 <tr> 729 <td> 730 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">( </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 </td> 753 <td class="mdname1" valign="top" nowrap> </td> 754 <td class="md" valign="top">) </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 764 </td> 765 <td> 766 767<p> 768<b>Value:</b><div class="fragment"><pre>{\ 769 ptr->~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> </td><td> 774allocator for objects of type T </td></tr> 775<tr><td valign=top><em>T</em> </td><td> 776type of object to delete </td></tr> 777<tr><td valign=top><em>ptr</em> </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> </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">( </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 </td> 803 <td class="mdname1" valign="top" nowrap> </td> 804 <td class="md" valign="top">) </td> 805 <td class="md" nowrap> 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 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> </td><td> 821allocator for objects of type T, must be an <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><T, Allocator>, where Allocator is an <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> </td></tr> 822<tr><td valign=top><em>T</em> </td><td> 823type of object to create </td></tr> 824<tr><td valign=top><em>params</em> </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> </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">( </td> 844 <td class="md" nowrap valign="top">ptr </td> 845 <td class="mdname1" valign="top" nowrap> </td> 846 <td class="md" valign="top">) </td> 847 <td class="md" nowrap> delete [] ptr 848 </table> 849 </td> 850 </tr> 851</table> 852<table cellspacing=5 cellpadding=0 border=0> 853 <tr> 854 <td> 855 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> </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">( </td> 877 <td class="md" nowrap valign="top">T, <tr> 878 <td></td> 879 <td></td> 880 <td class="md" nowrap>count </td> 881 <td class="mdname1" valign="top" nowrap> </td> 882 <td class="md" valign="top">) </td> 883 <td class="md" nowrap> new T[count] 884 </table> 885 </td> 886 </tr> 887</table> 888<table cellspacing=5 cellpadding=0 border=0> 889 <tr> 890 <td> 891 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> </td><td> 899data type for 'new' operation </td></tr> 900<tr><td valign=top><em>count</em> </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> </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">( </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 </td> 927 <td class="mdname1" valign="top" nowrap> </td> 928 <td class="md" valign="top">) </td> 929 <td class="md" nowrap> 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 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> </td><td> 945input memory management audit object </td></tr> 946<tr><td valign=top><em>T</em> </td><td> 947data type for 'new' operation </td></tr> 948<tr><td valign=top><em>count</em> </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> </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">( </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 </td> 975 <td class="mdname1" valign="top" nowrap> </td> 976 <td class="md" valign="top">) </td> 977 <td class="md" nowrap> _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 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> </td><td> 993input memory management audit object </td></tr> 994<tr><td valign=top><em>num</em> </td><td> 995number of elements </td></tr> 996<tr><td valign=top><em>size</em> </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> </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">( </td> 1016 <td class="md" nowrap valign="top">auditCB, <tr> 1017 <td></td> 1018 <td></td> 1019 <td class="md" nowrap>count </td> 1020 <td class="mdname1" valign="top" nowrap> </td> 1021 <td class="md" valign="top">) </td> 1022 <td class="md" nowrap> _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 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> </td><td> 1038input memory management audit object </td></tr> 1039<tr><td valign=top><em>count</em> </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> </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">( </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 </td> 1066 <td class="mdname1" valign="top" nowrap> </td> 1067 <td class="md" valign="top">) </td> 1068 <td class="md" nowrap> 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 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> </td><td> 1084input memory management audit object </td></tr> 1085<tr><td valign=top><em>T</em> </td><td> 1086data type for 'new' operation </td></tr> 1087<tr><td valign=top><em>params</em> </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> </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">( </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 </td> 1114 <td class="mdname1" valign="top" nowrap> </td> 1115 <td class="md" valign="top">) </td> 1116 <td class="md" nowrap> _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 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> </td><td> 1132input memory management audit object </td></tr> 1133<tr><td valign=top><em>ptr</em> </td><td> 1134original memory block </td></tr> 1135<tr><td valign=top><em>new_size</em> </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> </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">( </td> 1155 <td class="md" nowrap valign="top">a, <tr> 1156 <td></td> 1157 <td></td> 1158 <td class="md" nowrap>b </td> 1159 <td class="mdname1" valign="top" nowrap> </td> 1160 <td class="md" valign="top">) </td> 1161 <td class="md" nowrap> 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 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">( </td> 1185 <td class="md" nowrap valign="top">num, <tr> 1186 <td></td> 1187 <td></td> 1188 <td class="md" nowrap>size </td> 1189 <td class="mdname1" valign="top" nowrap> </td> 1190 <td class="md" valign="top">) </td> 1191 <td class="md" nowrap> _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 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> </td><td> 1207number of elements </td></tr> 1208<tr><td valign=top><em>size</em> </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> </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">( </td> 1228 <td class="md" nowrap valign="top">T </td> 1229 <td class="mdname1" valign="top" nowrap> </td> 1230 <td class="md" valign="top">) </td> 1231 <td class="md" nowrap> _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 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> </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">( </td> 1260 <td class="md" nowrap valign="top">x </td> 1261 <td class="mdname1" valign="top" nowrap> </td> 1262 <td class="md" valign="top">) </td> 1263 <td class="md" nowrap> OSCL_FREE(x) 1264 </table> 1265 </td> 1266 </tr> 1267</table> 1268<table cellspacing=5 cellpadding=0 border=0> 1269 <tr> 1270 <td> 1271 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">( </td> 1287 <td class="md" nowrap valign="top">x </td> 1288 <td class="mdname1" valign="top" nowrap> </td> 1289 <td class="md" valign="top">) </td> 1290 <td class="md" nowrap> OSCL_MALLOC(x) 1291 </table> 1292 </td> 1293 </tr> 1294</table> 1295<table cellspacing=5 cellpadding=0 border=0> 1296 <tr> 1297 <td> 1298 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">( </td> 1314 <td class="md" nowrap valign="top">ptr </td> 1315 <td class="mdname1" valign="top" nowrap> </td> 1316 <td class="md" valign="top">) </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 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> </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 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 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">( </td> 1393 <td class="md" nowrap valign="top">x </td> 1394 <td class="mdname1" valign="top" nowrap> </td> 1395 <td class="md" valign="top">) </td> 1396 <td class="md" nowrap> OSCL_FREE(x) 1397 </table> 1398 </td> 1399 </tr> 1400</table> 1401<table cellspacing=5 cellpadding=0 border=0> 1402 <tr> 1403 <td> 1404 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">( </td> 1420 <td class="md" nowrap valign="top">ptr </td> 1421 <td class="mdname1" valign="top" nowrap> </td> 1422 <td class="md" valign="top">) </td> 1423 <td class="md" nowrap> _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 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> </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 1 1451 </table> 1452 </td> 1453 </tr> 1454</table> 1455<table cellspacing=5 cellpadding=0 border=0> 1456 <tr> 1457 <td> 1458 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">( </td> 1474 <td class="md" nowrap valign="top">a </td> 1475 <td class="mdname1" valign="top" nowrap> </td> 1476 <td class="md" valign="top">) </td> 1477 <td class="md" nowrap> OSCL_MALLOC(a) 1478 </table> 1479 </td> 1480 </tr> 1481</table> 1482<table cellspacing=5 cellpadding=0 border=0> 1483 <tr> 1484 <td> 1485 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">( </td> 1501 <td class="md" nowrap valign="top">count </td> 1502 <td class="mdname1" valign="top" nowrap> </td> 1503 <td class="md" valign="top">) </td> 1504 <td class="md" nowrap> _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 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> </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> </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">( </td> 1539 <td class="md" nowrap valign="top">T, <tr> 1540 <td></td> 1541 <td></td> 1542 <td class="md" nowrap>params </td> 1543 <td class="mdname1" valign="top" nowrap> </td> 1544 <td class="md" valign="top">) </td> 1545 <td class="md" nowrap> new T params 1546 </table> 1547 </td> 1548 </tr> 1549</table> 1550<table cellspacing=5 cellpadding=0 border=0> 1551 <tr> 1552 <td> 1553 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> </td><td> 1561data type for 'new' operation </td></tr> 1562<tr><td valign=top><em>params</em> </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> </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">( </td> 1582 <td class="md" nowrap valign="top">ptr, <tr> 1583 <td></td> 1584 <td></td> 1585 <td class="md" nowrap>constructor </td> 1586 <td class="mdname1" valign="top" nowrap> </td> 1587 <td class="md" valign="top">) </td> 1588 <td class="md" nowrap> new(ptr) constructor 1589 </table> 1590 </td> 1591 </tr> 1592</table> 1593<table cellspacing=5 cellpadding=0 border=0> 1594 <tr> 1595 <td> 1596 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">( </td> 1612 <td class="md" nowrap valign="top">a, <tr> 1613 <td></td> 1614 <td></td> 1615 <td class="md" nowrap>b </td> 1616 <td class="mdname1" valign="top" nowrap> </td> 1617 <td class="md" valign="top">) </td> 1618 <td class="md" nowrap> 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 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">( </td> 1642 <td class="md" nowrap valign="top">ptr, <tr> 1643 <td></td> 1644 <td></td> 1645 <td class="md" nowrap>new_size </td> 1646 <td class="mdname1" valign="top" nowrap> </td> 1647 <td class="md" valign="top">) </td> 1648 <td class="md" nowrap> _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 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> </td><td> 1664original memory block </td></tr> 1665<tr><td valign=top><em>new_size</em> </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> </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">( </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 </td> 1695 <td class="mdname1" valign="top" nowrap> </td> 1696 <td class="md" valign="top">) </td> 1697 <td class="md" nowrap> _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 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> </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> </td><td> 1715allocator for objects of type T, must be an <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><T, Allocator>, where Allocator is an <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> </td></tr> 1716<tr><td valign=top><em>T</em> </td><td> 1717type of object to create </td></tr> 1718<tr><td valign=top><em>params</em> </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> </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">( </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 </td> 1748 <td class="mdname1" valign="top" nowrap> </td> 1749 <td class="md" valign="top">) </td> 1750 <td class="md" nowrap> _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 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> </td><td> 1766variable to hold return value-- pointer to new object of type T. </td></tr> 1767<tr><td valign=top><em>auditCB</em> </td><td> 1768input memory management audit object </td></tr> 1769<tr><td valign=top><em>T</em> </td><td> 1770data type for 'new' operation </td></tr> 1771<tr><td valign=top><em>params</em> </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> </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">( </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 </td> 1798 <td class="mdname1" valign="top" nowrap> </td> 1799 <td class="md" valign="top">) </td> 1800 <td class="md" nowrap> _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 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> </td><td> 1816variable to hold return value-- pointer to new object of type T. </td></tr> 1817<tr><td valign=top><em>T</em> </td><td> 1818data type for 'new' operation </td></tr> 1819<tr><td valign=top><em>params</em> </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> </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><<a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><<a class="el" href="structMM__AllocNode.html">MM_AllocNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>> > MM_AllocNodeAutoPtr 1839 </table> 1840 </td> 1841 </tr> 1842</table> 1843<table cellspacing=5 cellpadding=0 border=0> 1844 <tr> 1845 <td> 1846 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><<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>> > MM_StatsNodeTagTreeType 1861 </table> 1862 </td> 1863 </tr> 1864</table> 1865<table cellspacing=5 cellpadding=0 border=0> 1866 <tr> 1867 <td> 1868 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><char, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><char, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>> > MMAuditCharAutoPtr 1883 </table> 1884 </td> 1885 </tr> 1886</table> 1887<table cellspacing=5 cellpadding=0 border=0> 1888 <tr> 1889 <td> 1890 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><uint8, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><uint8, <a class="el" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a>> > MMAuditUint8AutoPtr 1905 </table> 1906 </td> 1907 </tr> 1908</table> 1909<table cellspacing=5 cellpadding=0 border=0> 1910 <tr> 1911 <td> 1912 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><<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOscl__TAlloc.html">Oscl_TAlloc</a><<a class="el" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>> > OsclMemStatsNodeAutoPtr 1927 </table> 1928 </td> 1929 </tr> 1930</table> 1931<table cellspacing=5 cellpadding=0 border=0> 1932 <tr> 1933 <td> 1934 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><<a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>, <a class="el" href="group__osclmemory.html#a5">TagTree_Allocator</a>> OsclTagTreeType 1949 </table> 1950 </td> 1951 </tr> 1952</table> 1953<table cellspacing=5 cellpadding=0 border=0> 1954 <tr> 1955 <td> 1956 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><<a class="el" href="group__osclmemory.html#a3">MM_StatsNodeTagTreeType</a>, <a class="el" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a>> TagTree_Allocator 1971 </table> 1972 </td> 1973 </tr> 1974</table> 1975<table cellspacing=5 cellpadding=0 border=0> 1976 <tr> 1977 <td> 1978 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">( </td> 1995 <td class="md" nowrap valign="top">size_t </td> 1996 <td class="mdname" nowrap> , </td> 1997 </tr> 1998 <tr> 1999 <td></td> 2000 <td></td> 2001 <td class="md" nowrap>size_t </td> 2002 <td class="mdname" nowrap> , </td> 2003 </tr> 2004 <tr> 2005 <td></td> 2006 <td></td> 2007 <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> & </td> 2008 <td class="mdname" nowrap> , </td> 2009 </tr> 2010 <tr> 2011 <td></td> 2012 <td></td> 2013 <td class="md" nowrap>const char * </td> 2014 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2015 </tr> 2016 <tr> 2017 <td></td> 2018 <td></td> 2019 <td class="md" nowrap>const int </td> 2020 <td class="mdname" nowrap> <em>l</em> = 0</td> 2021 </tr> 2022 <tr> 2023 <td></td> 2024 <td class="md">) </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 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">( </td> 2051 <td class="md" nowrap valign="top">void * </td> 2052 <td class="mdname1" valign="top" nowrap> </td> 2053 <td class="md" valign="top">) </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 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">( </td> 2080 <td class="md" nowrap valign="top">size_t </td> 2081 <td class="mdname" nowrap> , </td> 2082 </tr> 2083 <tr> 2084 <td></td> 2085 <td></td> 2086 <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> & </td> 2087 <td class="mdname" nowrap> , </td> 2088 </tr> 2089 <tr> 2090 <td></td> 2091 <td></td> 2092 <td class="md" nowrap>const char * </td> 2093 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2094 </tr> 2095 <tr> 2096 <td></td> 2097 <td></td> 2098 <td class="md" nowrap>const int </td> 2099 <td class="mdname" nowrap> <em>l</em> = 0</td> 2100 </tr> 2101 <tr> 2102 <td></td> 2103 <td class="md">) </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 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">( </td> 2130 <td class="md" nowrap valign="top">size_t </td> 2131 <td class="mdname" nowrap> , </td> 2132 </tr> 2133 <tr> 2134 <td></td> 2135 <td></td> 2136 <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> & </td> 2137 <td class="mdname" nowrap> , </td> 2138 </tr> 2139 <tr> 2140 <td></td> 2141 <td></td> 2142 <td class="md" nowrap>const char * </td> 2143 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2144 </tr> 2145 <tr> 2146 <td></td> 2147 <td></td> 2148 <td class="md" nowrap>const int </td> 2149 <td class="mdname" nowrap> <em>l</em> = 0</td> 2150 </tr> 2151 <tr> 2152 <td></td> 2153 <td class="md">) </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 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">( </td> 2180 <td class="md" nowrap valign="top">void * </td> 2181 <td class="mdname" nowrap> , </td> 2182 </tr> 2183 <tr> 2184 <td></td> 2185 <td></td> 2186 <td class="md" nowrap>size_t </td> 2187 <td class="mdname" nowrap> , </td> 2188 </tr> 2189 <tr> 2190 <td></td> 2191 <td></td> 2192 <td class="md" nowrap><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> & </td> 2193 <td class="mdname" nowrap> , </td> 2194 </tr> 2195 <tr> 2196 <td></td> 2197 <td></td> 2198 <td class="md" nowrap>const char * </td> 2199 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2200 </tr> 2201 <tr> 2202 <td></td> 2203 <td></td> 2204 <td class="md" nowrap>const int </td> 2205 <td class="mdname" nowrap> <em>l</em> = 0</td> 2206 </tr> 2207 <tr> 2208 <td></td> 2209 <td class="md">) </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 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">( </td> 2236 <td class="md" nowrap valign="top">int32 </td> 2237 <td class="mdname" nowrap> <em>nelems</em>, </td> 2238 </tr> 2239 <tr> 2240 <td></td> 2241 <td></td> 2242 <td class="md" nowrap>int32 </td> 2243 <td class="mdname" nowrap> <em>size</em></td> 2244 </tr> 2245 <tr> 2246 <td></td> 2247 <td class="md">) </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 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">( </td> 2274 <td class="md" nowrap valign="top">size_t </td> 2275 <td class="mdname" nowrap> , </td> 2276 </tr> 2277 <tr> 2278 <td></td> 2279 <td></td> 2280 <td class="md" nowrap>size_t </td> 2281 <td class="mdname" nowrap> , </td> 2282 </tr> 2283 <tr> 2284 <td></td> 2285 <td></td> 2286 <td class="md" nowrap>const char * </td> 2287 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2288 </tr> 2289 <tr> 2290 <td></td> 2291 <td></td> 2292 <td class="md" nowrap>const int </td> 2293 <td class="mdname" nowrap> <em>l</em> = 0</td> 2294 </tr> 2295 <tr> 2296 <td></td> 2297 <td class="md">) </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 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">( </td> 2324 <td class="md" nowrap valign="top">size_t </td> 2325 <td class="mdname" nowrap> , </td> 2326 </tr> 2327 <tr> 2328 <td></td> 2329 <td></td> 2330 <td class="md" nowrap>const char * </td> 2331 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2332 </tr> 2333 <tr> 2334 <td></td> 2335 <td></td> 2336 <td class="md" nowrap>const int </td> 2337 <td class="mdname" nowrap> <em>l</em> = 0</td> 2338 </tr> 2339 <tr> 2340 <td></td> 2341 <td class="md">) </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 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">( </td> 2368 <td class="md" nowrap valign="top">size_t </td> 2369 <td class="mdname" nowrap> , </td> 2370 </tr> 2371 <tr> 2372 <td></td> 2373 <td></td> 2374 <td class="md" nowrap>const char * </td> 2375 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2376 </tr> 2377 <tr> 2378 <td></td> 2379 <td></td> 2380 <td class="md" nowrap>const int </td> 2381 <td class="mdname" nowrap> <em>l</em> = 0</td> 2382 </tr> 2383 <tr> 2384 <td></td> 2385 <td class="md">) </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 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">( </td> 2412 <td class="md" nowrap valign="top">void * </td> 2413 <td class="mdname" nowrap> , </td> 2414 </tr> 2415 <tr> 2416 <td></td> 2417 <td></td> 2418 <td class="md" nowrap>size_t </td> 2419 <td class="mdname" nowrap> , </td> 2420 </tr> 2421 <tr> 2422 <td></td> 2423 <td></td> 2424 <td class="md" nowrap>const char * </td> 2425 <td class="mdname" nowrap> <em>f</em> = NULL, </td> 2426 </tr> 2427 <tr> 2428 <td></td> 2429 <td></td> 2430 <td class="md" nowrap>const int </td> 2431 <td class="mdname" nowrap> <em>l</em> = 0</td> 2432 </tr> 2433 <tr> 2434 <td></td> 2435 <td class="md">) </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 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">( </td> 2462 <td class="md" nowrap valign="top">void * </td> 2463 <td class="mdname1" valign="top" nowrap> <em>src</em> </td> 2464 <td class="md" valign="top">) </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 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">( </td> 2491 <td class="md" nowrap valign="top">int32 </td> 2492 <td class="mdname1" valign="top" nowrap> <em>count</em> </td> 2493 <td class="md" valign="top">) </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 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">( </td> 2520 <td class="md" nowrap valign="top">void * </td> 2521 <td class="mdname" nowrap> <em>src</em>, </td> 2522 </tr> 2523 <tr> 2524 <td></td> 2525 <td></td> 2526 <td class="md" nowrap>int32 </td> 2527 <td class="mdname" nowrap> <em>count</em></td> 2528 </tr> 2529 <tr> 2530 <td></td> 2531 <td class="md">) </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 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">( </td> 2558 <td class="md" nowrap valign="top">void * </td> 2559 <td class="mdname1" valign="top" nowrap> </td> 2560 <td class="md" valign="top">) </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 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">( </td> 2587 <td class="md" nowrap valign="top">void * </td> 2588 <td class="mdname1" valign="top" nowrap> <em>aPtr</em> </td> 2589 <td class="md" valign="top">) </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 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">( </td> 2616 <td class="md" nowrap valign="top">size_t </td> 2617 <td class="mdname1" valign="top" nowrap> </td> 2618 <td class="md" valign="top">) </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 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">( </td> 2645 <td class="md" nowrap valign="top">size_t </td> 2646 <td class="mdname" nowrap> <em>aSize</em>, </td> 2647 </tr> 2648 <tr> 2649 <td></td> 2650 <td></td> 2651 <td class="md" nowrap>const char * </td> 2652 <td class="mdname" nowrap> <em>aFile</em>, </td> 2653 </tr> 2654 <tr> 2655 <td></td> 2656 <td></td> 2657 <td class="md" nowrap>int </td> 2658 <td class="mdname" nowrap> <em>aLine</em></td> 2659 </tr> 2660 <tr> 2661 <td></td> 2662 <td class="md">) </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 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">( </td> 2689 <td class="md" nowrap valign="top">size_t </td> 2690 <td class="mdname1" valign="top" nowrap> <em>aSize</em> </td> 2691 <td class="md" valign="top">) </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 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">( </td> 2718 <td class="md" nowrap valign="top">size_t </td> 2719 <td class="mdname" nowrap> <em>aSize</em>, </td> 2720 </tr> 2721 <tr> 2722 <td></td> 2723 <td></td> 2724 <td class="md" nowrap>const char * </td> 2725 <td class="mdname" nowrap> <em>aFile</em>, </td> 2726 </tr> 2727 <tr> 2728 <td></td> 2729 <td></td> 2730 <td class="md" nowrap>int </td> 2731 <td class="mdname" nowrap> <em>aLine</em></td> 2732 </tr> 2733 <tr> 2734 <td></td> 2735 <td class="md">) </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 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">( </td> 2762 <td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a27">uint</a> </td> 2763 <td class="mdname1" valign="top" nowrap> <em>size</em> </td> 2764 <td class="md" valign="top">) </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 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> </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">( </td> 2797 <td class="md" nowrap valign="top">const void * </td> 2798 <td class="mdname" nowrap> <em>buf1</em>, </td> 2799 </tr> 2800 <tr> 2801 <td></td> 2802 <td></td> 2803 <td class="md" nowrap>const void * </td> 2804 <td class="mdname" nowrap> <em>buf2</em>, </td> 2805 </tr> 2806 <tr> 2807 <td></td> 2808 <td></td> 2809 <td class="md" nowrap>uint32 </td> 2810 <td class="mdname" nowrap> <em>count</em></td> 2811 </tr> 2812 <tr> 2813 <td></td> 2814 <td class="md">) </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 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> </td><td> 2833first buffer </td></tr> 2834<tr><td valign=top><em>buf2</em> </td><td> 2835second buffer </td></tr> 2836<tr><td valign=top><em>count</em> </td><td> 2837number of bytes to compare</td></tr> 2838</table> 2839</dl><dl compact><dt><b>Returns: </b></dt><dd> 2840<0 buf1 less than buf2 0 buf1 equal to buf2 >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">( </td> 2851 <td class="md" nowrap valign="top">void * </td> 2852 <td class="mdname" nowrap> <em>dest</em>, </td> 2853 </tr> 2854 <tr> 2855 <td></td> 2856 <td></td> 2857 <td class="md" nowrap>const void * </td> 2858 <td class="mdname" nowrap> <em>src</em>, </td> 2859 </tr> 2860 <tr> 2861 <td></td> 2862 <td></td> 2863 <td class="md" nowrap>uint32 </td> 2864 <td class="mdname" nowrap> <em>count</em></td> 2865 </tr> 2866 <tr> 2867 <td></td> 2868 <td class="md">) </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 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> </td><td> 2887new buffer </td></tr> 2888<tr><td valign=top><em>src</em> </td><td> 2889buffer to copy </td></tr> 2890<tr><td valign=top><em>count</em> </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">( </td> 2905 <td class="md" nowrap valign="top">void * </td> 2906 <td class="mdname" nowrap> <em>dest</em>, </td> 2907 </tr> 2908 <tr> 2909 <td></td> 2910 <td></td> 2911 <td class="md" nowrap>const void * </td> 2912 <td class="mdname" nowrap> <em>src</em>, </td> 2913 </tr> 2914 <tr> 2915 <td></td> 2916 <td></td> 2917 <td class="md" nowrap>uint32 </td> 2918 <td class="mdname" nowrap> <em>count</em></td> 2919 </tr> 2920 <tr> 2921 <td></td> 2922 <td class="md">) </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 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> </td><td> 2941new buffer </td></tr> 2942<tr><td valign=top><em>src</em> </td><td> 2943buffer to copy </td></tr> 2944<tr><td valign=top><em>count</em> </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">( </td> 2959 <td class="md" nowrap valign="top">void * </td> 2960 <td class="mdname" nowrap> <em>dest</em>, </td> 2961 </tr> 2962 <tr> 2963 <td></td> 2964 <td></td> 2965 <td class="md" nowrap>const void * </td> 2966 <td class="mdname" nowrap> <em>src</em>, </td> 2967 </tr> 2968 <tr> 2969 <td></td> 2970 <td></td> 2971 <td class="md" nowrap>uint32 </td> 2972 <td class="mdname" nowrap> <em>count</em></td> 2973 </tr> 2974 <tr> 2975 <td></td> 2976 <td class="md">) </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 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> </td><td> 2995new buffer </td></tr> 2996<tr><td valign=top><em>src</em> </td><td> 2997buffer to copy </td></tr> 2998<tr><td valign=top><em>count</em> </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">( </td> 3013 <td class="md" nowrap valign="top">void * </td> 3014 <td class="mdname" nowrap> <em>dest</em>, </td> 3015 </tr> 3016 <tr> 3017 <td></td> 3018 <td></td> 3019 <td class="md" nowrap>uint8 </td> 3020 <td class="mdname" nowrap> <em>val</em>, </td> 3021 </tr> 3022 <tr> 3023 <td></td> 3024 <td></td> 3025 <td class="md" nowrap>uint32 </td> 3026 <td class="mdname" nowrap> <em>count</em></td> 3027 </tr> 3028 <tr> 3029 <td></td> 3030 <td class="md">) </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 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> </td><td> 3049buffer to modify </td></tr> 3050<tr><td valign=top><em>val</em> </td><td> 3051character to set </td></tr> 3052<tr><td valign=top><em>count</em> </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">( </td> 3067 <td class="md" nowrap valign="top"><a class="el" href="classOsclAuditCB.html">OsclAuditCB</a> & </td> 3068 <td class="mdname1" valign="top" nowrap> <em>auditCB</em> </td> 3069 <td class="md" valign="top">) </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 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> </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 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