Kernel: Allow mapping dma regions as not uncached

This commit is contained in:
2026-04-27 19:36:32 +03:00
parent 0e00b72df6
commit ab8bcbec3e
2 changed files with 3 additions and 3 deletions

View File

@@ -8,7 +8,7 @@ namespace Kernel
class DMARegion
{
public:
static BAN::ErrorOr<BAN::UniqPtr<DMARegion>> create(size_t size);
static BAN::ErrorOr<BAN::UniqPtr<DMARegion>> create(size_t size, PageTable::MemoryType type = PageTable::MemoryType::Uncached);
~DMARegion();
size_t size() const { return m_size; }

View File

@@ -5,7 +5,7 @@
namespace Kernel
{
BAN::ErrorOr<BAN::UniqPtr<DMARegion>> DMARegion::create(size_t size)
BAN::ErrorOr<BAN::UniqPtr<DMARegion>> DMARegion::create(size_t size, PageTable::MemoryType type)
{
size_t needed_pages = BAN::Math::div_round_up<size_t>(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<DMARegion>::adopt(region_ptr);
}