mmio.h 756 B

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