diff options
| author | Alejandro Sior <aho@sior.be> | 2022-07-26 14:06:40 +0200 |
|---|---|---|
| committer | Alejandro Sior <aho@sior.be> | 2022-07-26 14:06:40 +0200 |
| commit | e0fbf5ca9599cb7599731fe48573e97d05fa38da (patch) | |
| tree | 2c3b3925c49fd2da68086c6cb4b06a891e823bd5 /mem/vmap.c | |
| parent | c4e9a8ba15391ae5f1c820744ff1b03544d63467 (diff) | |
mem/vmap: add basic virtual memory management abstraction
Diffstat (limited to 'mem/vmap.c')
| -rw-r--r-- | mem/vmap.c | 26 |
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 |
