28 #ifndef __RTXMEMORY_H__ 29 #define __RTXMEMORY_H__ 41 #define RT_MH_DONTKEEPFREE 0x1 42 #define RT_MH_VALIDATEPTR 0x2 43 #define RT_MH_CHECKHEAP 0x4 44 #define RT_MH_TRACE 0x8 45 #define RT_MH_DIAG 0x10 46 #define RT_MH_DIAG_DEBUG 0x20 47 #define RT_MH_ZEROONFREE 0x40 48 #define RT_MH_ZEROARRAY 0x80 49 #define RT_MH_SYSALLOC 0x100 50 #define RT_MH_TRACE_FREELIST 0x200 55 #define OSRTMH_PROPID_DEFBLKSIZE 1 56 #define OSRTMH_PROPID_SETFLAGS 2 57 #define OSRTMH_PROPID_CLEARFLAGS 3 58 #define OSRTMH_PROPID_KEEPFREEUNITS 4 60 #define OSRTMH_PROPID_USER 10 62 #define OSRTXM_K_MEMBLKSIZ (4*1024) 77 #define OSRTALLOCTYPE(pctxt,type) \ 78 (type*) rtxMemHeapAlloc (&(pctxt)->pMemHeap, sizeof(type)) 86 #define OSRTALLOCTYPEZ(pctxt,type) \ 87 (type*) rtxMemHeapAllocZ (&(pctxt)->pMemHeap, sizeof(type)) 100 #define OSRTREALLOCARRAY(pctxt,pseqof,type) do {\ 101 if (sizeof(type)*(pseqof)->n < (pseqof)->n) return RTERR_NOMEM; \ 102 if (((pseqof)->elem = (type*) rtxMemHeapRealloc \ 103 (&(pctxt)->pMemHeap, (pseqof)->elem, sizeof(type)*(pseqof)->n)) == 0) \ 104 return RTERR_NOMEM; \ 108 #define OSCRTMALLOC0(nbytes) malloc(nbytes) 109 #define OSCRTFREE0(ptr) free(ptr) 113 extern EXTERNRT
OSCTXT g_ctxt;
115 #define OSCRTMALLOC0(nbytes) rtxMemAlloc(&g_ctxt,(nbytes)) 116 #define OSCRTFREE0(ptr) rtxMemFreePtr(&g_ctxt,(ptr)) 118 #define OSCRTMALLOC0(nbytes) (void*)0 119 #define OSCRTFREE0(ptr) (void*)0 124 #define OSCRTMALLOC rtxMemAlloc 125 #define OSCRTFREE rtxMemFreePtr 136 #if !defined(OSCDECL) 137 #if defined(_MSC_VER) || defined(__BORLANDC__) 138 #define OSCDECL __cdecl 144 EXTERNRT
void rtxMemHeapAddRef (
void** ppvMemHeap);
145 EXTERNRT
void* rtxMemHeapAlloc (
void** ppvMemHeap, OSSIZE nbytes);
146 EXTERNRT
void* rtxMemHeapAllocZ (
void** ppvMemHeap, OSSIZE nbytes);
147 EXTERNRT
void* rtxMemHeapSysAlloc (
void** ppvMemHeap, OSSIZE nbytes);
148 EXTERNRT
void* rtxMemHeapSysAllocZ (
void** ppvMemHeap, OSSIZE nbytes);
149 EXTERNRT
int rtxMemHeapCheckPtr (
void** ppvMemHeap,
const void* mem_p);
150 EXTERNRT
void rtxMemHeapFreeAll (
void** ppvMemHeap);
151 EXTERNRT
void rtxMemHeapFreePtr (
void** ppvMemHeap,
void* mem_p);
152 EXTERNRT
void rtxMemHeapSysFreePtr (
void** ppvMemHeap,
void* mem_p);
154 EXTERNRT
void* rtxMemHeapRealloc
155 (
void** ppvMemHeap,
void* mem_p, OSSIZE nbytes_);
157 EXTERNRT
void* rtxMemHeapSysRealloc
158 (
void** ppvMemHeap,
void* mem_p, OSSIZE nbytes_);
160 EXTERNRT
void rtxMemHeapRelease (
void** ppvMemHeap);
161 EXTERNRT
void rtxMemHeapReset (
void** ppvMemHeap);
162 EXTERNRT
void rtxMemHeapSetProperty (
void** ppvMemHeap,
163 OSUINT32 propId,
void* pProp);
165 EXTERNRT
void* rtxMemNewArray (OSSIZE nbytes);
166 EXTERNRT
void* rtxMemNewArrayZ (OSSIZE nbytes);
167 EXTERNRT
void rtxMemDeleteArray (
void* mem_p);
169 EXTERNRT
void* rtxMemHeapAutoPtrRef (
void** ppvMemHeap,
void* ptr);
170 EXTERNRT
int rtxMemHeapAutoPtrUnref (
void** ppvMemHeap,
void* ptr);
171 EXTERNRT
int rtxMemHeapAutoPtrGetRefCount (
void** ppvMemHeap,
void* mem_p);
173 EXTERNRT
void rtxMemHeapInvalidPtrHook (
void** ppvMemHeap,
const void* mem_p);
175 EXTERNRT
void rtxMemHeapCheck (
void **ppvMemHeap,
const char* file,
int line);
211 OSMallocFunc malloc_func,
212 OSReallocFunc realloc_func,
213 OSFreeFunc free_func);
229 (
void **ppvMemHeap,
void* pmem, OSSIZE memsize) ;
231 #if !defined(_ARMTCC) && !defined(__SYMBIAN32__) 248 OSReallocFunc realloc_func,
249 OSFreeFunc free_func);
253 EXTERNRT
void rtxMemFreeOpenSeqExt
264 #ifndef __SYMBIAN32__ 300 EXTERNRT OSBOOL
rtxMemIsZero (
const void* pmem, OSSIZE memsiz);
303 EXTERNRT
void rtxMemSetStaticBuf (
void* memHeapBuf, OSUINT32 blkSize);
315 #define rtxMemAlloc(pctxt,nbytes) \ 316 rtxMemHeapAlloc(&(pctxt)->pMemHeap,nbytes) 328 #define rtxMemSysAlloc(pctxt,nbytes) \ 329 rtxMemHeapSysAlloc(&(pctxt)->pMemHeap,nbytes) 340 #define rtxMemAllocZ(pctxt,nbytes) \ 341 rtxMemHeapAllocZ(&(pctxt)->pMemHeap,nbytes) 356 #define rtxMemSysAllocZ(pctxt,nbytes) \ 357 rtxMemHeapSysAllocZ(&(pctxt)->pMemHeap,nbytes) 374 #define rtxMemRealloc(pctxt,mem_p,nbytes) \ 375 rtxMemHeapRealloc(&(pctxt)->pMemHeap, (void*)mem_p, nbytes) 393 #define rtxMemSysRealloc(pctxt,mem_p,nbytes) \ 394 rtxMemHeapSysRealloc(&(pctxt)->pMemHeap,(void*)mem_p,nbytes) 407 #define rtxMemFreePtr(pctxt,mem_p) \ 408 rtxMemHeapFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 420 #define rtxMemSysFreePtr(pctxt,mem_p) \ 421 rtxMemHeapSysFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 458 #define rtxMemAllocType(pctxt,ctype) \ 459 (ctype*)rtxMemHeapAlloc(&(pctxt)->pMemHeap,sizeof(ctype)) 474 #define rtxMemSysAllocType(pctxt,ctype) \ 475 (ctype*)rtxMemHeapSysAlloc(&(pctxt)->pMemHeap,sizeof(ctype)) 486 #define rtxMemAllocTypeZ(pctxt,ctype) \ 487 (ctype*)rtxMemHeapAllocZ(&(pctxt)->pMemHeap,sizeof(ctype)) 502 #define rtxMemSysAllocTypeZ(pctxt,ctype) \ 503 (ctype*)rtxMemHeapSysAllocZ(&(pctxt)->pMemHeap,sizeof(ctype)) 516 #define rtxMemFreeType(pctxt,mem_p) \ 517 rtxMemHeapFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 530 #define rtxMemSysFreeType(pctxt,mem_p) \ 531 rtxMemHeapSysFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 542 #define rtxMemAllocArray(pctxt,n,type) \ 543 (type*)rtxMemAllocArray2 (pctxt, n, sizeof(type), 0) 545 EXTERNRT
void* rtxMemAllocArray2
546 (
OSCTXT* pctxt, OSSIZE numElements, OSSIZE typeSize, OSUINT32 flags);
561 #define rtxMemSysAllocArray(pctxt,n,type) \ 562 (type*)rtxMemAllocArray2 (pctxt, n, sizeof(type), RT_MH_SYSALLOC) 573 #define rtxMemAllocArrayZ(pctxt,n,type) \ 574 (type*)rtxMemAllocArray2 (pctxt, n, sizeof(type), RT_MH_ZEROARRAY) 587 #define rtxMemFreeArray(pctxt,mem_p) \ 588 rtxMemHeapFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 601 #define rtxMemSysFreeArray(pctxt,mem_p) \ 602 rtxMemHeapSysFreePtr(&(pctxt)->pMemHeap, (void*)mem_p) 618 #define rtxMemReallocArray(pctxt,mem_p,n,type) \ 619 (type*)rtxMemHeapRealloc(&(pctxt)->pMemHeap, (void*)mem_p, sizeof(type)*n) 634 #define rtxMemNewAutoPtr(pctxt,nbytes) \ 635 rtxMemHeapAlloc(&(pctxt)->pMemHeap, nbytes) 645 #define rtxMemAutoPtrRef(pctxt,ptr) \ 646 rtxMemHeapAutoPtrRef(&(pctxt)->pMemHeap, (void*)(ptr)) 658 #define rtxMemAutoPtrUnref(pctxt,ptr) \ 659 rtxMemHeapAutoPtrUnref(&(pctxt)->pMemHeap, (void*)(ptr)) 669 #define rtxMemAutoPtrGetRefCount(pctxt,ptr) \ 670 rtxMemHeapAutoPtrGetRefCount(&(pctxt)->pMemHeap, (void*)(ptr)) 680 #define rtxMemCheckPtr(pctxt,mem_p) \ 681 rtxMemHeapCheckPtr(&(pctxt)->pMemHeap, (void*)mem_p) 688 #define rtxMemCheck(pctxt) \ 689 rtxMemHeapCheck(&(pctxt)->pMemHeap, __FILE__, __LINE__) 696 #define rtxMemPrint(pctxt) \ 697 rtxMemHeapPrint(&(pctxt)->pMemHeap) 705 #define rtxMemPrintWithFree(pctxt) \ 706 rtxMemHeapPrintWithFree(&(pctxt)->pMemHeap) 715 #define rtxMemSetProperty(pctxt,propId,pProp) \ 716 rtxMemHeapSetProperty (&(pctxt)->pMemHeap, propId, pProp) OSUINT32 rtxMemGetDefBlkSize(OSVOIDARG)
OSUINT32 rtxMemHeapGetDefBlkSize(OSCTXT *pctxt)
Definition: rtxDList.h:64
OSBOOL rtxMemIsZero(const void *pmem, OSSIZE memsiz)
void rtxMemHeapPrintWithFree(void **ppvMemHeap)
void rtxMemHeapPrint(void **ppvMemHeap)
void rtxMemReset(OSCTXT *pctxt)
int rtxMemStaticHeapCreate(void **ppvMemHeap, void *pmem, OSSIZE memsize)
int rtxMemHeapCreateExt(void **ppvMemHeap, OSMallocFunc malloc_func, OSReallocFunc realloc_func, OSFreeFunc free_func)
void rtxMemSetAllocFuncs(OSMallocFunc malloc_func, OSReallocFunc realloc_func, OSFreeFunc free_func)
int rtxMemHeapCreate(void **ppvMemHeap)
OSBOOL rtxMemHeapIsEmpty(OSCTXT *pctxt)
void rtxMemSetDefBlkSize(OSUINT32 blkSize)
Definition: rtxContext.h:197
void rtxMemFree(OSCTXT *pctxt)