CommonLibSSE (Parapets fork)
|
#include <ScrapHeap.h>
Classes | |
struct | Block |
struct | FreeBlock |
struct | FreeTreeNode |
Public Member Functions | |
~ScrapHeap () override | |
std::size_t | Size (void const *a_mem) const override |
void | GetMemoryStats (MemoryStats *) override |
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 |
void * | Allocate (std::size_t a_size, std::size_t a_alignment) |
void | Deallocate (void *a_mem) |
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 | |
FreeBlock * | smallBlocks [6] { nullptr } |
FreeTreeNode * | freeList { nullptr } |
Block * | lastBlock { nullptr } |
void * | baseAddress { nullptr } |
void * | endAddress { nullptr } |
void * | commitEnd { nullptr } |
std::size_t | reserveSize { 1 << 26 } |
std::size_t | minCommit { 1 << 17 } |
std::size_t | totalAllocated { 0 } |
std::uint32_t | keepPagesRequest { 0 } |
std::uint32_t | totalFreeBlocks { 0 } |
std::uint32_t | freeSmallBlocks { 0 } |
std::uint32_t | totalAllocatedBlocks { 0 } |
std::uint32_t | pmpBarrier { 0 } |
Static Public Attributes | |
static constexpr auto | RTTI = RTTI_ScrapHeap |
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 |
|
inlineoverride |
void * RE::ScrapHeap::Allocate | ( | std::size_t | a_size, |
std::size_t | a_alignment | ||
) |
|
inlineoverridevirtual |
Implements RE::IMemoryStore.
|
inlineoverridevirtual |
Implements RE::IMemoryStoreBase.
void RE::ScrapHeap::Deallocate | ( | void * | a_mem | ) |
|
inlineoverridevirtual |
Implements RE::IMemoryStore.
|
inlineoverridevirtual |
Implements RE::IMemoryStoreBase.
|
inlineoverridevirtual |
Implements RE::IMemoryStoreBase.
void* RE::ScrapHeap::baseAddress { nullptr } |
void* RE::ScrapHeap::commitEnd { nullptr } |
void* RE::ScrapHeap::endAddress { nullptr } |
FreeTreeNode* RE::ScrapHeap::freeList { nullptr } |
std::uint32_t RE::ScrapHeap::freeSmallBlocks { 0 } |
std::uint32_t RE::ScrapHeap::keepPagesRequest { 0 } |
Block* RE::ScrapHeap::lastBlock { nullptr } |
std::size_t RE::ScrapHeap::minCommit { 1 << 17 } |
std::uint32_t RE::ScrapHeap::pmpBarrier { 0 } |
std::size_t RE::ScrapHeap::reserveSize { 1 << 26 } |
|
inlinestaticconstexpr |
FreeBlock* RE::ScrapHeap::smallBlocks[6] { nullptr } |
std::size_t RE::ScrapHeap::totalAllocated { 0 } |
std::uint32_t RE::ScrapHeap::totalAllocatedBlocks { 0 } |
std::uint32_t RE::ScrapHeap::totalFreeBlocks { 0 } |