外部変数
カーネル・クラス変数、エントリーおよび終了クラス変数と組み込み変数はすべて外部変数です。
これらは ProbeVue フレームワークから独立して存在し、 Vue スクリプトのコンテキストの外部で値を派生させます。 ProbeVue を使用すると、 Vue スクリプト内で外部変数の現行値を使用できるようになります。 これらの変数は、 Vue スクリプトのコンテキスト内では常に読み取り専用です。 プログラムのステートメントが外部変数の値を変更しようとすると、コンパイラーはこのステートメントに無効なステートメントのフラグを立てます。
外部変数には事前定義タイプがありますが、 ProbeVue は、外部変数にアクセスする Vue スクリプトで、組み込み変数を除くすべての外部変数を明示的に宣言する必要があります。 次の表では、外部変数の型がどのように判別されるのかについて説明します。
| 変数 | Type |
|---|---|
| カーネル・グローバル・クラス | カーネル変数の __kernel 宣言ステートメントから。 |
| エントリー・クラス | Vue スクリプトの関数プロトタイプ宣言から。 Vue スクリプトで使用される各引数のデータ型を指定する必要があります。 |
| カーネル関数からの戻り値 | Vue スクリプトの関数プロトタイプ宣言から。 戻り値の型を指定する必要があります。 |
| 組み込み | 通常、これは基本のカーネル変数に依存します。 これらの定義済みタイプおよび同等の ProbeVue タイプは以下のとおりです。 |
| 組み込み | 定義済み型 | ProbeVue 型 |
|---|---|---|
| __tid | tid_t | long long |
| __pid | pid_t | long long |
| __ppid | pid_t | long long |
| __pgid | pid_t | long long |
| __pname | char [32] | String [32] |
| __uid | uid_t | unsigned int |
| __euid | uid_t | unsigned int |
| __trcid | pid_t | long long |
| __errno | int | int |
| __kernelmode | int | int |
| __r3..__r10 | 32 ビット・プロセスでは 32 ビット 64 ビット・プロセスでは 64 ビット |
unsigned long |
| __curthread | 該当なし | すべてのメンバーは long long です。 |
| __curproc | 該当なし | cwd を除くすべてのメンバーは long long です。 cwd メンバーの型は文字列です。 |
| __ublock | 該当なし | すべてのメンバーは long long です。 |
注: 返されるデータの最大サイズは、タイプのサイズより小さくすることができます。 例えば、AIX®のプロセスIDは32ビット整数に収まるが、pid_tデータ型は64ビット・プロセスとカーネル用の64ビット整数である。