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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [include/] [mach-o/] [external.h] - Diff between revs 161 and 166

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 161 Rev 166
Line 1... Line 1...
/* Mach-O support for BFD.
/* Mach-O support for BFD.
   Copyright 2011
   Copyright 2011, 2012
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
 
 
   This file is part of BFD, the Binary File Descriptor library.
   This file is part of BFD, the Binary File Descriptor library.
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
Line 114... Line 114...
  unsigned char r_address[4];
  unsigned char r_address[4];
  unsigned char r_symbolnum[4];
  unsigned char r_symbolnum[4];
};
};
#define BFD_MACH_O_RELENT_SIZE 8
#define BFD_MACH_O_RELENT_SIZE 8
 
 
 
/* Relocations are based on 'address' being a section offset and an assumption
 
   that sections are never more than 2^24-1 bytes in size.  Relocation data
 
   also carry information on type/size/PC-relative/extern and whether scattered
 
   or not [stored in the MSB of the r_address].  */
 
 
 
#define BFD_MACH_O_SR_SCATTERED         0x80000000
 
 
 
/* For a non-scattered reloc, the relocation info is found in r_symbolnum.
 
   Bytes 1 to 3 contain the symbol number (0xffffff, in a non-scattered PAIR).
 
   Byte 4 contains the relocation info - but with differing bit-positions
 
   dependent on target endian-ness - as below.  */
 
 
 
#define BFD_MACH_O_LE_PCREL             0x01
 
#define BFD_MACH_O_LE_LENGTH_SHIFT      1
 
#define BFD_MACH_O_LE_EXTERN            0x08
 
#define BFD_MACH_O_LE_TYPE_SHIFT        4
 
 
 
#define BFD_MACH_O_BE_PCREL             0x80
 
#define BFD_MACH_O_BE_LENGTH_SHIFT      5
 
#define BFD_MACH_O_BE_EXTERN            0x10
 
#define BFD_MACH_O_BE_TYPE_SHIFT        0
 
 
 
/* The field sizes are the same for both BE and LE.  */
 
#define BFD_MACH_O_LENGTH_MASK          0x03
 
#define BFD_MACH_O_TYPE_MASK            0x0f
 
 
 
/* For a scattered reloc entry the info is contained in r_address.  There
 
   is no need to discriminate on target endian-ness, since the design was
 
   arranged to produce the same layout on both.  Scattered relocations are
 
   only used for local items, therefore there is no 'extern' field.  */
 
 
 
#define BFD_MACH_O_SR_PCREL             0x40000000
 
#define BFD_MACH_O_GET_SR_LENGTH(s)     (((s) >> 28) & 0x3)
 
#define BFD_MACH_O_GET_SR_TYPE(s)       (((s) >> 24) & 0x0f)
 
#define BFD_MACH_O_GET_SR_ADDRESS(s)    ((s) & 0x00ffffff)
 
#define BFD_MACH_O_SET_SR_LENGTH(l)     (((l) & 0x3) << 28)
 
#define BFD_MACH_O_SET_SR_TYPE(t)       (((t) & 0xf) << 24)
 
#define BFD_MACH_O_SET_SR_ADDRESS(s)    ((s) & 0x00ffffff)
 
 
struct mach_o_symtab_command_external
struct mach_o_symtab_command_external
{
{
  unsigned char symoff[4];
  unsigned char symoff[4];      /* File offset of the symbol table.  */
  unsigned char nsyms[4];
  unsigned char nsyms[4];       /* Number of symbols.  */
  unsigned char stroff[4];
  unsigned char stroff[4];      /* File offset of the string table.  */
  unsigned char strsize[4];
  unsigned char strsize[4];     /* String table size.  */
};
};
 
 
struct mach_o_nlist_external
struct mach_o_nlist_external
{
{
  unsigned char n_strx[4];
  unsigned char n_strx[4];
Line 253... Line 292...
{
{
  unsigned char version[4];
  unsigned char version[4];
  unsigned char reserved[4];
  unsigned char reserved[4];
};
};
 
 
 
struct mach_o_encryption_info_command_external
 
{
 
  unsigned char cryptoff[4];    /* File offset of the encrypted area.  */
 
  unsigned char cryptsize[4];   /* Size of the encrypted area.  */
 
  unsigned char cryptid[4];     /* Encryption method.  */
 
};
 
 
 
struct mach_o_fvmlib_command_external
 
{
 
  unsigned char name[4];        /* Offset of the name.  */
 
  unsigned char minor_version[4];
 
  unsigned char header_addr[4];
 
};
 
 
struct mach_o_fat_header_external
struct mach_o_fat_header_external
{
{
  unsigned char magic[4];
  unsigned char magic[4];
  unsigned char nfat_arch[4];   /* Number of components.  */
  unsigned char nfat_arch[4];   /* Number of components.  */
};
};

powered by: WebSVN 2.1.0

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