summaryrefslogtreecommitdiff
path: root/sys/inc/mu/mmu.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/inc/mu/mmu.h')
-rw-r--r--sys/inc/mu/mmu.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/inc/mu/mmu.h b/sys/inc/mu/mmu.h
index ce52376..da2a286 100644
--- a/sys/inc/mu/mmu.h
+++ b/sys/inc/mu/mmu.h
@@ -30,10 +30,31 @@
#ifndef _MU_PMAP_H_
#define _MU_PMAP_H_ 1
+#include <sys/mman.h>
#include <sys/types.h>
#include <sys/cdefs.h>
#include <md/vas.h> /* shared */
+typedef enum {
+ PAGESIZE_4K,
+} pagesize_t;
+
+/*
+ * Create a virtual to physical mapping of a single
+ * page of memory with a specific page size and specific
+ * protection flags.
+ */
+__strong int mu_pmap_map(
+ struct mmu_vas *vas, uintptr_t pa, uintptr_t va,
+ uint16_t prot, pagesize_t ps
+);
+
+/*
+ * Copy the current VAS leaving the user-side
+ * zeroed
+ */
+__strong int mu_pmap_forkvas(struct mmu_vas *result);
+
/*
* Read the currently in-use virtual address space
* structure