From e0fbf5ca9599cb7599731fe48573e97d05fa38da Mon Sep 17 00:00:00 2001 From: Alejandro Sior Date: Tue, 26 Jul 2022 14:06:40 +0200 Subject: mem/vmap: add basic virtual memory management abstraction --- mem/vmap.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 mem/vmap.c (limited to 'mem/vmap.c') 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 -- cgit v1.2.3