* Copyright 2016-2024, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include <boot/platform.h>
#include <kernel/kernel.h>
#include "efi_platform.h"
extern "C" ssize_t
platform_allocate_heap_region(size_t _size, void** _base)
{
size_t pages = HOWMANY(_size, B_PAGE_SIZE);
efi_physical_addr base;
if (kBootServices->AllocatePages(AllocateAnyPages, EfiLoaderData, pages, &base) != EFI_SUCCESS)
return B_NO_MEMORY;
*_base = (void*)base;
return pages * B_PAGE_SIZE;
}
extern "C" void
platform_free_heap_region(void* base, size_t size)
{
kBootServices->FreePages((efi_physical_addr)base, size / B_PAGE_SIZE);
}