CommonLibSSE NG
|
#include <AbstractHeap.h>
Public Member Functions | |
~AbstractHeap () override | |
void | GetMemoryStats (MemoryStats *a_stats) override |
void * | AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment) override |
void * | TryAllocateImpl (std::size_t a_size, std::uint32_t a_alignment) override |
const char * | GetName () const override |
bool | PointerInHeap (const void *a_pointer) const override |
void | GetHeapStats (HeapStats *a_stats, bool a_fullBlockInfo) override |
bool | ShouldTrySmallBlockPools (std::size_t a_size, MEM_CONTEXT a_context) override |
std::uint32_t | GetPageSize () const override |
virtual void * | DoHeapAllocation (std::size_t a_size, std::size_t a_initialSize)=0 |
virtual void | DoHeapFree (void *a_ptr)=0 |
virtual std::size_t | CreateMorePages (void *a_memory, std::size_t a_currentSize, std::size_t a_requestedBytes) |
virtual std::size_t | CleanExtraPages (void *a_memory, std::size_t a_currentSize, std::size_t a_freeBytes) |
virtual void | DecommitPages (HeapBlock *a_block) |
virtual void | CommitPages (HeapBlock *, std::size_t) |
Public Member Functions inherited from RE::IMemoryHeap | |
~IMemoryHeap () override=default | |
bool | ContainsBlockImpl (const void *a_block) const override |
void * | AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment) override |
void | DeallocateAlignImpl (void *&a_block) override |
virtual const char * | GetName () const =0 |
virtual void * | Allocate (std::size_t a_size, std::uint32_t a_alignment)=0 |
virtual void | Deallocate (void *a_mem, std::uint32_t)=0 |
virtual bool | PointerInHeap (const void *a_pointer) const =0 |
virtual std::size_t | TotalSize (const void *a_pointer) const =0 |
virtual void | GetHeapStats (HeapStats *a_stats, bool a_fullBlockInfo)=0 |
virtual bool | ShouldTrySmallBlockPools (std::size_t a_size, MEM_CONTEXT a_context)=0 |
virtual std::uint32_t | GetPageSize () const =0 |
Public Member Functions inherited from RE::IMemoryStore | |
~IMemoryStore () override=default | |
virtual void * | AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment)=0 |
virtual void | DeallocateAlignImpl (void *&a_block)=0 |
virtual void * | TryAllocateImpl (std::size_t a_size, std::uint32_t a_alignment) |
void * | AllocateAlign (std::size_t a_size, std::uint32_t a_alignment) |
void | DeallocateAlign (void *&a_freeBlock) |
Public Member Functions inherited from RE::IMemoryStoreBase | |
virtual | ~IMemoryStoreBase ()=default |
virtual std::size_t | Size (const void *a_mem) const =0 |
virtual void | GetMemoryStats (MemoryStats *a_stats)=0 |
virtual bool | ContainsBlockImpl (const void *a_block) const =0 |
Public Attributes | |
BSCriticalSection | criticalSection |
const char * | name |
std::size_t | minFreeBlockSize |
std::uint32_t | pageSize |
std::uint32_t | pageSizeFlag |
std::size_t | memHeapSize |
std::size_t | initialSize |
std::size_t | currentSize |
std::size_t | wastedMemory |
std::size_t | memAllocated |
std::size_t | memAllocatedHigh |
std::size_t | blockMemAllocated |
char * | memHeap |
std::int32_t | numBlocks |
std::uint32_t | pad08C |
HeapBlock * | blockHead |
HeapBlock * | blockTail |
std::int32_t | numFreeBlocks |
bool | allowDecommits |
bool | supportsSwapping |
std::uint16_t | pad0A0 |
HeapBlock * | smallFreeLists [32] |
HeapBlockFreeHead * | largeFreeTrees [32] |
Static Public Attributes | |
static constexpr auto | RTTI = RTTI_AbstractHeap |
Static Public Attributes inherited from RE::IMemoryHeap | |
static constexpr auto | RTTI = RTTI_IMemoryHeap |
Static Public Attributes inherited from RE::IMemoryStore | |
static constexpr auto | RTTI = RTTI_IMemoryStore |
Static Public Attributes inherited from RE::IMemoryStoreBase | |
static constexpr auto | RTTI = RTTI_IMemoryStoreBase |
|
override |
|
overridevirtual |
Implements RE::IMemoryStore.
|
virtual |
Reimplemented in RE::MemoryHeap.
|
virtual |
|
virtual |
Reimplemented in RE::MemoryHeap.
|
virtual |
Reimplemented in RE::MemoryHeap.
|
pure virtual |
Implemented in RE::MemoryHeap.
|
pure virtual |
Implemented in RE::MemoryHeap.
|
overridevirtual |
Implements RE::IMemoryHeap.
Reimplemented in RE::MemoryHeap.
|
overridevirtual |
Implements RE::IMemoryStoreBase.
|
overridevirtual |
Implements RE::IMemoryHeap.
|
overridevirtual |
Implements RE::IMemoryHeap.
|
overridevirtual |
Implements RE::IMemoryHeap.
|
overridevirtual |
Implements RE::IMemoryHeap.
|
overridevirtual |
Reimplemented from RE::IMemoryStore.
bool RE::AbstractHeap::allowDecommits |
HeapBlock* RE::AbstractHeap::blockHead |
std::size_t RE::AbstractHeap::blockMemAllocated |
HeapBlock* RE::AbstractHeap::blockTail |
BSCriticalSection RE::AbstractHeap::criticalSection |
std::size_t RE::AbstractHeap::currentSize |
std::size_t RE::AbstractHeap::initialSize |
HeapBlockFreeHead* RE::AbstractHeap::largeFreeTrees[32] |
std::size_t RE::AbstractHeap::memAllocated |
std::size_t RE::AbstractHeap::memAllocatedHigh |
char* RE::AbstractHeap::memHeap |
std::size_t RE::AbstractHeap::memHeapSize |
std::size_t RE::AbstractHeap::minFreeBlockSize |
const char* RE::AbstractHeap::name |
std::int32_t RE::AbstractHeap::numBlocks |
std::int32_t RE::AbstractHeap::numFreeBlocks |
std::uint32_t RE::AbstractHeap::pad08C |
std::uint16_t RE::AbstractHeap::pad0A0 |
std::uint32_t RE::AbstractHeap::pageSize |
std::uint32_t RE::AbstractHeap::pageSizeFlag |
|
inlinestaticconstexpr |
HeapBlock* RE::AbstractHeap::smallFreeLists[32] |
bool RE::AbstractHeap::supportsSwapping |
std::size_t RE::AbstractHeap::wastedMemory |