test
This commit is contained in:
+22
@@ -0,0 +1,22 @@
|
||||
#include <bits/mem.h>
|
||||
#include <zinnia/mmio.h>
|
||||
#include <zinnia/pmap.h>
|
||||
#include <zinnia/vas.h>
|
||||
#include <zinnia/virt.h>
|
||||
|
||||
void* mmio_new(phys_t addr, size_t length) {
|
||||
void* ptr = vm_alloc(length);
|
||||
for (size_t i = 0; i < length; i += arch_mem_page_size()) {
|
||||
|
||||
if (pmap_map(&kernel_vas.pmap, (uintptr_t)ptr + i, addr + i, PTE_READ | PTE_WRITE, CACHE_MMIO)) {
|
||||
vm_free(ptr, length);
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void mmio_free(void* ptr, size_t length) {
|
||||
// TODO
|
||||
}
|
||||
Reference in New Issue
Block a user