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> 196 This 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> 199 base 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> 252 expression to allocate memory. </td></tr> 253 <tr><td valign=top><em>Tptr:variable</em> </td><td> 254 to hold result. </td></tr> 255 <tr><td valign=top><em>T:</em> </td><td> 256 type </td></tr> 257 <tr><td valign=top><em>params:</em> </td><td> 258 constructor arg list </td></tr> 259 <tr><td valign=top><em>freeFunc:</em> </td><td> 260 delete 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> 774 allocator for objects of type T </td></tr> 775 <tr><td valign=top><em>T</em> </td><td> 776 type of object to delete </td></tr> 777 <tr><td valign=top><em>ptr</em> </td><td> 778 pointer 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> 818 Creates 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> 821 allocator 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> 823 type of object to create </td></tr> 824 <tr><td valign=top><em>params</em> </td><td> 825 object initialization parameters</td></tr> 826 </table> 827 </dl><dl compact><dt><b>Returns: </b></dt><dd> 828 pointer 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> 860 Oscl 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> 863 pointer to memory block previously allocated with OSCL_ARRAY_NEW</td></tr> 864 </table> 865 </dl><dl compact><dt><b>Returns: </b></dt><dd> 866 void </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> 896 Oscl 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> 899 data type for 'new' operation </td></tr> 900 <tr><td valign=top><em>count</em> </td><td> 901 number of elements to create</td></tr> 902 </table> 903 </dl><dl compact><dt><b>Returns: </b></dt><dd> 904 pointer 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> 942 Oscl 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> 945 input memory management audit object </td></tr> 946 <tr><td valign=top><em>T</em> </td><td> 947 data type for 'new' operation </td></tr> 948 <tr><td valign=top><em>count</em> </td><td> 949 number of elements to create</td></tr> 950 </table> 951 </dl><dl compact><dt><b>Returns: </b></dt><dd> 952 pointer 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> 990 Allocates 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> 993 input memory management audit object </td></tr> 994 <tr><td valign=top><em>num</em> </td><td> 995 number of elements </td></tr> 996 <tr><td valign=top><em>size</em> </td><td> 997 number of bytes to allocate for each element</td></tr> 998 </table> 999 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1000 a 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> 1035 Allocates 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> 1038 input memory management audit object </td></tr> 1039 <tr><td valign=top><em>count</em> </td><td> 1040 number of bytes to allocate</td></tr> 1041 </table> 1042 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1043 a 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> 1081 Oscl "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> 1084 input memory management audit object </td></tr> 1085 <tr><td valign=top><em>T</em> </td><td> 1086 data type for 'new' operation </td></tr> 1087 <tr><td valign=top><em>params</em> </td><td> 1088 object initialization parameters</td></tr> 1089 </table> 1090 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1091 pointer 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> 1129 Re-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> 1132 input memory management audit object </td></tr> 1133 <tr><td valign=top><em>ptr</em> </td><td> 1134 original memory block </td></tr> 1135 <tr><td valign=top><em>new_size</em> </td><td> 1136 New size of the block</td></tr> 1137 </table> 1138 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1139 a 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> 1204 Allocates 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> 1207 number of elements </td></tr> 1208 <tr><td valign=top><em>size</em> </td><td> 1209 number of bytes to allocate for each element</td></tr> 1210 </table> 1211 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1212 a 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> 1244 Cleans 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> 1247 name 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> 1276 Another 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> 1303 Another 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> 1335 pointer to memory block previously allocated with OSCL_NEW</td></tr> 1336 </table> 1337 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1338 void </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> 1382 Previously 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> 1436 Deallocates 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> 1439 pointer 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> 1517 Allocates 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> 1520 number of bytes to allocate</td></tr> 1521 </table> 1522 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1523 a 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> 1558 Oscl "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> 1561 data type for 'new' operation </td></tr> 1562 <tr><td valign=top><em>params</em> </td><td> 1563 object initialization parameters</td></tr> 1564 </table> 1565 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1566 pointer 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> 1661 Re-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> 1664 original memory block </td></tr> 1665 <tr><td valign=top><em>new_size</em> </td><td> 1666 New size of the block</td></tr> 1667 </table> 1668 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1669 a 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> 1710 Creates 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> 1713 variable to hold return value-- pointer to new object of type T. </td></tr> 1714 <tr><td valign=top><em>T_allocator</em> </td><td> 1715 allocator 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> 1717 type of object to create </td></tr> 1718 <tr><td valign=top><em>params</em> </td><td> 1719 object initialization parameters</td></tr> 1720 </table> 1721 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1722 pointer 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> 1763 Oscl "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> 1766 variable to hold return value-- pointer to new object of type T. </td></tr> 1767 <tr><td valign=top><em>auditCB</em> </td><td> 1768 input memory management audit object </td></tr> 1769 <tr><td valign=top><em>T</em> </td><td> 1770 data type for 'new' operation </td></tr> 1771 <tr><td valign=top><em>params</em> </td><td> 1772 object initialization parameters</td></tr> 1773 </table> 1774 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1775 pointer 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> 1813 Oscl "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> 1816 variable to hold return value-- pointer to new object of type T. </td></tr> 1817 <tr><td valign=top><em>T</em> </td><td> 1818 data type for 'new' operation </td></tr> 1819 <tr><td valign=top><em>params</em> </td><td> 1820 object initialization parameters</td></tr> 1821 </table> 1822 </dl><dl compact><dt><b>Returns: </b></dt><dd> 1823 pointer 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> 2780 Get 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> 2783 size of object</td></tr> 2784 </table> 2785 </dl><dl compact><dt><b>Returns: </b></dt><dd> 2786 memory-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> 2830 Compare 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> 2833 first buffer </td></tr> 2834 <tr><td valign=top><em>buf2</em> </td><td> 2835 second buffer </td></tr> 2836 <tr><td valign=top><em>count</em> </td><td> 2837 number 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> 2884 Copies 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> 2887 new buffer </td></tr> 2888 <tr><td valign=top><em>src</em> </td><td> 2889 buffer to copy </td></tr> 2890 <tr><td valign=top><em>count</em> </td><td> 2891 number of bytes to copy</td></tr> 2892 </table> 2893 </dl><dl compact><dt><b>Returns: </b></dt><dd> 2894 the 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> 2938 Moves 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> 2941 new buffer </td></tr> 2942 <tr><td valign=top><em>src</em> </td><td> 2943 buffer to copy </td></tr> 2944 <tr><td valign=top><em>count</em> </td><td> 2945 number of bytes to copy</td></tr> 2946 </table> 2947 </dl><dl compact><dt><b>Returns: </b></dt><dd> 2948 the 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> 2992 Same 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> 2995 new buffer </td></tr> 2996 <tr><td valign=top><em>src</em> </td><td> 2997 buffer to copy </td></tr> 2998 <tr><td valign=top><em>count</em> </td><td> 2999 number of bytes to copy</td></tr> 3000 </table> 3001 </dl><dl compact><dt><b>Returns: </b></dt><dd> 3002 the 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> 3046 Sets 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> 3049 buffer to modify </td></tr> 3050 <tr><td valign=top><em>val</em> </td><td> 3051 character to set </td></tr> 3052 <tr><td valign=top><em>count</em> </td><td> 3053 number of bytes to set</td></tr> 3054 </table> 3055 </dl><dl compact><dt><b>Returns: </b></dt><dd> 3056 the 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> 3085 Initialize 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> 3088 memory 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