Amiga Unix — 68040 · 68060

Manual pages › File formats and configuration files (4)

filehdr(4)

file header for common object files

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

filehdr - file header for common object files

SYNOPSIS

#include <filehdr.h>

DESCRIPTION

Every common 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 ptr to symtab */
   long            f_nsyms ;   /* number of symtab entries */
   unsigned short  f_opthdr ;  /* sizeof(opt and header) */
   unsigned short  f_flags ;   /* flags */
} ;

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

#define I386MAGIC  0514   /* i386 Computer */
#define WE32MAGIC  0560   /* 3B2, 3B5, and 3B15 computers */
#define N3BMAGIC   0550   /* 3B20 computer */
#define NTVMAGIC   0551   /* 3B20 computer */

#define VAXWRMAGIC 0570   /* VAX writable text segments */
#define VAXROMAGIC 0575   /* VAX read only sharable
                             text segments */

The value in f_timdat is obtained from the time(2) system call. Flag bits currently defined 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 */
#define F_AR16WR  0000200   /* 16-bit DEC host */
#define F_AR32WR  0000400   /* 32-bit DEC host */
#define F_AR32W   0001000   /* non-DEC host */
#define F_BM32ID  0160000   /* WE32000 family ID field */
#define F_BM32B   0020000   /* file contains WE 32100 code */
#define F_BM32MAU 0040000   /* file reqs MAU to execute */
#define F_BM32RST 0010000   /* this object file contains restore
                               work around [3B5/3B2 only] */

SEE ALSO

time(2), fseek(3S), a.out(4) The ``Common Object File Format
(COFF)'' chapter in the Programmer's Guide