|
| void | Initialize (kernel::GuestAddressSpace *memory, u8 *membase, HeapType heap_type, u32 heap_base, u32 heap_size, u32 page_size) |
| virtual | ~BaseHeap () |
| u32 | GetHeapBase () const |
|
u32 | GetHeapSize () const |
|
u32 | GetPageSize () const |
|
HeapType | GetHeapType () const |
| u32 | GetHostAddressOffset () const |
| template<typename T = u8*> |
| T | TranslateRelative (size_t relative_address) const |
| virtual void | Dispose () |
|
u32 | GetTotalPageCount () const |
|
u32 | GetUnreservedPageCount () const |
|
u32 | GetReservedPageCount () const |
|
u32 | GetCommittedPages () const |
| void | PlotProfile () const |
| virtual bool | Alloc (u32 size, u32 alignment, u32 allocation_type, u32 protect, bool top_down, u32 *out_address) |
| virtual bool | AllocFixed (u32 base_address, u32 size, u32 alignment, u32 allocation_type, u32 protect) |
| virtual bool | AllocRange (u32 low_address, u32 high_address, u32 size, u32 alignment, u32 allocation_type, u32 protect, bool top_down, u32 *out_address) |
| virtual bool | AllocSystemHeap (u32 size, u32 alignment, u32 allocation_type, u32 protect, bool top_down, u32 *out_address) |
| virtual bool | Decommit (u32 address, u32 size) |
| virtual bool | Release (u32 address, u32 *out_region_size=nullptr) |
| bool | ReleaseRange (u32 address, u32 size, u32 *out_address, u32 *out_size) |
| virtual bool | Protect (u32 address, u32 size, u32 protect, u32 *old_protect=nullptr) |
| bool | QueryRegionInfo (u32 base_address, HeapAllocation *out_info) |
| bool | QuerySize (u32 address, u32 *out_size) |
| bool | QueryProtect (u32 address, u32 *out_protect) |
| rex::memory::PageAccess | QueryRangeAccess (u32 low_address, u32 high_address) |
| rex::memory::PageAccess | GetHostPageAccess (u32 host_page_number) const |
| bool | ReapplyHostPageAccess (void *host_address, bool is_write) |
|
| rex::memory::PageAccess | GetHostPageGuestAccess (u32 host_page_number) const |
| bool | SyncHostPageAccess (u32 start_page_number, u32 end_page_number) |
| virtual std::unique_lock< rex::platform::RankedMutex > | AcquireHostPageReconcileLock () const |
| u32 | GetSystemRangeBase () const |
|
bool | AllocFixedLocked (u32 base_address, u32 size, u32 alignment, u32 allocation_type, u32 protect) |
|
bool | AllocRangeLocked (u32 low_address, u32 high_address, u32 size, u32 alignment, u32 allocation_type, u32 protect, bool top_down, u32 *out_address) |
|
bool | DecommitLocked (u32 address, u32 size) |
|
bool | ReleaseLocked (u32 address, u32 *out_region_size) |
|
bool | ReleaseRangeLocked (u32 address, u32 size, u32 *out_address, u32 *out_size) |
|
bool | ProtectLocked (u32 address, u32 size, u32 protect, u32 *old_protect) |
| bool | CheckProtectRangeLocked (u32 address, u32 size, u32 *out_start_page, u32 *out_end_page) |
| virtual bool | IsHostPageWriteWatched (u32 host_page_number) const |
| void | OnPageCommitted (u32 page_number) |
| void | OnPageDecommitted (u32 page_number) |
| void | Initialize (kernel::GuestAddressSpace *memory, u8 *membase, HeapType heap_type, u32 heap_base, u32 heap_size, u32 page_size, u32 host_address_offset=0) |
| kernel::GuestAddressSpace * | memory_ |
|
u8 * | membase_ |
|
HeapType | heap_type_ |
|
u32 | heap_base_ |
|
u32 | heap_size_ |
|
u32 | page_size_ |
| u32 | page_size_shift_ = 0 |
| u32 | host_address_offset_ |
|
u32 | unreserved_page_count_ = 0 |
| std::atomic< u32 > | committed_pages_ {0} |
| const char * | profile_pool_ = nullptr |
|
const char * | profile_plot_ = nullptr |
| std::recursive_mutex | heap_mutex_ |
|
std::vector< PageEntry > | page_table_ |