NAME
vm_object - 虛擬記憶體容器
概要
虛擬記憶體物件 (VMO) 代表虛擬記憶體的連續區域,可以對應至多個位址空間。
說明
在核心和使用者空間中使用 VMO,來代表分頁和實體記憶體。這些是在程序之間以及核心和使用者空間之間共用記憶體的標準方法。
使用 zx_vmo_create() 建立 VMO,並透過 zx_vmo_read() 和 zx_vmo_write() 對其執行基本 I/O。您可以使用 zx_vmo_set_size() 設定 VMO 的大小。相反地,zx_vmo_get_size() 會擷取 VMO 目前的大小。
VMO 的大小會四捨五入至下一個頁面大小邊界。
頁面是透過 zx_vmo_read()、zx_vmo_write(),或寫入使用 zx_vmar_map() 建立的 VMO 對應關係來建立 (分配) 給 VMO 所需的頁面。您可以透過執行 ZX_VMO_OP_COMMIT 和 ZX_VMO_OP_DECOMMIT 作業呼叫 zx_vmo_op_range(),以手動修訂和停用頁面,但這應視為低階作業。zx_vmo_op_range() 也可用於針對 VMO 訴訟保留的網頁快取和鎖定作業。
如果程序有特殊用途,涉及快取政策,可以使用 zx_vmo_set_cache_policy() 變更特定 VMO 的政策。此用途通常適用於裝置驅動程式。
音效
- zx_vmo_create()- 建立新的 vmo
- zx_vmo_create_child()- 建立新的子項 vmo
- zx_vmo_create_physical()- 建立新的實體 Vmo
- zx_vmo_get_size()- 取得 Vmo 的大小
- zx_vmo_op_range()- 對 vmo 範圍範圍執行作業
- zx_vmo_read()- 讀取 vmo 內容
- zx_vmo_replace_as_executable()- 製作 vmo 的可執行版本
- zx_vmo_set_cache_policy()- 為 vmo 持有的網頁設定快取政策
- zx_vmo_set_size()- 調整汽車的大小
- zx_vmo_write()- 寫入 vmo
- zx_vmar_map()- 將 VMO 對應至程序
- zx_vmar_unmap()- 取消對應程序中的記憶體