Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ filehdr(4) — Interactive 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

time(2)

fseek(3S)

a.out(4)



          FILEHDR(4)           INTERACTIVE UNIX System           FILEHDR(4)



          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 ;   /* # symtab entries */
                       unsigned short  f_opthdr ;  /* sizeof(opt hdr) */
                       unsigned short  f_flags ;   /* flags */
               } ;

               F_symptr is the byte offset into the file at which the sym-
               bol 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 I286SMAGIC 0512 /* 80286 computers-small model
                                       programs */
               #define I286LMAGIC 0522 /* 80286 computers-large model
                                       programs */
               #define I386MAGIC  0514 /* 80386 computers */
               #define FBOMAGIC   0560 /* 3B2 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_MINMAL  0000020 /* minimal object file */
               #define F_UPDATE  0000040 /* update file, ogen produced */
               #define F_SWABD   0000100 /* file is "pre-swabbed" */
               #define F_AR16WR  0000200 /* 16-bit DEC host */




          Rev.                                                       Page 1





          FILEHDR(4)           INTERACTIVE UNIX System           FILEHDR(4)



               #define F_AR32WR  0000400 /* 32-bit DEC host */
               #define F_AR32W   0001000 /* non-DEC host */
               #define F_PATCH   0002000 /* "patch" list in opt hdr */
               #define F_80186   010000  /* contains 80186 instructions */
               #define F_80286   020000  /* contains 80286 instructions */
               #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 [3B15/3B2 only] */

          SEE ALSO
               time(2), fseek(3S), a.out(4).










































          Rev.                                                       Page 2



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