FILEHDR(5) — NEWS-OS Programmer’s Manual
名称
filehdr − MIPS オブジェクトファイル用のファイルヘッダ
形式
#include <filehdr.h>
解説
MIPS オブジェクトファイルはすべて、20 バイトのヘッダで始まります。 以下の C の struct 宣言が使用されます。
structfilehdr
{
unsigned shortf_magic;
unsigned shortf_nscns;/∗ number of sections ∗/
longf_timdat;/∗ time & date stamp ∗/
longf_symptr;/∗ file pointer to symbolic header ∗/
longf_nsyms;/∗ sizeof(symbolic header) ∗/
unsigned shortf_opthdr;/∗ sizeof(optional header) ∗/
unsigned shortf_flags;/∗ flags ∗/
};
f_symptr は、ファイル内のシンボリックヘッダへのバイトオフセットです。 この値を fseek(3S) のオフセットとして使えば、I/O ストリームの位置をシンボリックヘッダの所に もっていくことができます。 NEWS-OS システムのオプショナルヘッダは 56 バイトです。 有効なマジックは以下のとおりです。
#defineMIPSEBMAGIC0x0160/∗ objects for MIPS big-endian machines ∗/
#defineMIPSELMAGIC0x0162/∗ objects for MIPS little-endian machines ∗/
#defineMIPSEBUMAGIC0x0180/∗ ucode objects for MIPS big-endian machines ∗/
#defineMIPSELUMAGIC0x0182/∗ ucode objects for MIPS little-endian machines ∗/
MIPS オブジェクトファイルは、そのバイト順序とは異なるマシン上にロードし、 検査することができます。 このために、オブジェクトファイルのマジックには、 それらをバイトスワップした値も定義されています。
#defineSMIPSEBMAGIC0x6001
#defineSMIPSELMAGIC0x6201
f_timdat 内の値は、 time(2) システムコールから得たものです。 MIPS オブジェクト内で使用される flag ビットは次のとおりです。
#defineF_RELFLG0000001/∗ relocation entries stripped ∗/
#defineF_EXEC0000002/∗ file is executable ∗/
#defineF_LNNO0000004/∗ line numbers stripped ∗/
#defineF_LSYMS0000010/∗ local symbols stripped ∗/
関連事項
NEWS-OSRelease 4.2.1R