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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [include/] [oasys.h] - Diff between revs 827 and 840

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

Rev 827 Rev 840
/* Oasys object format header file for BFD.
/* Oasys object format header file for BFD.
 
 
   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, or (at your option)
   the Free Software Foundation; either version 2, or (at your option)
   any later version.
   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,
   Foundation, Inc., 51 Franklin Street - Fifth Floor,
   Boston, MA 02110-1301, USA.
   Boston, MA 02110-1301, USA.
 
 
   Contributed by Cygnus Support.  */
   Contributed by Cygnus Support.  */
 
 
#define OASYS_MAX_SEC_COUNT 16
#define OASYS_MAX_SEC_COUNT 16
/* **** */
/* **** */
 
 
typedef struct oasys_archive_header
typedef struct oasys_archive_header
  {
  {
    unsigned int  version;
    unsigned int  version;
    char create_date[12];
    char create_date[12];
    char revision_date[12];
    char revision_date[12];
    unsigned int mod_count;
    unsigned int mod_count;
    file_ptr mod_tbl_offset;
    file_ptr mod_tbl_offset;
    unsigned int sym_tbl_size;
    unsigned int sym_tbl_size;
    unsigned int sym_count;
    unsigned int sym_count;
    file_ptr sym_tbl_offset;
    file_ptr sym_tbl_offset;
    unsigned int xref_count;
    unsigned int xref_count;
    file_ptr xref_lst_offset;
    file_ptr xref_lst_offset;
  }
  }
oasys_archive_header_type;
oasys_archive_header_type;
 
 
typedef struct oasys_extarchive_header
typedef struct oasys_extarchive_header
  {
  {
    bfd_byte version[4];
    bfd_byte version[4];
    bfd_byte create_date[12];
    bfd_byte create_date[12];
    bfd_byte revision_date[12];
    bfd_byte revision_date[12];
    bfd_byte mod_count[4];
    bfd_byte mod_count[4];
    bfd_byte mod_tbl_offset[4];
    bfd_byte mod_tbl_offset[4];
    bfd_byte sym_tbl_size[4];
    bfd_byte sym_tbl_size[4];
    bfd_byte sym_count[4];
    bfd_byte sym_count[4];
    bfd_byte sym_tbl_offset[4];
    bfd_byte sym_tbl_offset[4];
    bfd_byte xref_count[4];
    bfd_byte xref_count[4];
    bfd_byte xref_lst_offset[4];
    bfd_byte xref_lst_offset[4];
  }
  }
oasys_extarchive_header_type;
oasys_extarchive_header_type;
 
 
typedef struct oasys_module_table
typedef struct oasys_module_table
  {
  {
    int mod_number;
    int mod_number;
    char mod_date[12];
    char mod_date[12];
    unsigned int mod_size;
    unsigned int mod_size;
    unsigned int dep_count;
    unsigned int dep_count;
    unsigned int depee_count;
    unsigned int depee_count;
    file_ptr file_offset;
    file_ptr file_offset;
    unsigned int sect_count;
    unsigned int sect_count;
    char *module_name;
    char *module_name;
    unsigned int module_name_size;
    unsigned int module_name_size;
  }
  }
oasys_module_table_type;
oasys_module_table_type;
 
 
typedef struct oasys_extmodule_table_a
typedef struct oasys_extmodule_table_a
  {
  {
    bfd_byte mod_number[4];
    bfd_byte mod_number[4];
    bfd_byte mod_date[12];
    bfd_byte mod_date[12];
    bfd_byte mod_size[4];
    bfd_byte mod_size[4];
    bfd_byte dep_count[4];
    bfd_byte dep_count[4];
    bfd_byte depee_count[4];
    bfd_byte depee_count[4];
    bfd_byte sect_count[4];
    bfd_byte sect_count[4];
    bfd_byte file_offset[4];
    bfd_byte file_offset[4];
    bfd_byte mod_name[32];
    bfd_byte mod_name[32];
  }
  }
oasys_extmodule_table_type_a_type;
oasys_extmodule_table_type_a_type;
 
 
typedef struct oasys_extmodule_table_b
typedef struct oasys_extmodule_table_b
  {
  {
    bfd_byte mod_number[4];
    bfd_byte mod_number[4];
    bfd_byte mod_date[12];
    bfd_byte mod_date[12];
    bfd_byte mod_size[4];
    bfd_byte mod_size[4];
    bfd_byte dep_count[4];
    bfd_byte dep_count[4];
    bfd_byte depee_count[4];
    bfd_byte depee_count[4];
    bfd_byte sect_count[4];
    bfd_byte sect_count[4];
    bfd_byte file_offset[4];
    bfd_byte file_offset[4];
    bfd_byte mod_name_length[4];
    bfd_byte mod_name_length[4];
  }
  }
oasys_extmodule_table_type_b_type;
oasys_extmodule_table_type_b_type;
 
 
typedef enum oasys_record
typedef enum oasys_record
  {
  {
    oasys_record_is_end_enum = 0,
    oasys_record_is_end_enum = 0,
    oasys_record_is_data_enum = 1,
    oasys_record_is_data_enum = 1,
    oasys_record_is_symbol_enum = 2,
    oasys_record_is_symbol_enum = 2,
    oasys_record_is_header_enum = 3,
    oasys_record_is_header_enum = 3,
    oasys_record_is_named_section_enum = 4,
    oasys_record_is_named_section_enum = 4,
    oasys_record_is_com_enum = 5,
    oasys_record_is_com_enum = 5,
    oasys_record_is_debug_enum = 6,
    oasys_record_is_debug_enum = 6,
    oasys_record_is_section_enum = 7,
    oasys_record_is_section_enum = 7,
    oasys_record_is_debug_file_enum = 8,
    oasys_record_is_debug_file_enum = 8,
    oasys_record_is_module_enum = 9,
    oasys_record_is_module_enum = 9,
    oasys_record_is_local_enum = 10
    oasys_record_is_local_enum = 10
  }
  }
oasys_record_enum_type;
oasys_record_enum_type;
 
 
typedef struct oasys_record_header
typedef struct oasys_record_header
  {
  {
    unsigned char length;
    unsigned char length;
    unsigned char check_sum;
    unsigned char check_sum;
    unsigned char type;
    unsigned char type;
    unsigned char fill;
    unsigned char fill;
  }
  }
oasys_record_header_type;
oasys_record_header_type;
 
 
typedef struct oasys_data_record
typedef struct oasys_data_record
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    unsigned char relb;
    unsigned char relb;
    bfd_byte addr[4];
    bfd_byte addr[4];
    /* maximum total size of data record is 255 bytes */
    /* maximum total size of data record is 255 bytes */
    bfd_byte data[246];
    bfd_byte data[246];
  }
  }
oasys_data_record_type;
oasys_data_record_type;
 
 
typedef struct oasys_header_record
typedef struct oasys_header_record
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    unsigned char version_number;
    unsigned char version_number;
    unsigned char rev_number;
    unsigned char rev_number;
    char module_name[26-6];
    char module_name[26-6];
    char description[64-26];
    char description[64-26];
  }
  }
oasys_header_record_type;
oasys_header_record_type;
 
 
#define OASYS_VERSION_NUMBER 0
#define OASYS_VERSION_NUMBER 0
#define OASYS_REV_NUMBER 0
#define OASYS_REV_NUMBER 0
 
 
typedef struct oasys_symbol_record
typedef struct oasys_symbol_record
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    unsigned char relb;
    unsigned char relb;
    bfd_byte value[4];
    bfd_byte value[4];
    bfd_byte refno[2];
    bfd_byte refno[2];
    char name[64];
    char name[64];
  }
  }
oasys_symbol_record_type;
oasys_symbol_record_type;
 
 
#define RELOCATION_PCREL_BIT 0x80
#define RELOCATION_PCREL_BIT 0x80
#define RELOCATION_32BIT_BIT 0x40
#define RELOCATION_32BIT_BIT 0x40
#define RELOCATION_TYPE_BITS 0x30
#define RELOCATION_TYPE_BITS 0x30
#define RELOCATION_TYPE_ABS 0x00
#define RELOCATION_TYPE_ABS 0x00
#define RELOCATION_TYPE_REL 0x10
#define RELOCATION_TYPE_REL 0x10
#define RELOCATION_TYPE_UND 0x20
#define RELOCATION_TYPE_UND 0x20
#define RELOCATION_TYPE_COM 0x30
#define RELOCATION_TYPE_COM 0x30
#define RELOCATION_SECT_BITS 0x0f
#define RELOCATION_SECT_BITS 0x0f
 
 
typedef struct oasys_section_record
typedef struct oasys_section_record
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    unsigned char relb;
    unsigned char relb;
    bfd_byte value[4];
    bfd_byte value[4];
    bfd_byte vma[4];
    bfd_byte vma[4];
    bfd_byte fill[3];
    bfd_byte fill[3];
  }
  }
oasys_section_record_type;
oasys_section_record_type;
 
 
typedef struct oasys_end_record
typedef struct oasys_end_record
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    unsigned char relb;
    unsigned char relb;
    bfd_byte entry[4];
    bfd_byte entry[4];
    bfd_byte fill[2];
    bfd_byte fill[2];
    bfd_byte zero;
    bfd_byte zero;
  }
  }
oasys_end_record_type;
oasys_end_record_type;
 
 
typedef union oasys_record_union
typedef union oasys_record_union
  {
  {
    oasys_record_header_type header;
    oasys_record_header_type header;
    oasys_data_record_type data;
    oasys_data_record_type data;
    oasys_section_record_type section;
    oasys_section_record_type section;
    oasys_symbol_record_type symbol;
    oasys_symbol_record_type symbol;
    oasys_header_record_type first;
    oasys_header_record_type first;
    oasys_end_record_type end;
    oasys_end_record_type end;
    bfd_byte pad[256];
    bfd_byte pad[256];
  }
  }
oasys_record_union_type;
oasys_record_union_type;
 
 

powered by: WebSVN 2.1.0

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