STIO(3) — NEWS-OS Programmer’s Manual
名称
stio − MIPS シンボルテーブルのバイナリ読込み/書込みインタフェース を提供するルーチン群
形式
#include <syms.h>
long st_readbinary (filename, how)
char ∗filename;
char how;
long st_readst (fn, how, filebase, pchdr, flags)
long fn;
char how;
long filebase;
pCHDRR pchdr;
long flags;
void st_writebinary (filename, flags)
char ∗filename;
long flags;
void st_writest (fn, flags)
long fn;
long flags;
解説
CHDRR 構造体(stcu(3) 参照)は、メモリ中のシンボルテーブルを 表します。 新しい CHDRR は、シンボルテーブルをディスクから読み込むことにより 作成することができます。 st_readbinary および st_readst はシンボルテーブルをディスクから読み込みます。
st_readbinary は、シンボルテーブルのファイル名を引数とし、またシンボルテーブルヘッダ HDRR がそのファイルの始めにあるものとします。 st_readst は、引数のファイル番号のファイルポインタはシンボル テーブルヘッダの先頭にあり、 filebase パラメータでオブジェクトまたはシンボルテーブルファイルのベースを示すもの とします(たとえば、アーカイブでは0でない)。
read ルーチンに対する2番目のパラメタは、リードオンリのときは ‘r’、 シンボルテーブルに付加するときは ‘a’ です。 既存のローカルシンボル、ライン、プロシジャ、補助、最適化およびローカル 文字列テーブルには付加できません。 これらがディスク上にない場合は、それらを作成することができます。 この制限は、これらのシンボルテーブルセクションをディスクから読み込む時の メモリ割り当てアルゴリズムに起因し、シンボルテーブル構築のための標準 パターンに従います。
シンボルテーブルは、インクリメンタルに読み込むことができます。 pchdr が 0 の場合、st_readst はシンボルテーブルはまだ 1つも読込まれていないものとして、シンボルテーブルヘッダおよびファイル ディスクリプタを読み込みます。 flags 引数は、他のどのテーブルを読み込むべきかを定義するビットマスクです。 各テーブルに対する st_p∗ 定数を OR することができます。 flags 引数が ‘−1’ の場合、すべてのテーブルが読み込まれます。 pchdr が設定されていると、flags 引数により指定されたテーブル は、すでに読み込まれているテーブルに付加されます。 pchdr の値は、st_current_pchdr で得ることができます( stcu(3) 参照)。
行番号エントリは、ディスク上ではエンコードされており、read ルーチンにより それらを long に戻します。 RISC NEWS Assembler Language Programmer’s Guide を参照してください。
バージョンスタンプが古い場合、stderr に警告メッセージが出されます。 HDRR 中のマジックが正しくない場合、st_error が呼ばれます。 他のエラーの時には、read ルーチンは 0 でない値を、そうでない場合は 0 が 返されます。
st_writebinary および st_writest は、how と pchdr パラメタを除いて、read ルーチンと対称です。 flags パラメタは、どのテーブルを書き込むかを定義するビットマスクです。 各テーブルに対する st_p∗ 定数を、OR することができます。 flags 引数が ‘−1’ の場合、すべてのテーブルが書き込まれます。
write ルーチンは、テーブルの各セクションをリンクエディタ (ld) の 仕様で規定されている順序で書き込みます。
行番号エントリはディスク上では圧縮されています。 RISC NEWS Assembler Language Programmer’s Guide を参照してください。
write ルーチンは、シンボルテーブルのどのセクションも 4 バイト境界上から 始めます。
write ルーチンでエラーがおきた場合、st_error が呼び出されます。 シンボルテーブルを書き込んだ後は、他のルーチンによるテーブルへの後続の アクセスは定義されません。
著者
Mark I. Himelstein
関連事項
stcu(3),stfe(3), stfd(3).
The RISC NEWS Assembler Language Programmer’s Guide.
NEWS-OSRelease 4.2.1R