Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ edata(3) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

brk(2)

malloc(3)

END(3)  —  NEWS-OS Programmer’s Manual

名称

end, etext, edata − プログラム内の最終番地
eprol, _ftext, _fdata, _fbss − プログラム内の先頭番地
_procedure_table, _procedure_table_size, _procedure_string_table − 実行時のプロシージャテーブル

形式

#include <syms.h>
extern _END;
extern _ETEXT;
extern _EDATA;
extern eprol;
extern _FTEXT;
extern _FDATA;
extern _FBSS;
extern _PROCEDURE_TABLE;
extern _PROCEDURE_TABLE_SIZE;
extern _PROCEDURE_STRING_TABLE;

解説

_PROCEDURE_TABLE と _PROCEDURE_STRING_TABLE 以外の名前は、以下に述べるルーチンや番地を示します。 eprol 以外は全てローダが定義するシンボルです。 _ETEXT のアドレスは、プログラムのテキスト領域の最終番地の次を指します。 _EDATA は、初期化データ領域の最終番地、 _END は、未初期化データ領域の最終番地、そして eprol は、実行時スタートアップルーチン に続くユーザプログラムの先頭の命令を指します。

プログラムの実行が始まると、 _END が示すアドレスと実際のデータの最終番地とは同じ所を示します。 しかし、 brk(2)、malloc(3)、 標準入出力 (stdio(3))、cc(1) へのオプションであるプロファイル (−p) などのルーチンによって変化されます。 実行時のプログラムのデータ最後尾のアドレスは、 sbrk(0) によって得られます。 (brk(2) を参照)

そのほかにもローダは、 _PROCEDURE_TABLE、 _PROCEDURE_TABLE_SIZE、 そして _PROCEDURE_STRING_TABLE を定義します。 それらは、実行時のプロシージャテーブルのデータ構造体を示します。 それらのデータ構造は参照される場合にのみ ld(1) によって作成され、シンボルが定義されます。 実行時プロシージャテーブルの定義は、インクルードファイル  <sym.h> そして使用法については、 <exception.h> を御覧下さい。

関連事項

brk(2), malloc(3)

NEWS-OSRelease 4.2.1R

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