|
|
|
@ -160,7 +160,7 @@ private: |
|
|
|
KMemoryRegionAllocator& memory_region_allocator; |
|
|
|
|
|
|
|
public: |
|
|
|
KMemoryRegionTree(KMemoryRegionAllocator& memory_region_allocator_); |
|
|
|
explicit KMemoryRegionTree(KMemoryRegionAllocator& memory_region_allocator_); |
|
|
|
|
|
|
|
public: |
|
|
|
KMemoryRegion* FindModifiable(u64 address) { |
|
|
|
@ -328,14 +328,8 @@ class KMemoryRegionAllocator final : NonCopyable { |
|
|
|
public: |
|
|
|
static constexpr size_t MaxMemoryRegions = 200; |
|
|
|
|
|
|
|
private: |
|
|
|
std::array<KMemoryRegion, MaxMemoryRegions> region_heap{}; |
|
|
|
size_t num_regions{}; |
|
|
|
|
|
|
|
public: |
|
|
|
constexpr KMemoryRegionAllocator() = default; |
|
|
|
|
|
|
|
public: |
|
|
|
template <typename... Args> |
|
|
|
KMemoryRegion* Allocate(Args&&... args) { |
|
|
|
// Ensure we stay within the bounds of our heap. |
|
|
|
@ -347,6 +341,10 @@ public: |
|
|
|
|
|
|
|
return region; |
|
|
|
} |
|
|
|
|
|
|
|
private: |
|
|
|
std::array<KMemoryRegion, MaxMemoryRegions> region_heap{}; |
|
|
|
size_t num_regions{}; |
|
|
|
}; |
|
|
|
|
|
|
|
} // namespace Kernel |