ReXGlue SDK
Loading...
Searching...
No Matches
heap.h File Reference
#include <atomic>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <mutex>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include <rex/platform.h>
#include <rex/memory/mapped_ptr.h>
#include <rex/memory/virtual_memory.h>
#include <rex/ppc/recompiled_code.h>
#include <rex/platform/lock_order.h>
#include <rex/types.h>

Go to the source code of this file.

Classes

class  rex::kernel::ISystemHeap
struct  rex::kernel::HeapAllocation
union  rex::kernel::PageEntry
class  rex::kernel::BaseHeap
class  rex::kernel::VirtualHeap
class  rex::kernel::PhysicalHeap
struct  rex::kernel::PhysicalHeap::SystemPageFlagsBlock
class  rex::kernel::GuestAddressSpace

Namespaces

namespace  rex
namespace  rex::kernel

Enumerations

enum  rex::kernel::SystemHeapFlag : u8 { kSystemHeapVirtual = 1 << 0 , kSystemHeapPhysical = 1 << 1 , kSystemHeapDefault = kSystemHeapVirtual }
enum class  rex::kernel::HeapType : u8 { kGuestVirtual , rex::kernel::kGuestXEX , kGuestPhysical }
enum  rex::kernel::MemoryAllocationFlag : u8 { kMemoryAllocationReserve = 1 << 0 , kMemoryAllocationCommit = 1 << 1 , rex::kernel::kMemoryAllocationTitle = 1 << 2 }
enum  MemoryProtectFlag : u8 {
  kMemoryProtectRead = 1 << 0 , kMemoryProtectWrite = 1 << 1 , kMemoryProtectNoCache = 1 << 2 , kMemoryProtectWriteCombine = 1 << 3 ,
  kMemoryProtectNoAccess = 0
}
enum class  rex::kernel::AccessViolationResult : u8 { rex::kernel::kResumed , rex::kernel::kMMIOMiss , rex::kernel::kUnhandled }

Variables

constexpr u32 rex::kernel::kPageSize4KiB = 4 * 1024
constexpr u32 rex::kernel::kPageSize64KiB = 64 * 1024
constexpr u32 rex::kernel::kPageSize16MiB = 16 * 1024 * 1024

Detailed Description

Xenia : Xbox 360 Emulator Research Project *

Copyright 2020 Ben Vanik. All rights reserved. * Released under the BSD license - see LICENSE in the root for more details. *

Modified
Tom Clay, 2026 - Adapted for ReXGlue runtime