STCU(3) — NEWS-OS Programmer’s Manual
名称
stcu − 翻訳ユニットシンボルテーブルインタフェースを提供するルーチン
形式
#include <syms.h>
pCHDRR st_cuinit ()
pCHDRR st_currentpchdr()
void st_setchdr (pchdr)
pCHDRRpchdr;
void st_free()
long st_extadd (iss, value, st, sc, index)
long iss;
long value;
long st;
long sc;
long index;
pEXTR st_pext_iext (iext)
longiext;
pEXTR st_pext_rndx (rndx)
RNDXR rndx;
long st_iextmax()
long st_extstradd (str)
char ∗str;
char ∗st_str_extiss (iss)
long iss;
long st_idn_index_fext (index, fext)
long index;
long fext;
long st_idn_rndx (rndx)
RNDXR rndx;
pRNDXR st_pdn_idn (idn)
long idn;
RNDXR st_rndx_idn (idn)
long idn;
void st_setidn (idndest, idnsrc)
long idndest;
long idnsrc;
解説
stcu ルーチンは、1 ファイルディスクリプタにつき一度ではなく 1 オブジェクト につき一度生じる(たとえば、外部記号、文字列、dense 番号)オブジェクト とのインタフェースを提供します。 このルーチンは、現在の chdr (コンパイル時の hdr)へのアクセスを提供します。 chdr は、ディスクファイル表現時に使用するインデックスやオフセットではなく シンボルテーブルセクションを指すポインタで、プロセス実行時のシンボル テーブルを表現します。
新しいシンボルテーブルは st_cuinit で作成することができます。 このルーチンは、CHDRR を作成し、初期化します。 CHDRR は、現在の chdr で、後のすべての呼び出しで使用されます。 注意: chdr は、read ルーチンでも作成することができます (stio(3) 参照)。 st_cuinit ルーチンは、新しい CHDRR レコードを指すポインタを返します。
st_currentchdr
現在の chdr を指すポインタを返します。
st_setchdr
現在の chdr を引数 pchdr に設定し、ファイルごとの構造体を設定し、シンボルテーブル中の変更を反映します。
st_free 現在の chdr と対応付られているすべての構成構造体を解放します。
st_extadd
外部テーブルへの追加を行わせます。 これは、将来的な参照と使用のために、 新しい外部テーブルへのインデックスを返します。 外部テーブルに対する ifd フィールドは、現在のファイルによりフィルされます(stfd(3) 参照)。
st_pext_iext
st_pext_rndx
外部テーブルを参照するインデックスの与えられている外部テーブルを指す ポインタを返します。 st_pext_rndx ルーチンは、 index フィールドが外部記号中のインデックスで、 rfd フィールドが ST_EXTIFD 定数であるべき相対インデックスを要求します。 注意: 外部テーブルはシンボルと同じ構造体をもっています( SYMR および EXTR 定義を参照)。
st_iextmax
外部シンボルテーブル中の現在のエントリ数を返します。
外部シンボル中の iss フィールド(文字列スペースへのインデックス)は、 外部文字列スペースを指さなければなりません。
st_extstradd
null で終わる文字列を外部文字列スペースへ追加し、 そのインデックスを返します。
st_str_extiss
インデックスを外部文字列を指すポインタへ変換します。
dense 番号テーブルは、コードオプティマイザ、 ジェネレータおよびアセンブラへの便宜を提供します。 このテーブルは、これらのプログラムに、連続的に割り当てられた一意の番号を 使って異なるファイルと外部テーブルから、シンボルを参照させます。
st_idn_index_fext
現在のファイルのシンボルテーブル(または、fext が設定されている場合は、 外部テーブル)へのインデックスが与えられている新しいdense 番号 テーブルのインデックスを返します。
st_idn_rndx
新しいdense 番号を返しますが、RNDXR が、 現在のファイルからのファイルインデックスを暗示するのではなく、 ファイルインデックスとシンボルインデックスの両方を指定することを期待します。 RNDXR は、2 つのフィールドをもちます。 外部テーブルへのインデックスと、ファイルインデックスです( 同様に、rsyms もシンボルテーブルを指すことができます)。 ファイルインデックスは、外部テーブルに対する ST_EXTIFD です。
st_rndx_idn
dense 番号テーブルへのインデックスが与えられている RNDX を返します。
st_pdn_idn
引数 ‘idn’ により RNDXR インデックスを指すポインタを返します。
著者
Mark I. Himelstein
関連事項
NEWS-OSRelease 4.2.1R