This commit is contained in:
2026-09-16 04:37:37 +02:00
parent e71245c082
commit 3e9bdf72c9
74 changed files with 555 additions and 567 deletions
+7 -6
View File
@@ -1,8 +1,9 @@
#include <assert.h>
#include <zinnia/alloc.h>
#include <zinnia/errno.h>
#include <zinnia/mman.h>
#include <zinnia/utils.h>
#include <zinnia/vas.h>
#include <assert.h>
// Try to create a new, empty virtual address space.
errno_t vma_new(struct vas** out) {
@@ -51,7 +52,7 @@ errno_t vma_map_vmo(
struct vmo* vmo,
uintptr_t addr,
size_t len,
enum zn_vm_flags flags,
enum prot_flags flags,
uintptr_t vmo_offset
) {
const size_t page_size = arch_mem_page_size();
@@ -79,16 +80,16 @@ errno_t vma_map_vmo(
phys_t paddr = (phys_t)vm_page_addr(page_obj);
enum pte_flags pf = 0;
if (flags & ZN_VM_MAP_READ)
if (flags & PROT_READ)
pf |= PTE_READ;
if (flags & ZN_VM_MAP_WRITE)
if (flags & PROT_WRITE)
pf |= PTE_WRITE;
if (flags & ZN_VM_MAP_EXEC)
if (flags & PROT_EXEC)
pf |= PTE_EXEC;
if (vas->pmap.is_user)
pf |= PTE_USER;
status = pmap_map(&vas->pmap, p * page_size, paddr, pf, CACHE_NONE);
status = pmap_map(&vas->pmap, p * page_size, paddr, pf, CACHE_ANY);
if (status != 0)
return status;
}