摘要
調整 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要求的大小會捨棄固定頁面。