diff --git a/arch/x86/mm/page.c b/arch/x86/mm/page.c index cc767a43..b2cfaad4 100644 --- a/arch/x86/mm/page.c +++ b/arch/x86/mm/page.c @@ -367,6 +367,9 @@ size_t map_region(size_t viraddr, size_t phyaddr, uint32_t npages, uint32_t flag if (flags & MAP_NO_ACCESS) pgt->entries[index] &= ~PG_PRESENT; + if (flags & MAP_WT) + pgt->entries[index] |= PG_PWT; + if (flags & MAP_USER_SPACE) atomic_int32_inc(&task->user_usage); diff --git a/include/metalsvm/stdlib.h b/include/metalsvm/stdlib.h index 15d0961e..0a568204 100644 --- a/include/metalsvm/stdlib.h +++ b/include/metalsvm/stdlib.h @@ -41,7 +41,7 @@ extern "C" { #define MAP_USER_SPACE (1 << 1) #define MAP_PAGE_TABLE (1 << 2) #define MAP_NO_CACHE (1 << 3) -//#define MAP_STACK (1 << 4) +#define MAP_WT (1 << 5) //#define MAP_HEAP (1 << 5) #define MAP_CODE (1 << 6) #define MAP_READONLY (1 << 7)