Annotation of coherent/a/usr/include.b4ps2/coff/filehdr.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * COFF file header.
                      3:  */
                      4: 
                      5: struct filehdr {
                      6:        unsigned short  f_magic;        /* magic number */
                      7:        unsigned short  f_nscns;        /* number of sections */
                      8:        long            f_timdat;       /* time & date stamp */
                      9:        long            f_symptr;       /* file pointer to symtab */
                     10:        long            f_nsyms;        /* number of symtab entries */
                     11:        unsigned short  f_opthdr;       /* sizeof(optional hdr) */
                     12:        unsigned short  f_flags;        /* flags */
                     13:        };
                     14: 
                     15: 
                     16: /*
                     17:  *   Bits for f_flags:
                     18:  *
                     19:  *     F_RELFLG        relocation info stripped from file
                     20:  *     F_EXEC          file is executable  (i.e. no unresolved
                     21:  *                             externel references)
                     22:  *     F_LNNO          line nunbers stripped from file
                     23:  *     F_LSYMS         local symbols stripped from file
                     24:  *     F_MINMAL        this is a minimal object file (".m") output of fextract
                     25:  *     F_UPDATE        this is a fully bound update file, output of ogen
                     26:  *     F_SWABD         this file has had its bytes swabbed (in names)
                     27:  *     F_AR16WR        this file has the byte ordering of an AR16WR (e.g. 11/70) machine
                     28:  *                             (it was created there, or was produced by conv)
                     29:  *     F_AR32WR        this file has the byte ordering of an AR32WR machine(e.g. vax)
                     30:  *     F_AR32W         this file has the byte ordering of an AR32W machine (e.g. 3b,maxi)
                     31:  *     F_PATCH         file contains "patch" list in optional header
                     32:  *     F_NODF          (minimal file only) no decision functions for
                     33:  *                             replaced functions
                     34:  */
                     35: 
                     36: #define  F_RELFLG      0000001
                     37: #define  F_EXEC                0000002
                     38: #define  F_LNNO                0000004
                     39: #define  F_LSYMS       0000010
                     40: #define  F_MINMAL      0000020
                     41: #define  F_UPDATE      0000040
                     42: #define  F_SWABD       0000100
                     43: #define  F_AR16WR      0000200
                     44: #define  F_AR32WR      0000400
                     45: #define  F_AR32W       0001000
                     46: #define  F_PATCH       0002000
                     47: #define  F_NODF                0002000
                     48: 
                     49: /*
                     50:  *     BELLMAC-32      Identification field
                     51:  *     F_BM32B         file contains BM32B code (as opposed to strictly BM32A)
                     52:  *     F_BM32MAU       file requires MAU (math arith unit) to execute
                     53:  */
                     54: 
                     55: #define        F_BM32ID        0160000
                     56: #define        F_BM32MAU       0040000
                     57: #define F_BM32B         0020000
                     58: 
                     59: /*     F_BM32RST       file has RESTORE work-around    */
                     60: 
                     61: #define F_BM32RST      0010000
                     62: 
                     63: /*
                     64:  *     Flags for the INTEL chips.  If the magic number of the object file
                     65:  *     is IAPX16 or IAPX16TV or IAPX20 or IAPX20TV then if F_80186
                     66:  *     is set, there are some 80186 instructions in the code, and hence
                     67:  *     and 80186 or 80286 chip must be used to run the code.
                     68:  *     If F_80286 is set, then the code has to be run on an 80286 chip.
                     69:  *     And if neither are set, then the code can run on an 8086, 80186, or
                     70:  *     80286 chip.
                     71:  *     
                     72:  */
                     73: 
                     74: #define F_80186                010000
                     75: #define F_80286                020000
                     76: 
                     77: /*
                     78:  *   Magic Numbers
                     79:  */
                     80: 
                     81:        /* iAPX - the stack frame and return registers differ from
                     82:         *        Basic-16 and x86 C compilers, hence new magic numbers
                     83:         *        are required.  These are cross compilers.
                     84:         */
                     85: 
                     86:        /* Intel */
                     87: #define  IAPX16                0504
                     88: #define  IAPX16TV      0505
                     89: #define  IAPX20                0506
                     90: #define  IAPX20TV      0507
                     91: /* 0514, 0516 and 0517 reserved for Intel */
                     92: 
                     93:        /* Basic-16 */
                     94: 
                     95: #define  B16MAGIC      0502
                     96: #define  BTVMAGIC      0503
                     97: 
                     98: 
                     99:        /* x86 */
                    100: 
                    101: #define  X86MAGIC      0510
                    102: #define  XTVMAGIC      0511
                    103: 
                    104:        /* Intel 286 */
                    105: #define I286SMAGIC     0512
                    106: #define I286LMAGIC     0522    /* used by mc68000 (UNIX PC) and iAPX 286 */
                    107: 
                    108:        /* Intel 386 */
                    109: 
                    110: #define  I386MAGIC     0514
                    111: 
                    112:        /* n3b */
                    113: /*
                    114:  *   NOTE:   For New 3B, the old values of magic numbers
                    115:  *             will be in the optional header in the structure
                    116:  *             "aouthdr" (identical to old 3B aouthdr).
                    117:  */
                    118: #define  N3BMAGIC      0550    /* 3B20 executable, no TV */
                    119: #define  NTVMAGIC      0551    /* 3B20 executable with TV */
                    120: 
                    121:        /*  MAC-32, 3B15, 3B5  */
                    122: 
                    123: #define  WE32MAGIC     0560    /* WE 32000, no TV */
                    124: #define  FBOMAGIC      0560    /* WE 32000, no TV */
                    125: #define  RBOMAGIC      0562    /* reserved for WE 32000 */
                    126: #define  MTVMAGIC      0561    /* WE 32000 with TV */
                    127: 
                    128: 
                    129:        /* VAX 11/780 and VAX 11/750 */
                    130: 
                    131:                        /* writeable text segments */
                    132: #define VAXWRMAGIC     0570
                    133:                        /* readonly sharable text segments */
                    134: #define VAXROMAGIC     0575
                    135: 
                    136:        /* pdp11 */
                    137: /*                     0401    UNIX-rt ldp */
                    138: /*                     0405    pdp11 overlay */
                    139: /*                     0407    pdp11/pre System V vax executable */
                    140: /*                     0410    pdp11/pre System V vax pure executable */
                    141: /*                     0411    pdp11 seperate I&D */
                    142: /*                     0437    pdp11 kernel overlay */
                    143: 
                    144: 
                    145:        /* Motorola 68000/68008/68010/68020 */
                    146: #define        MC68MAGIC       0520
                    147: #define MC68KWRMAGIC   0520    /* writeable text segments */
                    148: #define        MC68TVMAGIC     0521
                    149: #define MC68KROMAGIC   0521    /* readonly shareable text segments */
                    150: #define MC68KPGMAGIC   0522    /* demand paged text segments */
                    151: #define        M68MAGIC        0210
                    152: #define        M68TVMAGIC      0211
                    153: 
                    154: 
                    155:        /* IBM 370 */
                    156: #define        U370WRMAGIC     0530    /* writeble text segments       */
                    157: #define        U370ROMAGIC     0535    /* readonly sharable text segments      */
                    158: /* 0532 and 0533 reserved for u370 */
                    159: 
                    160:        /* Amdahl 470/580 */
                    161: #define AMDWRMAGIC     0531    /* writable text segments */
                    162: #define AMDROMAGIC     0534    /* readonly sharable text segments */
                    163: 
                    164:        /* NSC */
                    165: /* 0524 and 0525 reserved for NSC */
                    166: 
                    167:        /* Zilog */
                    168: /* 0544 and 0545 reserved for Zilog */
                    169: 
                    170: #define        FILHDR  struct filehdr
                    171: #define        FILHSZ  sizeof(FILHDR)
                    172: 
                    173: #define ISCOFF(x) \
                    174:                (((x)==B16MAGIC) || ((x)==BTVMAGIC) || ((x)==X86MAGIC) \
                    175:                || ((x)==XTVMAGIC) || ((x)==N3BMAGIC) || ((x)==NTVMAGIC) \
                    176:                || ((x)==FBOMAGIC) || ((x)==VAXROMAGIC) || ((x)==VAXWRMAGIC) \
                    177:                || ((x)==RBOMAGIC) || ((x)==MC68TVMAGIC) \
                    178:                || ((x)==MC68MAGIC) || ((x)==M68MAGIC) || ((x)==M68TVMAGIC) \
                    179:                || ((x)==IAPX16) || ((x)==IAPX16TV) \
                    180:                || ((x)==IAPX20) || ((x)==IAPX20TV) \
                    181:                || ((x)==U370WRMAGIC) || ((x)==U370ROMAGIC) || ((x)==MTVMAGIC) \
                    182:                || ((x)==I286SMAGIC) || ((x)==I286LMAGIC) \
                    183:                || ((x)==MC68KWRMAGIC) || ((x)==MC68KROMAGIC) \
                    184:                || ((x)==MC68KPGMAGIC) \
                    185:                || ((x)==I386MAGIC))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.