Implement PCD (page cache disable) paging bit
All checks were successful
Build ISO image / build-and-deploy (push) Successful in 3m30s
Build documentation / build-and-deploy (push) Successful in 2m35s

This commit is contained in:
2026-03-23 22:56:02 +01:00
parent b35fc5545c
commit db26b126de
3 changed files with 4 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
#define MAP_PRESENT (1 << 0)
#define MAP_RW (1 << 1)
#define MAP_USER (1 << 2)
#define MAP_NOCACHE (1 << 3)
#define MAP_FLAGS (MAP_PRESENT | MAP_USER)
#endif // _MAP_H

View File

@@ -14,6 +14,7 @@
#define AMD64_PG_PRESENT (1 << 0)
#define AMD64_PG_RW (1 << 1)
#define AMD64_PG_USER (1 << 2)
#define AMD64_PG_PCD (1 << 4)
#define AMD64_PG_HUGE (1 << 7)
/* Auxilary struct for page directory walking */
@@ -97,6 +98,7 @@ static uint64_t mm_resolve_flags (uint32_t generic) {
flags |= ((generic & MM_PG_PRESENT) ? AMD64_PG_PRESENT : 0);
flags |= ((generic & MM_PG_RW) ? AMD64_PG_RW : 0);
flags |= ((generic & MM_PG_USER) ? AMD64_PG_USER : 0);
flags |= ((generic & MM_PG_NOCACHE ? AMD64_PG_PCD : 0));
return flags;
}

View File

@@ -11,6 +11,7 @@
#define MM_PG_PRESENT (1 << 0)
#define MM_PG_RW (1 << 1)
#define MM_PG_USER (1 << 2)
#define MM_PG_NOCACHE (1 << 3)
uintptr_t mm_alloc_user_pd_phys (void);