zx_vmar_unmap


英文原文快照


名称

vmar_unmap —— 取消映射虚拟内存页面

概要

  1. #include <zircon/syscalls.h>
  2. zx_status_t zx_vmar_unmap(zx_handle_t handle, zx_vaddr_t addr, uint64_t len);

描述

vmar_unmap() 取消所有VMO的映射并销毁(如同调用vmar_destroy一样)在[*addr*, *addr* + *len*)范围内的所有子区域。 范围内的任何子区域必须完全在该范围内(即部分重叠会导致错误)。 如果内存映射仅部分在该范围内,则映射将被拆分,并且请求范围内的部分将被取消映射。

len的大小必须是页面对齐的。

权限

TODO(ZX-2399)

返回值

vmar_unmap() 调用成功则返回ZX_OK

错误码

ZX_ERR_BAD_HANDLEvmar_handle是无效句柄。

ZX_ERR_WRONG_TYPEvmar_handle不是VMAR类型的句柄。

ZX_ERR_INVALID_ARGS:下列情况之一,addr不是页面对齐;len是0或不是页面对齐;或者请求的范围部分地与子区域重叠。

ZX_ERR_BAD_STATEvmar_handle句柄指向的是已销毁对象。

ZX_ERR_NOT_FOUND:找不到请求的映射。

注释

另见

vmar_allocate, vmar_destroy, vmar_map, vmar_protect.