摘要
调整 VMO 对象的大小。
声明
#include <zircon/syscalls.h>
zx_status_t zx_vmo_set_size(zx_handle_t handle, uint64_t size);
说明
zx_vmo_set_size()
用于设置虚拟内存的新大小
对象 (VMO)。
大小将四舍五入到下一页面大小边界。
对 zx_vmo_get_size()
的后续调用将返回向上舍入后的大小。
VMO 的内容大小将设置为给定(未舍入)的大小。
结合使用 zx_object_get_property()
和 ZX_PROP_VMO_CONTENT_SIZE
来读取
VMO 的内容大小将 zx_object_set_property()
与以下账号搭配使用
ZX_PROP_VMO_CONTENT_SIZE
,用于设置不使用
调整 VMO 的大小
VMO 中介于给定大小和 VMO 结束之间的数据(即下一页边界) 将被替换为零。
权限
handle 的类型必须为 ZX_OBJ_TYPE_VMO
,并且具有 ZX_RIGHT_WRITE
和 ZX_RIGHT_RESIZE
。
返回值
如果成功,zx_vmo_set_size()
会返回 ZX_OK
。在活动中
则会返回负的错误值。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的句柄。
ZX_ERR_WRONG_TYPE
handle 不是 VMO 句柄。
ZX_ERR_ACCESS_DENIED
句柄没有 ZX_RIGHT_WRITE
或 ZX_RIGHT_RESIZE
权限。
ZX_ERR_UNAVAILABLE
:未使用 ZX_VMO_RESIZABLE
创建 VMO
或 ZX_VMO_CHILD_RESIZABLE
。
ZX_ERR_OUT_OF_RANGE
请求的内容过大。
ZX_ERR_NO_MEMORY
因缺少系统内存而失败。
ZX_ERR_BAD_STATE
所请求的尺寸会舍弃已固定的网页。
另请参阅
zx_vmo_create()
zx_vmo_create_child()
zx_vmo_get_size()
zx_vmo_op_range()
zx_vmo_read()
zx_vmo_write()