mirror of
https://github.com/Swordpdf/ProsperoEden.git
synced 2026-10-19 04:09:47 -05:00
23 lines
863 B
C++
23 lines
863 B
C++
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
#include "common/sparse_large_vector.h"
|
|
|
|
namespace Common {
|
|
void* ReserveMemoryRange(std::size_t size) noexcept;
|
|
bool CommitMemoryRange(void* address, std::size_t size) noexcept;
|
|
} // namespace Common
|
|
|
|
// Reuse the qualified, owned direct-memory backend for the C mspace heap.
|
|
extern "C" void* eden_heap_pages(std::size_t size) {
|
|
return Common::AllocateMemoryPages(size);
|
|
}
|
|
extern "C" void eden_heap_pages_free(void* base, std::size_t size) {
|
|
Common::FreeMemoryPages(base, size);
|
|
}
|
|
// The heap that grows (headless/heap_arenas.inc): address space first, memory piece by piece.
|
|
extern "C" void* eden_heap_reserve(std::size_t size) {
|
|
return Common::ReserveMemoryRange(size);
|
|
}
|
|
extern "C" int eden_heap_commit(void* address, std::size_t size) {
|
|
return Common::CommitMemoryRange(address, size) ? 0 : -1;
|
|
}
|