Annotation of hatari/src/debug/a.out.h, revision 1.1

1.1     ! root        1: /* a.out.h - Definitions and declarations for GNU-style a.out
        !             2:    binaries.
        !             3:    Written by Guido Flohr ([email protected]).
        !             4: 
        !             5:    This file is in the public domain. */
        !             6: 
        !             7: #ifndef __A_OUT_GNU_H__
        !             8: #define __A_OUT_GNU_H__ 1
        !             9: 
        !            10: struct nlist {
        !            11:   union {
        !            12:     const char *n_name;     /* in memory address */
        !            13:     struct nlist *n_next;
        !            14:     size_t n_strx;          /* string table offset */
        !            15:   } n_un;
        !            16:   unsigned char n_type;
        !            17:   char n_other;
        !            18:   short n_desc;
        !            19:   uint32_t n_value;
        !            20: };
        !            21: 
        !            22: /* sizeof(struct nlist) on disk */
        !            23: #define SIZEOF_STRUCT_NLIST 12
        !            24: 
        !            25: 
        !            26: #define N_UNDF   0x00       /* undefined */
        !            27: #define N_ABS    0x02       /* absolute */
        !            28: #define N_TEXT   0x04       /* text */
        !            29: #define N_DATA   0x06       /* data */
        !            30: #define N_BSS    0x08       /* bss */
        !            31: #define N_SIZE   0x0c       /* pseudo type, defines a symbol's size */
        !            32: #define N_FN     0x1f       /* File name of a .o file */
        !            33: #define N_COMM   0x12       /* common (internal to ld) */
        !            34: 
        !            35: #define N_EXT    0x01       /* external bit, or'ed in */
        !            36: #define N_TYPE   0x1e       /* mask for all the type bits */
        !            37: #define N_STAB   0xe0       /* if any of these bits set, don't discard */
        !            38: 
        !            39: /* The following type indicates the definition of a symbol as being
        !            40:    an indirect reference to another symbol.  The other symbol
        !            41:    appears as an undefined reference, immediately following this symbol.
        !            42: 
        !            43:    Indirection is asymmetrical.  The other symbol's value will be used
        !            44:    to satisfy requests for the indirect symbol, but not vice versa.
        !            45:    If the other symbol does not have a definition, libraries will
        !            46:    be searched to find a definition. */
        !            47: #define N_INDR 0x0a
        !            48: 
        !            49: /* The following symbols refer to set elements.
        !            50:    All the N_SET[ATDB] symbols with the same name form one set.
        !            51:    Space is allocated for the set in the text section, and each set
        !            52:    element's value is stored into one word of the space.
        !            53:    The first word of the space is the length of the set (number of elements).
        !            54: 
        !            55:    The address of the set is made into an N_SETV symbol
        !            56:    whose name is the same as the name of the set.
        !            57:    This symbol acts like a N_DATA global symbol
        !            58:    in that it can satisfy undefined external references. */
        !            59: 
        !            60: /* These appear as input to LD, in a .o file. */
        !            61: #define N_SETA  0x14        /* Absolute set element symbol */
        !            62: #define N_SETT  0x16        /* Text set element symbol */
        !            63: #define N_SETD  0x18        /* Data set element symbol */
        !            64: #define N_SETB  0x1A        /* Bss set element symbol */
        !            65: 
        !            66: /* This is output from LD. */
        !            67: #define N_SETV  0x1C        /* Pointer to set vector in data area. */
        !            68: 
        !            69: /* Warning symbol. The text gives a warning message, the next symbol
        !            70:    in the table will be undefined. When the symbol is referenced, the
        !            71:    message is printed. */
        !            72: 
        !            73: #define N_WARNING 0x1e
        !            74: 
        !            75: /* Weak symbols.  These are a GNU extension to the a.out format.  The
        !            76:    semantics are those of ELF weak symbols.  Weak symbols are always
        !            77:    externally visible.  The N_WEAK? values are squeezed into the
        !            78:    available slots.  The value of a N_WEAKU symbol is 0.  The values
        !            79:    of the other types are the definitions. */
        !            80: #define N_WEAKU 0x0d        /* Weak undefined symbol. */
        !            81: #define N_WEAKA 0x0e        /* Weak absolute symbol. */
        !            82: #define N_WEAKT 0x0f        /* Weak text symbol. */
        !            83: #define N_WEAKD 0x10        /* Weak data symbol. */
        !            84: #define N_WEAKB 0x11        /* Weak bss symbol. */
        !            85: 
        !            86: #endif /* __A_OUT_GNU_H__ */

unix.superglobalmegacorp.com

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