X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/38965e3e83ba1b03c9c9a0f14cce85c1d0cd8fd8..03944e7734220bf7e7aa7b7113bcbdf9c22808a5:/lunaix-os/kernel/mm/mmio.c diff --git a/lunaix-os/kernel/mm/mmio.c b/lunaix-os/kernel/mm/mmio.c new file mode 100644 index 0000000..f6d5368 --- /dev/null +++ b/lunaix-os/kernel/mm/mmio.c @@ -0,0 +1,18 @@ +#include +#include +#include + +void* +ioremap(uintptr_t paddr, uint32_t size) +{ + return vmm_vmap(paddr, size, PG_PREM_RW, PP_FGPERSIST); +} + +void* +iounmap(uintptr_t vaddr, uint32_t size) +{ + for (size_t i = 0; i < size; i += PG_SIZE) { + uintptr_t paddr = vmm_del_mapping(PD_REFERENCED, vaddr + i); + pmm_free_page(KERNEL_PID, paddr); + } +} \ No newline at end of file