__svc_indirect

__svc_indirect キーワードは、演算コードを r12 で SVC ハンドラに渡します。

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

Show/hide構文

__svc_indirect(int svc_num)
        return-type function-name(int real_num[, argument-list]);

各項目には以下の意味があります。

svc_num

SVC 命令で使用されるイミディエート値を指定します。

以下の範囲の整数を求める式を指定します。

  • ARM 命令の場合は 0 ~ 224-1(24 ビット値)

  • 16 ビット Thumb 命令の場合は 0 ~ 255(8 ビット値)

real_num

r12 で、関数の実行を決定する際にハンドラに渡される値です。

間接的なメカニズムを使用するには、使用するシステムのハンドラが、r12 の値を使用して要求されている演算を選択する必要があります。

Show/hide使用法

この機能を使用すると、間接的に SVC を実装できます。

Show/hide

int __svc_indirect(0) ioctl(int svcino, int fn, void *argp);

以下の呼び出しを行うと

ioctl(IOCTL+4, RESET, NULL);

r12IOCTL+4 を使用して、SVC #0 にコンパイルされます。

Show/hideエラー

SVC 命令をサポートしない ARM アーキテクチャバリアント、または ARM アーキテクチャベースのプロセッサが、--cpu オプションを使用してコマンドラインで指定されると、コンパイラはエラーを生成します。

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0491BJ
Non-ConfidentialID011811