gwnavruntime/kernel/HeapMH/HeapMH_AllocEngine.h Source File
Go to the documentation of this file.
17 #ifndef INC_KY_Kernel_HeapMH_AllocEngine_H
18 #define INC_KY_Kernel_HeapMH_AllocEngine_H
24 namespace Kaim {
namespace HeapMH {
29 typedef List<PageMH> PageListType;
31 AllocEngineMH(SysAlloc* sysAlloc,
33 UPInt minAlignSize=16,
37 bool IsValid()
const {
return true; }
41 UPInt SetLimit(UPInt lim) {
return Limit = lim; }
42 void SetLimitHandler(
void* handler) { pLimHandler = handler; }
44 void* Alloc(UPInt size, PageInfoMH* info);
45 void* Alloc(UPInt size, UPInt alignSize, PageInfoMH* info);
47 void* ReallocInPage(PageMH* page,
void* oldPtr, UPInt newSize, PageInfoMH* newInfo);
48 void* ReallocInNode(NodeMH* node,
void* oldPtr, UPInt newSize, PageInfoMH* newInfo);
49 void* ReallocGeneral(PageMH* page,
void* oldPtr, UPInt newSize, PageInfoMH* newInfo);
50 void* Realloc(
void* oldPtr, UPInt newSize);
51 void Free(PageMH* page,
void* ptr);
52 void Free(NodeMH* node,
void* ptr);
55 void GetPageInfo(PageMH* page, PageInfoMH* info)
const;
56 void GetPageInfo(NodeMH* node, PageInfoMH* info)
const;
57 void GetPageInfoWithSize(PageMH* page,
const void* ptr, PageInfoMH* info)
const;
58 void GetPageInfoWithSize(NodeMH* node,
const void* ptr, PageInfoMH* info)
const;
60 UPInt GetFootprint()
const {
return Footprint; }
61 UPInt GetUsedSpace()
const {
return UsedSpace; }
63 UPInt GetUsableSize(
void* ptr);
66 PageMH* allocPage(
bool* limHandlerOK);
67 void* allocDirect(UPInt size, UPInt alignSize,
bool* limHandlerOK, PageInfoMH* info);
68 void freePage(PageMH* page);
70 void* allocFromPage(UPInt size, PageInfoMH* info);
71 void* allocFromPage(UPInt size, UPInt alignSize, PageInfoMH* info);
76 AllocBitSet2MH Allocator;
Definition: gamekitcrowddispersion.h:20