diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2026-01-25 17:14:53 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2026-01-25 17:14:53 +0200 |
| commit | cd41ed1758f4842d7b78870385e16b579cc89c38 (patch) | |
| tree | 271e1b437ec5a1511f4ffa400da447122576b94b /src/vmem.c | |
| parent | e8a7fe3bd5c40168d531a6a4f00a7417a278d58c (diff) | |
| download | kmi-cd41ed1758f4842d7b78870385e16b579cc89c38.tar.gz kmi-cd41ed1758f4842d7b78870385e16b579cc89c38.zip | |
+ Add tests and fix virtual mapping, this is enough to start writing
proper userspace drivers
Diffstat (limited to 'src/vmem.c')
| -rw-r--r-- | src/vmem.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -12,6 +12,7 @@ #include <kmi/panic.h> #include <kmi/debug.h> #include <kmi/bits.h> +#include <kmi/dmem.h> #include <kmi/vmem.h> #include <arch/vmem.h> @@ -197,6 +198,14 @@ static void __free_mapping(struct tcb *t, struct mem_region *m) if (is_set(m->flags, MR_NONBACKED)) return; + if (is_set(m->flags, MR_DEV)) { + stat_t ret = free_known_devmem(t, m); + MAYBE_UNUSED(ret); + + assert(ret == OK); + return; + } + pm_t start = __addr(m->start); pm_t end = __addr(m->end); size_t size = end - start; |
