vmar_unmap —— 取消映射虚拟内存页面
#include <zircon/syscalls.h>
zx_status_t zx_vmar_unmap(zx_handle_t handle, zx_vaddr_t addr, uint64_t len);
vmar_unmap() 取消所有VMO的映射并销毁(如同调用vmar_destroy一样)在[*addr*, *addr* + *len*)
范围内的所有子区域。
范围内的任何子区域必须完全在该范围内(即部分重叠会导致错误)。
如果内存映射仅部分在该范围内,则映射将被拆分,并且请求范围内的部分将被取消映射。
len的大小必须是页面对齐的。
TODO(ZX-2399)
vmar_unmap() 调用成功则返回ZX_OK。
ZX_ERR_BAD_HANDLE:vmar_handle是无效句柄。
ZX_ERR_WRONG_TYPE:vmar_handle不是VMAR类型的句柄。
ZX_ERR_INVALID_ARGS:下列情况之一,addr不是页面对齐;len是0或不是页面对齐;或者请求的范围部分地与子区域重叠。
ZX_ERR_BAD_STATE:vmar_handle句柄指向的是已销毁对象。
ZX_ERR_NOT_FOUND:找不到请求的映射。