zx_vmo_create_physical

摘要

建立參照特定連續範圍實體記憶體範圍的 VM 物件。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_vmo_create_physical(zx_handle_t resource,
                                   zx_paddr_t paddr,
                                   size_t size,
                                   zx_handle_t* out);

說明

zx_vmo_create_physical() 會建立新的虛擬記憶體 物件 (VMO),也就是 實體記憶體的 size 位元組 (從實際位址「填充」開始)。

VMO 的內容大小將初始化為指定 (未四捨五入) 的大小。 將 zx_object_get_property()ZX_PROP_VMO_CONTENT_SIZE 搭配使用,即可閱讀 VMO 的內容大小使用 zx_object_set_property() 搭配 ZX_PROP_VMO_CONTENT_SIZE 用來設定 VMO 的內容大小,但沒有 但確實調整 VMO 大小

成功會傳回一個控點,以所要求的 大小

根據預設,帳號代碼將設定下列權限:

  • ZX_RIGHT_DUPLICATE - 帳號代碼可能重複。

  • ZX_RIGHT_TRANSFER - 帳號代碼可轉移至其他程序。

  • ZX_RIGHT_READ - 可能會讀取或對應具有讀取權限。

  • ZX_RIGHT_WRITE - 可透過寫入權限寫入或對應。

  • ZX_RIGHT_EXECUTE - 可透過執行權限對應。

  • ZX_RIGHT_MAP - 可對應。

  • ZX_RIGHT_GET_PROPERTY - 可以使用 zx_object_get_property() 取得屬性。

  • ZX_RIGHT_SET_PROPERTY - 可使用 zx_object_set_property() 設定屬性。

ZX_VMO_ZERO_CHILDREN 信號正在新建的 VMO 上。這會變成 每當 VMO 的子項建立時就會閒置,並在 已刪除所有子項,這些子項沒有對應的對應地址 聊天室存在。

附註

這個系統呼叫建立的 VMO 無法與 zx_vmo_read()zx_vmo_write()

權限

resource 必須具有資源種類 ZX_RSRC_KIND_MMIO

傳回值

zx_vmo_create_physical() 會在成功時傳回 ZX_OK。活動 失敗時,系統會傳回負錯誤值。

錯誤

ZER_ERR_WRONG_TYPE resource 不是資源物件的控制代碼。

ZER_ERR_ACCESS_DENIED 資源並未授予要求的存取權 可在記憶體範圍內

ZX_ERR_INVALID_ARGS「out」是無效的指標或 NULL,或者是 paddr 或 「size」不是網頁對齊方式。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。 使用者空間無法妥善處理這種 (異常) 錯誤。 在日後的版本中不會再發生這個錯誤。

ZX_ERR_OUT_OF_RANGE 要求的大小上限太大。

另請參閱