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 找不到要求的對應關係。

附註

另請參閱