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); }