Annotation of qemu/roms/openbios/include/arch/sparc32/a.out.h, revision 1.1

1.1     ! root        1: /* $Id: a.out.h,v 1.13 2000/01/09 10:46:53 anton Exp $ */
        !             2: #ifndef __SPARC_A_OUT_H__
        !             3: #define __SPARC_A_OUT_H__
        !             4: 
        !             5: #define SPARC_PGSIZE    0x2000        /* Thanks to the sun4 architecture... */
        !             6: #define SEGMENT_SIZE    SPARC_PGSIZE  /* whee... */
        !             7: 
        !             8: struct exec {
        !             9:        unsigned char a_dynamic:1;      /* A __DYNAMIC is in this image */
        !            10:        unsigned char a_toolversion:7;
        !            11:        unsigned char a_machtype;
        !            12:        unsigned short a_info;
        !            13:        unsigned long a_text;           /* length of text, in bytes */
        !            14:        unsigned long a_data;           /* length of data, in bytes */
        !            15:        unsigned long a_bss;            /* length of bss, in bytes */
        !            16:        unsigned long a_syms;           /* length of symbol table, in bytes */
        !            17:        unsigned long a_entry;          /* where program begins */
        !            18:        unsigned long a_trsize;
        !            19:        unsigned long a_drsize;
        !            20: };
        !            21: 
        !            22: /* Where in the file does the text information begin? */
        !            23: #define N_TXTOFF(x)     (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec))
        !            24: 
        !            25: /* Where do the Symbols start? */
        !            26: #define N_SYMOFF(x)     (N_TXTOFF(x) + (x).a_text +   \
        !            27:                          (x).a_data + (x).a_trsize +  \
        !            28:                          (x).a_drsize)
        !            29: 
        !            30: /* Where does text segment go in memory after being loaded? */
        !            31: #define N_TXTADDR(x)    (((N_MAGIC(x) == ZMAGIC) &&        \
        !            32:                         ((x).a_entry < SPARC_PGSIZE)) ?   \
        !            33:                           0 : SPARC_PGSIZE)
        !            34: 
        !            35: /* And same for the data segment.. */
        !            36: #define N_DATADDR(x) (N_MAGIC(x)==OMAGIC ?         \
        !            37:                       (N_TXTADDR(x) + (x).a_text)  \
        !            38:                        : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
        !            39: 
        !            40: #define N_TRSIZE(a)    ((a).a_trsize)
        !            41: #define N_DRSIZE(a)    ((a).a_drsize)
        !            42: #define N_SYMSIZE(a)   ((a).a_syms)
        !            43: 
        !            44: /*
        !            45:  * Sparc relocation types
        !            46:  */
        !            47: enum reloc_type
        !            48: {
        !            49:        RELOC_8,
        !            50:        RELOC_16,
        !            51:        RELOC_32,       /* simplest relocs */
        !            52:        RELOC_DISP8,
        !            53:        RELOC_DISP16,
        !            54:        RELOC_DISP32,   /* Disp's (pc-rel) */
        !            55:        RELOC_WDISP30,
        !            56:        RELOC_WDISP22,  /* SR word disp's */
        !            57:        RELOC_HI22,
        !            58:        RELOC_22,       /* SR 22-bit relocs */
        !            59:        RELOC_13,
        !            60:        RELOC_LO10,     /* SR 13&10-bit relocs */
        !            61:        RELOC_SFA_BASE,
        !            62:        RELOC_SFA_OFF13, /* SR S.F.A. relocs */
        !            63:        RELOC_BASE10,
        !            64:        RELOC_BASE13,
        !            65:        RELOC_BASE22,   /* base_relative pic */
        !            66:        RELOC_PC10,
        !            67:        RELOC_PC22,     /* special pc-rel pic */
        !            68:        RELOC_JMP_TBL,  /* jmp_tbl_rel in pic */
        !            69:        RELOC_SEGOFF16, /* ShLib offset-in-seg */
        !            70:        RELOC_GLOB_DAT,
        !            71:        RELOC_JMP_SLOT,
        !            72:        RELOC_RELATIVE  /* rtld relocs */
        !            73: };
        !            74: 
        !            75: /*
        !            76:  * Format of a relocation datum.
        !            77:  */
        !            78: struct relocation_info /* used when header.a_machtype == M_SPARC */
        !            79: {
        !            80:         unsigned long   r_address;  /* relocation addr */
        !            81:         unsigned int    r_index:24; /* segment index or symbol index */
        !            82:         unsigned int    r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */
        !            83:         int             r_pad:2;    /* <unused> */
        !            84:         enum reloc_type r_type:5;   /* type of relocation to perform */
        !            85:         long            r_addend;   /* addend for relocation value */
        !            86: };
        !            87: 
        !            88: #define N_RELOCATION_INFO_DECLARED 1
        !            89: 
        !            90: #ifdef __KERNEL__
        !            91: 
        !            92: #include <asm/page.h>
        !            93: 
        !            94: #define STACK_TOP      (PAGE_OFFSET - PAGE_SIZE)
        !            95: 
        !            96: #endif /* __KERNEL__ */
        !            97: 
        !            98: #endif /* __SPARC_A_OUT_H__ */

unix.superglobalmegacorp.com

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