yeah
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user