Difference between revisions of "Unit HeapManager"
From Ultibo.org
Line 35: | Line 35: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 47: | Line 47: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 266: | Line 266: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 302: | Line 302: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 326: | Line 326: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 350: | Line 350: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 374: | Line 374: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 398: | Line 398: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 422: | Line 422: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 446: | Line 446: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 470: | Line 470: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 494: | Line 494: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 506: | Line 506: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 518: | Line 518: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 530: | Line 530: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 590: | Line 590: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 614: | Line 614: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 638: | Line 638: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 662: | Line 662: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 686: | Line 686: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 710: | Line 710: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 734: | Line 734: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 758: | Line 758: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 782: | Line 782: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 806: | Line 806: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 830: | Line 830: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 854: | Line 854: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 905: | Line 905: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 956: | Line 956: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 980: | Line 980: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 992: | Line 992: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,004: | Line 1,004: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,016: | Line 1,016: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,028: | Line 1,028: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,040: | Line 1,040: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,052: | Line 1,052: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,076: | Line 1,076: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,100: | Line 1,100: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,124: | Line 1,124: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,136: | Line 1,136: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,148: | Line 1,148: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,577: | Line 1,577: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,589: | Line 1,589: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,613: | Line 1,613: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,625: | Line 1,625: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,637: | Line 1,637: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,649: | Line 1,649: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,661: | Line 1,661: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,673: | Line 1,673: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,685: | Line 1,685: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,697: | Line 1,697: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,712: | Line 1,712: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,724: | Line 1,724: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,736: | Line 1,736: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,748: | Line 1,748: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,760: | Line 1,760: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,772: | Line 1,772: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,784: | Line 1,784: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,796: | Line 1,796: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} |
Revision as of 05:28, 26 September 2016
Return to Unit Reference
Contents
[hide]Description
To be documented
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
[Expand]
function RequestHeapBlock(Hint:Pointer; Size:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Request registration a Heap Block with specified flags and affinity within an existing block
[Expand]
function RequestSharedHeapBlock(Hint:Pointer; Size:PtrUInt):Pointer;
Description: Request registration of a Shared Heap Block within an existing block
[Expand]
function RequestLocalHeapBlock(Hint:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Request registration of a Local Heap Block within an existing block
[Expand]
function RequestCodeHeapBlock(Hint:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Request registration of a Code Heap Block within an existing block
[Expand]
function RequestDeviceHeapBlock(Hint:Pointer; Size:PtrUInt):Pointer;
Description: Request registration of a Device Heap Block within an existing block
[Expand]
function RequestNoCacheHeapBlock(Hint:Pointer; Size:PtrUInt):Pointer;
Description: Request registration of a Non Cached Heap Block within an existing block
[Expand]
function RequestNonSharedHeapBlock(Hint:Pointer; Size:PtrUInt):Pointer;
Description: Request registration of a Non Shared Heap Block within an existing block
[Expand]
function RequestIRQHeapBlock(Hint:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Request registration of an IRQ Heap Block within an existing block
[Expand]
function RequestFIQHeapBlock(Hint:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Request registration of an FIQ Heap Block within an existing block
Heap functions
[Expand]
function GetMemEx(Size:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Allocate a block of memory with the flags and affinity requested
[Expand]
function GetAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate a block of normal memory aligned on a multiple of the alignment value
[Expand]
function GetAlignedMemEx(Size,Alignment:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Allocate a block of memory aligned on a multiple of the alignment value with the flags and affinity requested
[Expand]
function GetSharedMem(Size:PtrUInt):Pointer;
Description: Allocate a block of shared memory
[Expand]
function GetSharedAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate a block of shared memory aligned on a multiple of the alignment value
[Expand]
function GetLocalMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of local memory
[Expand]
function GetLocalAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of local memory aligned on a multiple of the alignment value
[Expand]
function GetCodeMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of code memory
[Expand]
function GetCodeAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of code memory aligned on a multiple of the alignment value
[Expand]
function GetDeviceMem(Size:PtrUInt):Pointer;
Description: Allocate a block of device memory
[Expand]
function GetDeviceAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate a block of device memory aligned on a multiple of the alignment value
[Expand]
function GetNoCacheMem(Size:PtrUInt):Pointer;
Description: Allocate a block of non cached memory
[Expand]
function GetNoCacheAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate a block of non cached memory aligned on a multiple of the alignment value
[Expand]
function GetNonSharedMem(Size:PtrUInt):Pointer;
Description: Allocate a block of non shared memory
[Expand]
function GetNonSharedAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate a block of non shared memory aligned on a multiple of the alignment value
[Expand]
function GetIRQMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of IRQ memory
[Expand]
function GetIRQAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of IRQ memory aligned on a multiple of the alignment value
[Expand]
function GetFIQMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of FIQ memory
[Expand]
function GetFIQAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate a block of FIQ memory aligned on a multiple of the alignment value
[Expand]
function AllocMemEx(Size:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Allocate and clear a block of memory with the flags and affinity requested
[Expand]
function ReAllocMemEx(var Addr:Pointer; Size:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Reallocate a block of memory with the flags and affinity requested
[Expand]
function AllocAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate and clear a block of normal memory aligned on a multiple of the alignment value
[Expand]
function AllocAlignedMemEx(Size,Alignment:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Allocate and clear a block of normal memory aligned on a multiple of the alignment value with the flags and affinity requested
[Expand]
function ReAllocAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt):Pointer;
Description: Reallocate a block of normal memory aligned on a multiple of the alignment value
[Expand]
function ReAllocAlignedMemEx(var Addr:Pointer; Size,Alignment:PtrUInt; Flags,Affinity:LongWord):Pointer;
Description: Reallocate a block of memory aligned on a multiple of the alignment value with the flags and affinity requested
[Expand]
function AllocSharedMem(Size:PtrUInt):Pointer;
Description: Allocate and clear a block of shared memory
[Expand]
function AllocSharedAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate and clear a block of shared memory aligned on a multiple of the alignment value
[Expand]
function ReAllocSharedMem(var Addr:Pointer; Size:PtrUInt):Pointer;
Description: Reallocate a block of shared memory
[Expand]
function ReAllocSharedAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt):Pointer;
Description: Reallocate a block of shared memory aligned on a multiple of the alignment value
[Expand]
function AllocLocalMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of local memory
[Expand]
function AllocLocalAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of local memory aligned on a multiple of the alignment value
[Expand]
function ReAllocLocalMem(var Addr:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of local memory
[Expand]
function ReAllocLocalAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of local memory aligned on a multiple of the alignment value
[Expand]
function AllocCodeMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of code memory
[Expand]
function AllocCodeAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of code memory aligned on a multiple of the alignment value
[Expand]
function ReAllocCodeMem(var Addr:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of code memory
[Expand]
function ReAllocCodeAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of code memory aligned on a multiple of the alignment value
[Expand]
function AllocDeviceMem(Size:PtrUInt):Pointer;
Description: Allocate and clear a block of device memory
[Expand]
function AllocDeviceAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate and clear a block of device memory aligned on a multiple of the alignment value
[Expand]
function ReAllocDeviceMem(var Addr:Pointer; Size:PtrUInt):Pointer;
Description: Reallocate a block of device memory
[Expand]
function ReAllocDeviceAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt):Pointer;
Description: Reallocate a block of device memory aligned on a multiple of the alignment value
[Expand]
function AllocNoCacheMem(Size:PtrUInt):Pointer;
Description: Allocate and clear a block of non cached memory
[Expand]
function AllocNoCacheAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate and clear a block of non cached memory aligned on a multiple of the alignment value
[Expand]
function ReAllocNoCacheMem(var Addr:Pointer; Size:PtrUInt):Pointer;
Description: Reallocate a block of non cached memory
[Expand]
function ReAllocNoCacheAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt):Pointer;
Description: Reallocate a block of non cached memory aligned on a multiple of the alignment value
[Expand]
function AllocNonSharedMem(Size:PtrUInt):Pointer;
Description: Allocate and clear a block of non shared memory
[Expand]
function AllocNonSharedAlignedMem(Size,Alignment:PtrUInt):Pointer;
Description: Allocate and clear a block of non shared memory aligned on a multiple of the alignment value
[Expand]
function ReAllocNonSharedMem(var Addr:Pointer; Size:PtrUInt):Pointer;
Description: Reallocate a block of non shared memory
[Expand]
function ReAllocNonSharedAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt):Pointer;
Description: Reallocate a block of non shared memory aligned on a multiple of the alignment value
[Expand]
function AllocIRQMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of IRQ memory
[Expand]
function AllocIRQAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of IRQ memory aligned on a multiple of the alignment value
[Expand]
function ReAllocIRQMem(var Addr:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of IRQ memory
[Expand]
function ReAllocIRQAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of IRQ memory aligned on a multiple of the alignment value
[Expand]
function AllocFIQMem(Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of FIQ memory
[Expand]
function AllocFIQAlignedMem(Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Allocate and clear a block of FIQ memory aligned on a multiple of the alignment value
[Expand]
function ReAllocFIQMem(var Addr:Pointer; Size:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of FIQ memory
[Expand]
function ReAllocFIQAlignedMem(var Addr:Pointer; Size,Alignment:PtrUInt; Affinity:LongWord):Pointer;
Description: Reallocate a block of FIQ memory aligned on a multiple of the alignment value
[Expand]
function SizeIRQMem(Addr:Pointer):PtrUInt;
Description: Return the size of an allocated block of IRQ memory
[Expand]
function SizeFIQMem(Addr:Pointer):PtrUInt;
Description: Return the size of an allocated block of FIQ memory
[Expand]
function MemFlags(Addr:Pointer):LongWord;
Description: Return the flags of an allocated block of memory
[Expand]
function MemFlagsIRQ(Addr:Pointer):LongWord;
Description: Return the flags of an allocated block of IRQ memory
[Expand]
function MemFlagsFIQ(Addr:Pointer):LongWord;
Description: Return the flags of an allocated block of FIQ memory
[Expand]
function GetHeapStatistics:THeapStatistics;
Description: Return detailed statistics for the heap manager
[Expand]
function GetHeapBlockCount(State:LongWord):LongWord;
Description: Get the total number of current heap blocks based on state
[Expand]
function GetHeapBlockCountEx(State,Flags,Affinity:LongWord):LongWord;
Description: Get the number of current heap blocks based on state, flags and affinity
[Expand]
function GetHeapBlockMin(State:LongWord):LongWord;
Description: Get the minimum size of current heap blocks based on state
[Expand]
function GetHeapBlockMinEx(State,Flags,Affinity:LongWord):LongWord;
Description: Get the minimum size of current heap blocks based on state, flags and affinity
[Expand]
function GetHeapBlockMax(State:LongWord):LongWord;
Description: Get the maximum size of current heap blocks based on state
[Expand]
function GetHeapBlockMaxEx(State,Flags,Affinity:LongWord):LongWord;
Description: Get the maximum size of current heap blocks based on state, flags and affinity
[Expand]
function CreateHeapSnapshotEx(State,Flags,Affinity:LongWord):PHeapSnapshot;
Description: To be documented
[Expand]
function DestroyHeapSnapshot(Snapshot:PHeapSnapshot):LongWord;
Description: To be documented
Internal functions
[Expand]
function GetHeapBlock(Address:Pointer):PHeapBlock;
Description: Get the Heap Block referenced by Address
[Expand]
function FindHeapBlock(Address:Pointer; Size:PtrUInt):PHeapBlock;
Description: Find the Heap Block containing Address up to the Size specified
[Expand]
function AddHeapBlock(Block:PHeapBlock):Boolean;
Description: Add a heap block, sorted by ascending Address order
[Expand]
function SplitHeapBlock(Block:PHeapBlock; Size:PtrUInt):PHeapBlock;
Description: Split a heap block at the size indicated
[Expand]
function MergeHeapBlock(Block:PHeapBlock):PHeapBlock;
Description: Merge a heap block with Prev or Next blocks if free
[Expand]
function GetFreeBlock(Size:PtrUInt):PHeapBlock;
Description: Get a free block of at least the size indicated
[Expand]
function GetFreeBlockEx(Size:PtrUInt; Flags,Affinity:LongWord):PHeapBlock;
Description: Get a free block of at least the size indicated with the flags and affinity requested
[Expand]
function FindFreeBlock(Size:PtrUInt):PHeapBlock;
Description: Find a free block of at least the size indicated with no flags or affinity which is alignable to the HEAP_REQUEST_ALIGNMENT value
[Expand]
function AddFreeBlock(Block:PHeapBlock):Boolean;
Description: Add a free block, sorted by ascending Size order
[Expand]
function GetUsedBlock(Address:Pointer):PHeapBlock;
Description: Get a used block by address
[Expand]
function CheckUsedBlock(Address:Pointer):Boolean;
Description: Check a used block by address
[Expand]
function GetIRQBlock(Address:Pointer):PHeapBlock;
Description: Get the IRQ Heap Block referenced by Address
[Expand]
function CheckIRQBlock(Address:Pointer):Boolean;
Description: Check the IRQ Heap Block referenced by Address
[Expand]
function AddIRQBlock(Block:PHeapBlock):Boolean;
Description: Add an IRQ heap block, sorted by ascending Address order
[Expand]
function SplitIRQBlock(Block:PHeapBlock; Size:PtrUInt):PHeapBlock;
Description: Split an IRQ heap block at the size indicated
[Expand]
function MergeIRQBlock(Block:PHeapBlock):PHeapBlock;
Description: Merge an IRQ heap block with Prev or Next blocks if free
[Expand]
function GetFreeIRQBlock(Size:PtrUInt; Affinity:LongWord):PHeapBlock;
Description: Get a free IRQ block of at least the size indicated
[Expand]
function AddFreeIRQBlock(Block:PHeapBlock):Boolean;
Description: Add a free IRQ block, sorted by ascending Size order
[Expand]
function RemoveFreeIRQBlock(Block:PHeapBlock):Boolean;
Description: Remove a free IRQ block
[Expand]
function GetFIQBlock(Address:Pointer):PHeapBlock;
Description: Get the FIQ Heap Block referenced by Address
[Expand]
function CheckFIQBlock(Address:Pointer):Boolean;
Description: Check the FIQ Heap Block referenced by Address
[Expand]
function AddFIQBlock(Block:PHeapBlock):Boolean;
Description: Add an FIQ heap block, sorted by ascending Address order
[Expand]
function SplitFIQBlock(Block:PHeapBlock; Size:PtrUInt):PHeapBlock;
Description: Split an FIQ heap block at the size indicated
[Expand]
function MergeFIQBlock(Block:PHeapBlock):PHeapBlock;
Description: Merge an FIQ heap block with Prev or Next blocks if free
[Expand]
function GetFreeFIQBlock(Size:PtrUInt; Affinity:LongWord):PHeapBlock;
Description: Get a free FIQ block of at least the size indicated
[Expand]
function AddFreeFIQBlock(Block:PHeapBlock):Boolean;
Description: Add a free FIQ block, sorted by ascending Size order
[Expand]
function RemoveFreeFIQBlock(Block:PHeapBlock):Boolean;
Description: Remove a free FIQ block
RTL heap manager functions
[Expand]
function SysFreeMemSize(Addr:Pointer; Size:PtrUInt):PtrUInt;
Description: Free a block of memory
[Expand]
function SysAllocMem(Size:PtrUInt):Pointer;
Description: Allocate and clear a block of normal memory
[Expand]
function SysReAllocMem(var Addr:Pointer; Size:PtrUInt):Pointer;
Description: Reallocate a block of normal memory
[Expand]
function SysSizeMem(Addr:Pointer):PtrUInt;
Description: Return the size of an allocated block of memory
[Expand]
function SysGetHeapStatus:THeapStatus;
Description: Return status information for the heap manager
[Expand]
function SysGetFPCHeapStatus:TFPCHeapStatus;
Description: Return status information for the heap manager
Helper functions
Return to Unit Reference