GELF(3) | FreeBSD Library Functions Manual | GELF(3) |
名称
GElf — ELF 操作のためのクラスから独立している APIライブラリ
ELF Access Library (libelf, -lelf)書式
#include < gelf.h>解説
このマニュアルページは、ELF オブジェクトを操作するためのクラス独立の API について説明しています。この API によって、アプリケーションは、記述子の ELF のクラスを知る必要なしに ELF 記述子を操作することができます。GElf API は、制限のない ELF API と平行して使用できます。
GElf データ構造
GElf API は、次のクラスから独立しているデータ構造を定義します:- GElf_Addr
- ELF アドレスの表現。
- GElf_Dyn
- ELF の .dynamic セクションエントリのクラスから独立している表現。
- GElf_Ehdr
- ELF 実行形式ヘッダのクラスから独立している表現。
- GElf_Half
- 符号なし 16 ビット量。
- GElf_Off
- ELF オフセットのクラスから独立している表現。
- GElf_Phdr
- ELF プログラムヘッダテーブルエントリのクラスから独立している表現。
- GElf_Rel
- ELF 再配置エントリのクラスから独立している表現。
- GElf_Rela
- 加数 (addend) がある ELF 再配置エントリのクラスから独立している表現。
- GElf_Shdr
- ELF セクションヘッダテーブルエントリのクラスから独立している表現。
- GElf_Sword
- 符号付き 32 ビット量。
- GElf_Sxword
- 符号付き 64 ビット量。
- GElf_Sym
- ELF シンボルテーブルエントリのクラスから独立している表現。
- GElf_Word
- 符号なし 32 ビット量。
- GElf_Xword
- 符号なし 64 ビット量。
これらのデータ構造は、対応する 64 ビットの ELF 構造と互換性があるサイズであり、それらの 64 ビットのクラスに依存する対応物と同じ内部の構造を持ちます。クラスに依存する ELF 構造は、 elf(5) で説明されています。
Elf プログラミングモデル
GElf 関能は、常に基本的な (クラスに依存する) ELF データ構造の コピー を返します。 GElf のプログラミングモデルは、次の通りです:- アプリケーションは、 gelf_get_*() 関数を使用して ELF 記述子からのデータを検索します。これは、プライベートな GElf_* データ構造にデータを全てコピーします。
- アプリケーションは、GElf 構造のプライベートなコピーで動作します。
- いったん行われると、アプリケーションは、 gelf_update_*() 関数を使用して基本的な ELF データ構造に新しい値をコピーして戻します。
- 次に、アプリケーションは、ELF データ構造が dirty (汚い) であることを ELF ライブラリに示すために elf_flag*() API を使用します。
基本的な 32 ビットの ELF データ構造を更新するとき、 GElf 値が基本的な ELF データタイプの範囲外であるなら、 GElf ルーチンは、エラーシグナルを生成します。
名前空間の使用
GElf インタフェースは、次のシンボルを使用します:- GElf_*
- クラスから独立しているデータタイプ。
- gelf_*
- API セットで定義された関数用。
GElf プログラミング API
このセクションは、API プログラミング API の概要を提供しています。詳細については、ここにリストされたそれぞれの関数マニュアルページで提供されています。- ELF データ構造を割り付ける
-
- gelf_newehdr()
- 新しい ELF 実行形式ヘッダを割り付ける。
- gelf_newphdr()
- 新しい ELF プログラムヘッダテーブルを割り付ける。
- データ変換
-
- gelf_xlatetof()
- ELF データ構造のネイティブの表現をファイル表現に変換する。
- gelf_xlatetom()
- ELF データ構造のファイル表現をネイティブの表現に変換する。
- ELF データの検索
-
- gelf_getdyn()
- ELF の .dynamic エントリを検索する。
- gelf_getehdr()
- 基本的な ELF 記述子から ELF 実行形式のヘッダを検索する。
- gelf_getphdr()
- 基本的な ELF 記述子から ELF プログラムヘッダテーブルエントリを検索する。
- gelf_getrel()
- ELF 再配置エントリを検索する。
- gelf_getrela()
- 加数 (addend) で ELF 再配置エントリを検索する。
- gelf_getshdr()
- 基本的な ELF 記述子から ELF セクションヘッダテーブルエントリを検索する。
- gelf_getsym()
- ELF シンボルテーブルエントリを検索する。
- クエリ (問い合わせ)
-
- gelf_checksum()
- ELF 記述子のための ELF チェックサムを検索する。
- gelf_fsize()
- ELF タイプのファイル表現のサイズを検索する。
- gelf_getclass()
- ELF 記述子の ELF のクラスを検索する。
- ELF データの更新
-
- gelf_update_dyn()
- ELF の .dynamic テーブルエントリをコピーして戻す。
- gelf_update_phdr()
- ELF プログラムヘッダテーブルエントリをコピーして戻す。
- gelf_update_rel()
- ELF 再配置エントリをコピーして戻す。
- gelf_update_rela()
- 加数エントリで ELF 再配置をコピーして戻す。
- gelf_update_shdr()
- ELF セクションヘッダテーブルエントリをコピーして戻す。
- gelf_update_sym()
- ELF シンボルテーブルエントリをコピーして戻す。
歴史
GELF(3) API は、System V Release 4 ではじめて登場しました。 API のこの実装は、 FreeBSD 7.0 ではじめて登場しました。作者
GElf API は、 <jkoshy@FreeBSD.org>によって実装されました。September 1, 2006 | FreeBSD |