Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

time(2)

fseek(3s)

a.out(5)

filehdr(5)  —  RISC

Name

filehdr − file header for RISC object files

Syntax

#include < filehdr.h>

Description

Every RISC object file begins with a 20-byte header.  The following C struct declaration is used:

struct filehdr
{
   unsigned short  f_magic;     /* magic number */
   unsigned short  f_nscns;     /* number of sections */
   long            f_timdat;    /* time & date stamp */
   long            f_symptr;    /* file pointer to symbolic header */
   long            f_nsyms;     /* sizeof(symbolic header) */
   unsigned short  f_opthdr;    /* sizeof(optional header) */
   unsigned short  f_flags;     /* flags */
};

The byte offset into the file at which the symbolic header can be found is f_symptr.  Its value can be used as the offset in fseek() to position an I/O stream to the symbolic header.  The ULTRIX system optional header is 56 bytes.  The valid magic numbers are given below:

#define MIPSEBMAGIC 0x0160 /* objects for big-endian machines */
#define MIPSELMAGIC 0x0162 /* objects for little-endian machines */
#define MIPSEBUMAGIC 0x0180 /* ucode objects for big-endian machines */
#define MIPSELUMAGIC 0x0182 /* ucode objects for little-endian machines */

RISC object files can be loaded and examined on machines differing from the object’s target byte sex. Therefore, for object file magic numbers, the byte-swapped values have define constants associated with them:

#define SMIPSEBMAGIC 0x6001
#define SMIPSELMAGIC 0x6201

The value in f_timdat is obtained from the time() system call.  Flag bits used in RISC objects are:

#define F_RELFLG 0000001  /* relocation entries stripped */
#define F_EXEC   0000002  /* file is executable */
#define F_LNNO   0000004  /* line numbers stripped */
#define F_LSYMS  0000010  /* local symbols stripped */

See Also

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

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