zx_iommu_create

摘要

在核心中建立新的 IOMMU 物件。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_iommu_create(zx_handle_t resource,
                            uint32_t type,
                            const void* desc,
                            size_t desc_size,
                            zx_handle_t* out);

說明

zx_iommu_create() 會在代表 IOMMU 裝置的核心中建立新物件。

type 的值會決定 desc 的解釋。請見下方說明 type 值的詳細資料。

成功後,系統會傳回新 IOMMU 的控制代碼。這個帳號代碼將具備相關權限 《ZX_RIGHT_DUPLICATE》和《ZX_RIGHT_TRANSFER》。

類型 = ZX_IOMMU_TYPE_DUMMY

這個類型代表免人工管理 IOMMU。但並未提供硬體層級的保護措施 防止未經授權存取記憶體支援釘選實體記憶體 網頁,防止司機使用網頁,直到驅動程式庫使用 才能順利使用

desc 必須是 zx_iommu_desc_dummy_t 類型值的有效指標。 desc_size 必須為 sizeof(zx_iommu_desc_dummy_t)

權限

resource 必須有資源種類 ZX_RSRC_KIND_SYSTEM 和資源集 ZX_RSRC_SYSTEM_IOMMU_BASE

傳回值

zx_iommu_create() 會回傳 ZX_OK 和控制代碼給新 IOMMU (透過) 成功的故事。失敗時,錯誤的值為負值 。

錯誤

ZX_ERR_BAD_HANDLE資源不是有效的帳號代碼。

ZX_ERR_WRONG_TYPE 的「resource」並非資源控制代碼。

ZX_ERR_ACCESS_DENIED 資源帳號代碼權限不足。

ZX_ERR_NOT_SUPPORTED type 不是定義的值或尚未定義 支援系統。

ZX_ERR_INVALID_ARGS desc_size 大於 ZX_IOMMU_MAX_DESC_LEN, 「desc」是無效指標,「out」是無效指標,或 對指定的類型而言,「desc」是無效的

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

另請參閱