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

附註

另請參閱