Implement PCD (page cache disable) paging bit
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user