__smc

__smc キーワードは、SMC(セキュアモニターコール)関数を宣言します。SMC 関数を呼び出すと、関数の呼び出し時にコンパイラによって生成される命令ストリームに SMC 命令が挿入されます。

Note

SMC 命令は、ARM アセンブリ言語の以前のバージョンで使用された SMI 命令を置換します。

__smc は、関数修飾子です。これは、関数の型に影響します。

Show/hide構文

__smc(int smc_num) return-type function-name([argument-list]);

各パラメータには以下の意味があります。

smc_num

SMC 命令で使用される 4 ビットのイミディエート値を指定します。

smc_num の値は、ARM プロセッサでは無視されますが、SMC 例外ハンドラで使用して、要求されているサービスを特定することができます。

Show/hide制約条件

Security Extensions がある場合、SMC 命令は、選択した ARM アーキテクチャベースのプロセッサで使用可能です。詳細については、『アセンブラリファレンス』SMC(3-152 ページ)を参照して下さい。

SMC 命令をサポートしていないアーキテクチャの __smc キーワードを含んでいるソースコードをコンパイルする場合、コンパイラはエラーを生成します。

Show/hide

__smc(5) void mycall(void); /* 5 番目の SMC の呼び出しに使用する名前を宣言 */
...
mycall();                   /* 関数を呼び出す */

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711