mmu: rename ARCH_MMU_FLAG_* to ARCH_MMU_FLAGS_*

This commit is contained in:
Matheus
2023-04-21 00:25:31 -03:00
parent fdf8724c1c
commit 46e5e6c561
4 changed files with 18 additions and 18 deletions
+5 -5
View File
@@ -12,7 +12,7 @@
#define PDPTMASK (uint64_t)0b111111111000000000000000000000000000000
#define PML4MASK (uint64_t)0b111111111000000000000000000000000000000000000000
#define INTERMEDIATE_FLAGS ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_USER
#define INTERMEDIATE_FLAGS ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_USER
// returns hhdm address of next entry
@@ -176,9 +176,9 @@ static void *kerneladdr[6] = {
};
static mmuflags_t kernelflags[3] = {
ARCH_MMU_FLAG_READ,
ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC,
ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_NOEXEC
ARCH_MMU_FLAGS_READ,
ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC,
ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_NOEXEC
};
extern volatile struct limine_memmap_request pmm_liminemap;
@@ -225,7 +225,7 @@ void arch_mmu_init() {
for (size_t i = 0; i < pmm_liminemap.response->entry_count; ++i) {
struct limine_memmap_entry *e = pmm_liminemap.response->entries[i];
for (uint64_t i = 0; i < e->length; i += PAGE_SIZE) {
uint64_t entry = ((e->base + i) & ADDRMASK) | ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC;
uint64_t entry = ((e->base + i) & ADDRMASK) | ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC;
__assert(add_page(FROM_HHDM(template), MAKE_HHDM((void *)(e->base + i)), entry, 0));
}
}
+4 -4
View File
@@ -11,10 +11,10 @@
#define USERSPACE_END (void *)0x00007fffffffffff
#define PAGE_SIZE 4096
#define ARCH_MMU_FLAG_READ (uint64_t)1
#define ARCH_MMU_FLAG_WRITE (uint64_t)2
#define ARCH_MMU_FLAG_USER (uint64_t)4
#define ARCH_MMU_FLAG_NOEXEC ((uint64_t)1 << 63)
#define ARCH_MMU_FLAGS_READ (uint64_t)1
#define ARCH_MMU_FLAGS_WRITE (uint64_t)2
#define ARCH_MMU_FLAGS_USER (uint64_t)4
#define ARCH_MMU_FLAGS_NOEXEC ((uint64_t)1 << 63)
typedef uint64_t mmuflags_t;
typedef uint64_t * pagetableptr_t; // physical address
+2 -2
View File
@@ -50,7 +50,7 @@ static void initindirect(scache_t *cache, slab_t *slab, void **base, void *objba
}
static bool growcache(scache_t *cache) {
void *_slab = vmm_map(NULL, PAGE_SIZE, VMM_FLAGS_ALLOCATE, ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC, NULL);
void *_slab = vmm_map(NULL, PAGE_SIZE, VMM_FLAGS_ALLOCATE, ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC, NULL);
if (_slab == NULL)
return false;
slab_t *slab = GET_SLAB(_slab);
@@ -58,7 +58,7 @@ static bool growcache(scache_t *cache) {
if (cache->size < SLAB_INDIRECT_CUTOFF) {
initdirect(cache, slab, _slab);
} else {
void *base = vmm_map(NULL, cache->slabobjcount * cache->truesize, VMM_FLAGS_ALLOCATE, ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC, NULL);
void *base = vmm_map(NULL, cache->slabobjcount * cache->truesize, VMM_FLAGS_ALLOCATE, ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC, NULL);
if (base == NULL) {
vmm_unmap(_slab, PAGE_SIZE, 0);
return false;
+7 -7
View File
@@ -245,13 +245,13 @@ bool vmm_pagefault(void *addr, bool user, int actions) {
int invalidactions = 0;
if ((range->mmuflags & ARCH_MMU_FLAG_READ) == 0)
if ((range->mmuflags & ARCH_MMU_FLAGS_READ) == 0)
invalidactions |= VMM_ACTION_READ;
if ((range->mmuflags & ARCH_MMU_FLAG_WRITE) == 0)
if ((range->mmuflags & ARCH_MMU_FLAGS_WRITE) == 0)
invalidactions |= VMM_ACTION_WRITE;
if ((range->mmuflags & ARCH_MMU_FLAG_NOEXEC))
if ((range->mmuflags & ARCH_MMU_FLAGS_NOEXEC))
invalidactions |= VMM_ACTION_EXEC;
if (invalidactions & actions)
@@ -411,12 +411,12 @@ void vmm_init() {
for (uint64_t i = 0; i < pmm_liminemap.response->entry_count; ++i) {
struct limine_memmap_entry *e = pmm_liminemap.response->entries[i];
__assert(vmm_map(MAKE_HHDM(e->base), e->length, 0, ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC, NULL));
__assert(vmm_map(MAKE_HHDM(e->base), e->length, 0, ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC, NULL));
}
__assert(vmm_map(&_text_start, (uintptr_t)&_text_end - (uintptr_t)&_text_start, 0, ARCH_MMU_FLAG_READ, NULL));
__assert(vmm_map(&_rodata_start, (uintptr_t)&_rodata_end - (uintptr_t)&_rodata_start, 0, ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_NOEXEC, NULL));
__assert(vmm_map(&_data_start, (uintptr_t)&_data_end - (uintptr_t)&_data_start, 0, ARCH_MMU_FLAG_READ | ARCH_MMU_FLAG_WRITE | ARCH_MMU_FLAG_NOEXEC, NULL));
__assert(vmm_map(&_text_start, (uintptr_t)&_text_end - (uintptr_t)&_text_start, 0, ARCH_MMU_FLAGS_READ, NULL));
__assert(vmm_map(&_rodata_start, (uintptr_t)&_rodata_end - (uintptr_t)&_rodata_start, 0, ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_NOEXEC, NULL));
__assert(vmm_map(&_data_start, (uintptr_t)&_data_end - (uintptr_t)&_data_start, 0, ARCH_MMU_FLAGS_READ | ARCH_MMU_FLAGS_WRITE | ARCH_MMU_FLAGS_NOEXEC, NULL));
printspace(&kernelspace);
}