summaryrefslogtreecommitdiff
path: root/mem/vmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'mem/vmap.c')
-rw-r--r--mem/vmap.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/mem/vmap.c b/mem/vmap.c
new file mode 100644
index 0000000..618b19e
--- /dev/null
+++ b/mem/vmap.c
@@ -0,0 +1,26 @@
+#include "vmap.h"
+#include "errors.h"
+
+usize mem_vmap_translate(MemVmap *inner, usize virt) {
+ if (inner->translate)
+ return inner->translate(inner, virt);
+
+ return 0;
+}
+
+int mem_vmap_map(MemVmap *inner, usize phys, usize virt, usize len, int flags) {
+ if (inner->map)
+ return inner->map(inner, phys, virt, len, flags);
+
+ return MEM_VMAP_UNSUPPORTED;
+}
+
+void mem_vmap_unmap(MemVmap *inner, usize virt, usize len) {
+ if (inner->unmap)
+ inner->unmap(inner, virt, len);
+}
+
+void mem_vmap_switch_to(MemVmap *inner) {
+ if (inner->switch_to)
+ inner->switch_to(inner);
+} \ No newline at end of file