摘要
調整 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 結尾之間的 VMO 資料 (即下一個頁面邊界) 都會以零覆寫。
權限
handle 必須是 ZX_OBJ_TYPE_VMO
類型,且包含 ZX_RIGHT_WRITE
和 ZX_RIGHT_RESIZE
。
傳回值
zx_vmo_set_size()
會在成功時傳回 ZX_OK
。活動
失敗時,系統會傳回負錯誤值。
錯誤
ZX_ERR_BAD_HANDLE
帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼不是 VMO 控制代碼。
ZX_ERR_ACCESS_DENIED
帳號代碼沒有 ZX_RIGHT_WRITE
或 ZX_RIGHT_RESIZE
右側的值。
ZX_ERR_UNAVAILABLE
VMO 並非使用 ZX_VMO_RESIZABLE
建立
或 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()