Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ filehdr(5) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

time(2)

fseek(3S)

a.out(5)

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 ∗/

関連事項

time(2), fseek(3S), a.out(5)

NEWS-OSRelease 4.2.1R

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