gwnavruntime/kernel/HeapPT/HeapPT_AllocBitSet2.h Source File
Go to the documentation of this file.
17 #ifndef INC_KY_Kernel_HeapPT_AllocBitSet2_H
18 #define INC_KY_Kernel_HeapPT_AllocBitSet2_H
23 namespace Kaim {
namespace HeapPT {
29 AllocBitSet2(UPInt minAlignShift);
31 void Reset() { Bin.Reset(); }
33 static UInt32* GetBitSet(
const HeapSegment* seg)
35 return (UInt32*)(((UByte*)seg) +
sizeof(HeapSegment));
38 UPInt GetBitSetWords(UPInt dataSize)
const
40 return BitSet2::GetBitSetSize(dataSize, MinAlignShift);
43 UPInt GetBitSetBytes(UPInt dataSize)
const
45 return GetBitSetWords(dataSize) *
sizeof(UInt32);
48 void InitSegment(HeapSegment* seg);
49 void ReleaseSegment(HeapSegment* seg);
51 void* Alloc(UPInt size, HeapSegment** allocSeg);
52 void* Alloc(UPInt size, UPInt alignSize, HeapSegment** allocSeg);
54 void Free(HeapSegment* seg,
void* ptr);
55 void* ReallocInPlace(HeapSegment* seg,
void* oldPtr,
56 UPInt newSize, UPInt* oldSize);
58 UPInt GetUsableSize(
const HeapSegment* seg,
const void* ptr)
const;
59 UPInt GetAlignShift(
const HeapSegment* seg,
const void* ptr, UPInt size)
const;
61 UPInt GetTotalFreeSpace()
const
63 return Bin.GetTotalFreeSpace(MinAlignShift);
66 void VisitMem(MemVisitor* visitor, MemVisitor::Category cat)
const
68 Bin.VisitMem(visitor, MinAlignShift, cat);
71 void VisitUnused(SegVisitor* visitor,
unsigned cat)
const
73 Bin.VisitUnused(visitor, MinAlignShift, cat);
76 void CheckIntegrity()
const
78 Bin.CheckIntegrity(MinAlignShift);
Definition: gamekitcrowddispersion.h:20