From f4e2e62d04c54e58140b4a0ca23efa6a40bfc2bf Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sun, 3 May 2026 01:20:10 +0300 Subject: [PATCH] Kernel: Remove kmalloc API for identity mapped results This is no longer used. This finally allows me to rewrite kmalloc :^) --- kernel/include/kernel/Memory/kmalloc.h | 7 +----- kernel/kernel/Memory/kmalloc.cpp | 34 +++----------------------- 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/kernel/include/kernel/Memory/kmalloc.h b/kernel/include/kernel/Memory/kmalloc.h index 2f330a2d..16cf3ac2 100644 --- a/kernel/include/kernel/Memory/kmalloc.h +++ b/kernel/include/kernel/Memory/kmalloc.h @@ -1,15 +1,10 @@ #pragma once -#include -#include - #include void kmalloc_initialize(); void kmalloc_dump_info(); 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*); - -BAN::Optional kmalloc_paddr_of(Kernel::vaddr_t); diff --git a/kernel/kernel/Memory/kmalloc.cpp b/kernel/kernel/Memory/kmalloc.cpp index aadb4048..fecf7055 100644 --- a/kernel/kernel/Memory/kmalloc.cpp +++ b/kernel/kernel/Memory/kmalloc.cpp @@ -303,27 +303,17 @@ static void* kmalloc_impl(size_t size, size_t align) 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) size = 1; 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) align = s_kmalloc_min_align; 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(s_kmalloc_storage)) - return false; - if (vaddr >= reinterpret_cast(s_kmalloc_storage) + sizeof(s_kmalloc_storage)) - return false; - return true; -} - -BAN::Optional 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; -}