SHT_SUNW_cap セクションは、オブジェクトのハードウェアとソフトウェア機能を特定します。このセクションには、次の構造の配列が含まれます。sys/link.h を参照してください。
typedef struct { Elf32_Word c_tag; union { Elf32_Word c_val; Elf32_Addr c_ptr; } c_un; } Elf32_Cap; typedef struct { Elf64_Xword c_tag; union { Elf64_Xword c_val; Elf64_Addr c_ptr; } c_un; } Elf64_Cap;
この種の各オブジェクトに対して、c_tag は c_un の解釈を制御します。
このオブジェクトは、さまざまに解釈される整数値を表します。
このオブジェクトは、プログラムの仮想アドレスを表します。
次の機能タグがあります。
表 7–12 ELF 機能配列タグ
名前 |
値 |
c_un |
---|---|---|
CA_SUNW_NULL |
0 |
無視される |
CA_SUNW_HW_1 |
1 |
c_val |
CA_SUNW_SF_1 |
2 |
c_val |
機能配列の終わりを示します。
ハードウェア機能の値を示します。c_val 要素は、関連ハードウェア機能を表す値を含みます。SPARC プラットフォームでは、ハードウェア機能は sys/auxv_SPARC.h に定義されます。x86 プラットフォームでは、ハードウェア機能は sys/auxv_386.h に定義されます。
ソフトウェア機能の値を示します。c_val 要素は、sys/elf.h に定義される関連ソフトウェア機能を表す値を含みます。
再配置可能オブジェクトには、機能セクションを含めることができます。リンカーは、複数の入力再配置可能オブジェクトからの機能セクションを 1 つの機能セクションに統合します。リンカーを使用すると、オブジェクトの構築時に機能を定義することもできます。「ハードウェアとソフトウェア機能の特定」を参照してください。
ハードウェア機能情報が格納された機能セクションを含む動的オブジェクトでは、そのセクションに関連付けられた PT_SUNWCAP プログラムヘッダーが存在しています。このプログラムヘッダーにより、実行時リンカーは、プロセスで利用可能なハードウェア機能に対してオブジェクトを確認できます。
異なるハードウェア機能を利用する動的オブジェクトは、フィルタを使用して柔軟な実行時環境を提供できます。「ハードウェア機能固有の共有オブジェクト」を参照してください。