姓名
vm_object - 虚拟内存容器
摘要
虚拟内存对象 (VMO) 表示可以映射到多个地址空间的虚拟内存的连续区域。
说明
VMO 在内核和用户空间中用于表示分页内存和物理内存。它们是在进程之间以及内核和用户空间之间共享内存的标准方法。
VMO 是使用 zx_vmo_create() 创建的,您可以使用 zx_vmo_read() 和 zx_vmo_write() 对它们执行基本的 I/O。可以使用 zx_vmo_set_size() 设置 VMO 的大小。相反,zx_vmo_get_size() 会检索 VMO 的当前大小。
VMO 的大小将向上舍入为内核的下一个页面大小边界。
系统会通过 zx_vmo_read()、zx_vmo_write() 或者写入到使用 zx_vmar_map() 创建的 VMO 的映射,按需为 VMO 提交(分配)页面。您可以通过使用 ZX_VMO_OP_COMMIT 和 ZX_VMO_OP_DECOMMIT 操作调用 zx_vmo_op_range() 来手动提交和从 VMO 提交页面,但此操作应被视为低级别操作。zx_vmo_op_range() 还可用于对 VMO 所保全的页面执行缓存和锁定操作。
如果进程具有涉及缓存政策的特殊用例,可以使用 zx_vmo_set_cache_policy() 更改给定 VMO 的政策。此用例通常适用于设备驱动程序。
系统调用
zx_vmo_create()- 创建新的视频机zx_vmo_create_child()- 创建新的儿童视频 MOzx_vmo_create_physical()- 创建新的实体视频机zx_vmo_get_size()- 获取视频录像机的大小zx_vmo_op_range()- 对一系列视频广告资源执行操作zx_vmo_read()- 通过视频点播阅读zx_vmo_replace_as_executable()- 制作 vmo 的可执行版本zx_vmo_set_cache_policy()- 为 VMO 保留的网页设置缓存政策zx_vmo_set_size()- 调整视频画面的大小zx_vmo_write()- 写入视频机 (vmo)
zx_vmar_map()- 将 VMO 映射到进程zx_vmar_unmap()- 从进程中取消映射内存