zx_vmar_unmap

摘要

取消映射虚拟内存页面。

声明

#include <zircon/syscalls.h>

zx_status_t zx_vmar_unmap(zx_handle_t handle, zx_vaddr_t addr, size_t len);

说明

zx_vmar_unmap() 会取消映射所有 VMO 映射并销毁(就像 zx_vmar_destroy() 一样) 名称)内的所有子区域(包括 addr 和 ending 之前仅在addr + len有售。范围内的任何子区域都必须 完全在范围内(即,部分重叠是错误的)。如果映射是 映射仅一部分包含在范围内,映射会被拆分,而所请求的部分是 未映射。

len 必须与页面对齐。

权限

TODO(https://fxbug.dev/42107318)

返回值

如果成功,zx_vmar_unmap() 会返回 ZX_OK

错误

ZX_ERR_BAD_HANDLE handle 不是有效的句柄。

ZX_ERR_WRONG_TYPE handle 不是 VMAR 句柄。

ZX_ERR_INVALID_ARGS addr 未页面对齐,len 为 0 或未页面对齐, 或所请求的范围与子区域部分重叠,或所请求的范围与子区域重叠 子区域和 handle 没有 ZX_RIGHT_OP_CHILDREN

ZX_ERR_BAD_STATE handle 是指已销毁的句柄。

ZX_ERR_NOT_FOUND 找不到请求的映射。

备注

另请参阅