zx_smc_call

摘要

從使用者空間執行安全監控通話 (SMC)。

宣告

#include <zircon/syscalls.h>
#include <zircon/syscalls/smc.h>

zx_status_t zx_smc_call(zx_handle_t handle,
                        const zx_smc_parameters_t* parameters,
                        zx_smc_result_t* out_smc_result);

說明

zx_smc_call() 會從使用者空間發出安全監控呼叫 (SMC)。支援 ARM SMC 通話 使用 zx_smc_parameters_t 輸入參數和 zx_smc_result_t 輸出參數的慣例。 輸入 handle 必須是具備足夠權限的資源物件才能執行。

大多數參數在 zx_smc_call() 的角度都不透明,因為它們是 取決於 func_idfunc_id 會通知 Secure Monitor 服務和功能 標準屬性client_id 是選用欄位,用途是讓安全軟體追蹤並 建立索引的用戶端 OSsecure_os_id 是選用欄位,適用於 是 S-EL1 中的多個安全作業系統,因此呼叫端可以指定預期中的 安全 OS

詳情請參閱 ARM SMC 通話會議說明文件

權限

TODO(https://fxbug.dev/42107318)

傳回值

如果帳號代碼具備足夠的權限,zx_smc_call() 會傳回 ZX_OK。 smc 呼叫的回傳值會在成功時透過 out_smc_result 傳回。如果發生以下情況: 失敗時,會傳回負的錯誤值。

錯誤

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

ZX_ERR_WRONG_TYPE 帳號代碼不是資源控制代碼。

ZX_ERR_ACCESS_DENIED 帳號代碼沒有足夠的權限。

這個系統不支援 ZX_ERR_NOT_SUPPORTED smc_call。

ZX_ERR_INVALID_ARGS parametersout_smc_result,都是空值指標