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);