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 且仅在 addr + len 之前结束)的所有子区域。范围内的任何子区域都必须完全在此范围内(即,部分重叠就是错误)。如果某个映射仅在该范围内的一部分,则映射会被拆分,并且所请求的部分不会被映射。

len 必须页面对齐。

权限

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

返回值

zx_vmar_unmap() 会在成功时返回 ZX_OK

错误

ZX_ERR_BAD_HANDLE 句柄不是有效句柄。

ZX_ERR_WRONG_TYPE 句柄不是 VMAR 句柄。

ZX_ERR_INVALID_ARGS addr 未与页面对齐,len 为 0 或未与页面对齐,或者请求的范围与子区域部分重叠,或者请求的范围与子区域重叠,并且标识名不包含 ZX_RIGHT_OP_CHILDREN

ZX_ERR_BAD_STATE 句柄是指销毁的句柄。

ZX_ERR_NOT_FOUND找不到请求的映射。

备注

另请参阅