1 #pragma once 2 #include "mm.h" 3 4 void mmio_init(); 5 6 /** 7 * @brief 创建一块mmio区域,并将vma绑定到initial_mm 8 * 9 * @param size mmio区域的大小(字节) 10 * @param vm_flags 要把vma设置成的标志 11 * @param res_vaddr 返回值-分配得到的虚拟地址 12 * @param res_length 返回值-分配的虚拟地址空间长度 13 * @return int 错误码 14 */ 15 int mmio_create(uint32_t size, vm_flags_t vm_flags, uint64_t * res_vaddr, uint64_t *res_size); 16 17 /** 18 * @brief 取消mmio的映射并将地址空间归还到buddy中 19 * 20 * @param vaddr 起始的虚拟地址 21 * @param size 要归还的地址空间的长度 22 * @return int 错误码 23 */ 24 int mmio_release(uint64_t vaddr, uint64_t size);