Kernel: Remove kmalloc API for identity mapped results
This is no longer used. This finally allows me to rewrite kmalloc :^)
This commit is contained in:
@@ -1,15 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <BAN/Optional.h>
|
|
||||||
#include <kernel/Memory/Types.h>
|
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
void kmalloc_initialize();
|
void kmalloc_initialize();
|
||||||
void kmalloc_dump_info();
|
void kmalloc_dump_info();
|
||||||
|
|
||||||
void* kmalloc(size_t size);
|
void* kmalloc(size_t size);
|
||||||
void* kmalloc(size_t size, size_t align, bool force_identity_map = false);
|
void* kmalloc(size_t size, size_t align);
|
||||||
void kfree(void*);
|
void kfree(void*);
|
||||||
|
|
||||||
BAN::Optional<Kernel::paddr_t> kmalloc_paddr_of(Kernel::vaddr_t);
|
|
||||||
|
|||||||
@@ -303,27 +303,17 @@ static void* kmalloc_impl(size_t size, size_t align)
|
|||||||
|
|
||||||
void* kmalloc(size_t size)
|
void* kmalloc(size_t size)
|
||||||
{
|
{
|
||||||
return kmalloc(size, s_kmalloc_min_align, false);
|
return kmalloc(size, s_kmalloc_min_align);
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr bool is_power_of_two(size_t value)
|
void* kmalloc(size_t size, size_t align)
|
||||||
{
|
{
|
||||||
if (value == 0)
|
|
||||||
return false;
|
|
||||||
return (value & (value - 1)) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void* kmalloc(size_t size, size_t align, bool force_identity_map)
|
|
||||||
{
|
|
||||||
// currently kmalloc is always identity mapped
|
|
||||||
(void)force_identity_map;
|
|
||||||
|
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
size = 1;
|
size = 1;
|
||||||
|
|
||||||
const kmalloc_info& info = s_kmalloc_info;
|
const kmalloc_info& info = s_kmalloc_info;
|
||||||
|
|
||||||
ASSERT(is_power_of_two(align));
|
ASSERT(BAN::Math::is_power_of_two(align));
|
||||||
if (align < s_kmalloc_min_align)
|
if (align < s_kmalloc_min_align)
|
||||||
align = s_kmalloc_min_align;
|
align = s_kmalloc_min_align;
|
||||||
ASSERT(align <= PAGE_SIZE);
|
ASSERT(align <= PAGE_SIZE);
|
||||||
@@ -418,21 +408,3 @@ void kfree(void* address)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_kmalloc_vaddr(Kernel::vaddr_t vaddr)
|
|
||||||
{
|
|
||||||
using namespace Kernel;
|
|
||||||
if (vaddr < reinterpret_cast<vaddr_t>(s_kmalloc_storage))
|
|
||||||
return false;
|
|
||||||
if (vaddr >= reinterpret_cast<vaddr_t>(s_kmalloc_storage) + sizeof(s_kmalloc_storage))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
BAN::Optional<Kernel::paddr_t> kmalloc_paddr_of(Kernel::vaddr_t vaddr)
|
|
||||||
{
|
|
||||||
using namespace Kernel;
|
|
||||||
if (!is_kmalloc_vaddr(vaddr))
|
|
||||||
return {};
|
|
||||||
return vaddr - KERNEL_OFFSET + g_boot_info.kernel_paddr;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user