Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stio(3) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stcu(3)

,stfe(3)

stfd(3)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026