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