From ab8bcbec3e161945eb6694cf8cea9ffc4d543880 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 27 Apr 2026 19:36:32 +0300 Subject: [PATCH] Kernel: Allow mapping dma regions as not uncached --- kernel/include/kernel/Memory/DMARegion.h | 2 +- kernel/kernel/Memory/DMARegion.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/include/kernel/Memory/DMARegion.h b/kernel/include/kernel/Memory/DMARegion.h index 7fa5cde0..9677cf64 100644 --- a/kernel/include/kernel/Memory/DMARegion.h +++ b/kernel/include/kernel/Memory/DMARegion.h @@ -8,7 +8,7 @@ namespace Kernel class DMARegion { public: - static BAN::ErrorOr> create(size_t size); + static BAN::ErrorOr> create(size_t size, PageTable::MemoryType type = PageTable::MemoryType::Uncached); ~DMARegion(); size_t size() const { return m_size; } diff --git a/kernel/kernel/Memory/DMARegion.cpp b/kernel/kernel/Memory/DMARegion.cpp index 6ab9e592..ffaa6603 100644 --- a/kernel/kernel/Memory/DMARegion.cpp +++ b/kernel/kernel/Memory/DMARegion.cpp @@ -5,7 +5,7 @@ namespace Kernel { - BAN::ErrorOr> DMARegion::create(size_t size) + BAN::ErrorOr> DMARegion::create(size_t size, PageTable::MemoryType type) { size_t needed_pages = BAN::Math::div_round_up(size, PAGE_SIZE); @@ -26,7 +26,7 @@ namespace Kernel vaddr_guard.disable(); paddr_guard.disable(); - PageTable::kernel().map_range_at(paddr, vaddr, size, PageTable::Flags::ReadWrite | PageTable::Flags::Present, PageTable::MemoryType::Uncached); + PageTable::kernel().map_range_at(paddr, vaddr, size, PageTable::Flags::ReadWrite | PageTable::Flags::Present, type); return BAN::UniqPtr::adopt(region_ptr); }