OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [include/] [aout/] [dynix3.h] - Diff between revs 816 and 818

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 818
/* a.out specifics for Sequent Symmetry running Dynix 3.x
/* a.out specifics for Sequent Symmetry running Dynix 3.x
 
 
   Copyright 2001 Free Software Foundation, Inc.
   Copyright 2001 Free Software Foundation, Inc.
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
   (at your option) any later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 
#ifndef A_OUT_DYNIX3_H
#ifndef A_OUT_DYNIX3_H
#define A_OUT_DYNIX3_H
#define A_OUT_DYNIX3_H
 
 
#define external_exec dynix_external_exec
#define external_exec dynix_external_exec
 
 
/* struct exec for Dynix 3
/* struct exec for Dynix 3
 
 
   a_gdtbl and a_bootstrap are only for standalone binaries.
   a_gdtbl and a_bootstrap are only for standalone binaries.
   Shared data fields are not supported by the kernel as of Dynix 3.1,
   Shared data fields are not supported by the kernel as of Dynix 3.1,
   but are supported by Dynix compiler programs.  */
   but are supported by Dynix compiler programs.  */
struct dynix_external_exec
struct dynix_external_exec
  {
  {
    unsigned char e_info[4];
    unsigned char e_info[4];
    unsigned char e_text[4];
    unsigned char e_text[4];
    unsigned char e_data[4];
    unsigned char e_data[4];
    unsigned char e_bss[4];
    unsigned char e_bss[4];
    unsigned char e_syms[4];
    unsigned char e_syms[4];
    unsigned char e_entry[4];
    unsigned char e_entry[4];
    unsigned char e_trsize[4];
    unsigned char e_trsize[4];
    unsigned char e_drsize[4];
    unsigned char e_drsize[4];
    unsigned char e_g_code[8];
    unsigned char e_g_code[8];
    unsigned char e_g_data[8];
    unsigned char e_g_data[8];
    unsigned char e_g_desc[8];
    unsigned char e_g_desc[8];
    unsigned char e_shdata[4];
    unsigned char e_shdata[4];
    unsigned char e_shbss[4];
    unsigned char e_shbss[4];
    unsigned char e_shdrsize[4];
    unsigned char e_shdrsize[4];
    unsigned char e_bootstrap[44];
    unsigned char e_bootstrap[44];
    unsigned char e_reserved[12];
    unsigned char e_reserved[12];
    unsigned char e_version[4];
    unsigned char e_version[4];
  };
  };
 
 
#define EXEC_BYTES_SIZE (128)
#define EXEC_BYTES_SIZE (128)
 
 
/* All executables under Dynix are demand paged with read-only text,
/* All executables under Dynix are demand paged with read-only text,
   Thus no NMAGIC.
   Thus no NMAGIC.
 
 
   ZMAGIC has a page of 0s at virtual 0,
   ZMAGIC has a page of 0s at virtual 0,
   XMAGIC has an invalid page at virtual 0.  */
   XMAGIC has an invalid page at virtual 0.  */
#define OMAGIC  0x12eb          /* .o */
#define OMAGIC  0x12eb          /* .o */
#define ZMAGIC  0x22eb          /* zero @ 0, demand load */
#define ZMAGIC  0x22eb          /* zero @ 0, demand load */
#define XMAGIC  0x32eb          /* invalid @ 0, demand load */
#define XMAGIC  0x32eb          /* invalid @ 0, demand load */
#define SMAGIC  0x42eb          /* standalone, not supported here */
#define SMAGIC  0x42eb          /* standalone, not supported here */
 
 
#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \
#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \
                     (ZMAGIC != N_MAGIC(x)) && \
                     (ZMAGIC != N_MAGIC(x)) && \
                     (XMAGIC != N_MAGIC(x)) && \
                     (XMAGIC != N_MAGIC(x)) && \
                     (SMAGIC != N_MAGIC(x)))
                     (SMAGIC != N_MAGIC(x)))
 
 
#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0)
#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0)
 
 
#define N_TXTOFF(x) (EXEC_BYTES_SIZE)
#define N_TXTOFF(x) (EXEC_BYTES_SIZE)
#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data)
#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data)
#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata)
#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata)
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize)
#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize)
#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize)
#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize)
#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
 
 
#define N_TXTADDR(x) \
#define N_TXTADDR(x) \
        (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \
        (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \
         : TEXT_START_ADDR + EXEC_BYTES_SIZE)
         : TEXT_START_ADDR + EXEC_BYTES_SIZE)
 
 
#define N_TXTSIZE(x) \
#define N_TXTSIZE(x) \
        (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \
        (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \
         : ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE))
         : ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE))
 
 
#endif /* A_OUT_DYNIX3_H */
#endif /* A_OUT_DYNIX3_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.