摘要
取消映射虚拟内存页面。
声明
#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
找不到请求的映射。