daily update
[deliverable/binutils-gdb.git] / bfd / mach-o.h
index 1f7dd604dbf21719bc235f418b1670f1baf5b335..615a4b3eda5846fa787f865fc6059b0162f3495e 100644 (file)
@@ -1,12 +1,12 @@
 /* Mach-O support for BFD.
-   Copyright 1999, 2000, 2001, 2002
+   Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    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
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,7 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #ifndef _BFD_MACH_O_H_
 #define _BFD_MACH_O_H_
 #define BFD_MACH_O_N_EXT   0x01        /* External symbol bit, set for external symbols.  */
 #define BFD_MACH_O_N_UNDF  0x00        /* Undefined, n_sect == NO_SECT.  */
 #define BFD_MACH_O_N_ABS   0x02        /* Absolute, n_sect == NO_SECT.  */
-#define BFD_MACH_O_N_SECT  0x0e        /* Defined in section number n_sect.  */
-#define BFD_MACH_O_N_PBUD  0x0c /* Prebound undefined (defined in a dylib).  */
 #define BFD_MACH_O_N_INDR  0x0a        /* Indirect.  */
+#define BFD_MACH_O_N_PBUD  0x0c /* Prebound undefined (defined in a dylib).  */
+#define BFD_MACH_O_N_SECT  0x0e        /* Defined in section number n_sect.  */
+
+#define BFD_MACH_O_NO_SECT 0
+
+#define BFD_MACH_O_SYM_NTYPE(SYM) (((SYM)->udata.i >> 24) & 0xff)
+#define BFD_MACH_O_SYM_NSECT(SYM) (((SYM)->udata.i >> 16) & 0xff)
+#define BFD_MACH_O_SYM_NDESC(SYM) ((SYM)->udata.i & 0xffff)
 
 typedef enum bfd_mach_o_ppc_thread_flavour
-  {
-    BFD_MACH_O_PPC_THREAD_STATE = 1,
-    BFD_MACH_O_PPC_FLOAT_STATE = 2,
-    BFD_MACH_O_PPC_EXCEPTION_STATE = 3,
-    BFD_MACH_O_PPC_VECTOR_STATE = 4
-  }
+{
+  BFD_MACH_O_PPC_THREAD_STATE = 1,
+  BFD_MACH_O_PPC_FLOAT_STATE = 2,
+  BFD_MACH_O_PPC_EXCEPTION_STATE = 3,
+  BFD_MACH_O_PPC_VECTOR_STATE = 4,
+  BFD_MACH_O_PPC_THREAD_STATE_64 = 5
+}
 bfd_mach_o_ppc_thread_flavour;
 
+/* Defined in <mach/i386/thread_status.h> */
 typedef enum bfd_mach_o_i386_thread_flavour
-  {
-    BFD_MACH_O_i386_NEW_THREAD_STATE = 1,
-    BFD_MACH_O_i386_FLOAT_STATE = 2,
-    BFD_MACH_O_i386_ISA_PORT_MAP_STATE = 3,
-    BFD_MACH_O_i386_V86_ASSIST_STATE = 4,
-    BFD_MACH_O_i386_REGS_SEGS_STATE = 5,
-    BFD_MACH_O_i386_THREAD_SYSCALL_STATE = 6,
-    BFD_MACH_O_i386_THREAD_STATE_NONE = 7,
-    BFD_MACH_O_i386_SAVED_STATE = 8,
-    BFD_MACH_O_i386_THREAD_STATE = -1,
-    BFD_MACH_O_i386_THREAD_FPSTATE = -2,
-    BFD_MACH_O_i386_THREAD_EXCEPTSTATE = -3,
-    BFD_MACH_O_i386_THREAD_CTHREADSTATE = -4,
-  }
+{
+  BFD_MACH_O_x86_THREAD_STATE32 = 1,
+  BFD_MACH_O_x86_FLOAT_STATE32 = 2,
+  BFD_MACH_O_x86_EXCEPTION_STATE32 = 3,
+  BFD_MACH_O_x86_THREAD_STATE64 = 4,
+  BFD_MACH_O_x86_FLOAT_STATE64 = 5,
+  BFD_MACH_O_x86_EXCEPTION_STATE64 = 6,
+  BFD_MACH_O_x86_THREAD_STATE = 7,
+  BFD_MACH_O_x86_FLOAT_STATE = 8,
+  BFD_MACH_O_x86_EXCEPTION_STATE = 9,
+  BFD_MACH_O_x86_DEBUG_STATE32 = 10,
+  BFD_MACH_O_x86_DEBUG_STATE64 = 11,
+  BFD_MACH_O_x86_DEBUG_STATE = 12,
+  BFD_MACH_O_THREAD_STATE_NONE = 13
+}
 bfd_mach_o_i386_thread_flavour;
 
 #define BFD_MACH_O_LC_REQ_DYLD 0x80000000
 
 typedef enum bfd_mach_o_load_command_type
-  {
-    BFD_MACH_O_LC_SEGMENT = 0x1,       /* File segment to be mapped.  */
-    BFD_MACH_O_LC_SYMTAB = 0x2,                /* Link-edit stab symbol table info (obsolete).  */
-    BFD_MACH_O_LC_SYMSEG = 0x3,                /* Link-edit gdb symbol table info.  */
-    BFD_MACH_O_LC_THREAD = 0x4,                /* Thread.  */
-    BFD_MACH_O_LC_UNIXTHREAD = 0x5,    /* UNIX thread (includes a stack).  */
-    BFD_MACH_O_LC_LOADFVMLIB = 0x6,    /* Load a fixed VM shared library.  */
-    BFD_MACH_O_LC_IDFVMLIB = 0x7,      /* Fixed VM shared library id.  */
-    BFD_MACH_O_LC_IDENT = 0x8,         /* Object identification information (obsolete).  */
-    BFD_MACH_O_LC_FVMFILE = 0x9,       /* Fixed VM file inclusion.  */
-    BFD_MACH_O_LC_PREPAGE = 0xa,       /* Prepage command (internal use).  */
-    BFD_MACH_O_LC_DYSYMTAB = 0xb,      /* Dynamic link-edit symbol table info.  */
-    BFD_MACH_O_LC_LOAD_DYLIB = 0xc,    /* Load a dynamically linked shared library.  */
-    BFD_MACH_O_LC_ID_DYLIB = 0xd,      /* Dynamically linked shared lib identification.  */
-    BFD_MACH_O_LC_LOAD_DYLINKER = 0xe, /* Load a dynamic linker.  */
-    BFD_MACH_O_LC_ID_DYLINKER = 0xf,   /* Dynamic linker identification.  */
-    BFD_MACH_O_LC_PREBOUND_DYLIB = 0x10,/* Modules prebound for a dynamically.  */
-    BFD_MACH_O_LC_ROUTINES = 0x11,     /* Image routines.  */
-    BFD_MACH_O_LC_SUB_FRAMEWORK = 0x12,        /* Sub framework.  */
-    BFD_MACH_O_LC_SUB_UMBRELLA = 0x13, /* Sub umbrella.  */
-    BFD_MACH_O_LC_SUB_CLIENT = 0x14,   /* Sub client.  */
-    BFD_MACH_O_LC_SUB_LIBRARY = 0x15,   /* Sub library.  */
-    BFD_MACH_O_LC_TWOLEVEL_HINTS = 0x16,/* Two-level namespace lookup hints.  */
-    BFD_MACH_O_LC_PREBIND_CKSUM = 0x17, /* Prebind checksum.  */
-    /* Load a dynamically linked shared library that is allowed to be
+{
+  BFD_MACH_O_LC_SEGMENT = 0x1,         /* File segment to be mapped.  */
+  BFD_MACH_O_LC_SYMTAB = 0x2,          /* Link-edit stab symbol table info (obsolete).  */
+  BFD_MACH_O_LC_SYMSEG = 0x3,          /* Link-edit gdb symbol table info.  */
+  BFD_MACH_O_LC_THREAD = 0x4,          /* Thread.  */
+  BFD_MACH_O_LC_UNIXTHREAD = 0x5,      /* UNIX thread (includes a stack).  */
+  BFD_MACH_O_LC_LOADFVMLIB = 0x6,      /* Load a fixed VM shared library.  */
+  BFD_MACH_O_LC_IDFVMLIB = 0x7,                /* Fixed VM shared library id.  */
+  BFD_MACH_O_LC_IDENT = 0x8,           /* Object identification information (obsolete).  */
+  BFD_MACH_O_LC_FVMFILE = 0x9,         /* Fixed VM file inclusion.  */
+  BFD_MACH_O_LC_PREPAGE = 0xa,         /* Prepage command (internal use).  */
+  BFD_MACH_O_LC_DYSYMTAB = 0xb,                /* Dynamic link-edit symbol table info.  */
+  BFD_MACH_O_LC_LOAD_DYLIB = 0xc,      /* Load a dynamically linked shared library.  */
+  BFD_MACH_O_LC_ID_DYLIB = 0xd,                /* Dynamically linked shared lib identification.  */
+  BFD_MACH_O_LC_LOAD_DYLINKER = 0xe,   /* Load a dynamic linker.  */
+  BFD_MACH_O_LC_ID_DYLINKER = 0xf,     /* Dynamic linker identification.  */
+  BFD_MACH_O_LC_PREBOUND_DYLIB = 0x10, /* Modules prebound for a dynamically.  */
+  BFD_MACH_O_LC_ROUTINES = 0x11,       /* Image routines.  */
+  BFD_MACH_O_LC_SUB_FRAMEWORK = 0x12,  /* Sub framework.  */
+  BFD_MACH_O_LC_SUB_UMBRELLA = 0x13,   /* Sub umbrella.  */
+  BFD_MACH_O_LC_SUB_CLIENT = 0x14,     /* Sub client.  */
+  BFD_MACH_O_LC_SUB_LIBRARY = 0x15,    /* Sub library.  */
+  BFD_MACH_O_LC_TWOLEVEL_HINTS = 0x16, /* Two-level namespace lookup hints.  */
+  BFD_MACH_O_LC_PREBIND_CKSUM = 0x17,  /* Prebind checksum.  */
+  /* Load a dynamically linked shared library that is allowed to be
        missing (weak).  */
-    BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18
-  }
+  BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18,
+  BFD_MACH_O_LC_SEGMENT_64 = 0x19,     /* 64-bit segment of this file to be 
+                                           mapped.  */
+  BFD_MACH_O_LC_ROUTINES_64 = 0x1a,     /* Address of the dyld init routine 
+                                           in a dylib.  */
+  BFD_MACH_O_LC_UUID = 0x1b,            /* 128-bit UUID of the executable.  */
+  BFD_MACH_O_LC_RPATH = 0x1c,          /* Run path addiions.  */
+  BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature.  */
+  BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg.  */
+  BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f,  /* Load and re-export lib.  */
+  BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use.  */
+  BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21  /* Encrypted segment info.  */
+}
 bfd_mach_o_load_command_type;
 
+#define BFD_MACH_O_CPU_IS64BIT 0x1000000
+
 typedef enum bfd_mach_o_cpu_type
-  {
-    BFD_MACH_O_CPU_TYPE_VAX = 1,
-    BFD_MACH_O_CPU_TYPE_MC680x0 = 6,
-    BFD_MACH_O_CPU_TYPE_I386 = 7,
-    BFD_MACH_O_CPU_TYPE_MIPS = 8,
-    BFD_MACH_O_CPU_TYPE_MC98000 = 10,
-    BFD_MACH_O_CPU_TYPE_HPPA = 11,
-    BFD_MACH_O_CPU_TYPE_ARM = 12,
-    BFD_MACH_O_CPU_TYPE_MC88000 = 13,
-    BFD_MACH_O_CPU_TYPE_SPARC = 14,
-    BFD_MACH_O_CPU_TYPE_I860 = 15,
-    BFD_MACH_O_CPU_TYPE_ALPHA = 16,
-    BFD_MACH_O_CPU_TYPE_POWERPC = 18
-  }
+{
+  BFD_MACH_O_CPU_TYPE_VAX = 1,
+  BFD_MACH_O_CPU_TYPE_MC680x0 = 6,
+  BFD_MACH_O_CPU_TYPE_I386 = 7,
+  BFD_MACH_O_CPU_TYPE_MIPS = 8,
+  BFD_MACH_O_CPU_TYPE_MC98000 = 10,
+  BFD_MACH_O_CPU_TYPE_HPPA = 11,
+  BFD_MACH_O_CPU_TYPE_ARM = 12,
+  BFD_MACH_O_CPU_TYPE_MC88000 = 13,
+  BFD_MACH_O_CPU_TYPE_SPARC = 14,
+  BFD_MACH_O_CPU_TYPE_I860 = 15,
+  BFD_MACH_O_CPU_TYPE_ALPHA = 16,
+  BFD_MACH_O_CPU_TYPE_POWERPC = 18,
+  BFD_MACH_O_CPU_TYPE_POWERPC_64 = (BFD_MACH_O_CPU_TYPE_POWERPC | BFD_MACH_O_CPU_IS64BIT),
+  BFD_MACH_O_CPU_TYPE_X86_64 = (BFD_MACH_O_CPU_TYPE_I386 | BFD_MACH_O_CPU_IS64BIT)
+}
 bfd_mach_o_cpu_type;
 
 typedef enum bfd_mach_o_filetype
-  {
-    BFD_MACH_O_MH_OBJECT = 1,
-    BFD_MACH_O_MH_EXECUTE = 2,
-    BFD_MACH_O_MH_FVMLIB = 3,
-    BFD_MACH_O_MH_CORE = 4,
-    BFD_MACH_O_MH_PRELOAD = 5,
-    BFD_MACH_O_MH_DYLIB = 6,
-    BFD_MACH_O_MH_DYLINKER = 7,
-    BFD_MACH_O_MH_BUNDLE = 8
-  }
+{
+  BFD_MACH_O_MH_OBJECT = 1,
+  BFD_MACH_O_MH_EXECUTE = 2,
+  BFD_MACH_O_MH_FVMLIB = 3,
+  BFD_MACH_O_MH_CORE = 4,
+  BFD_MACH_O_MH_PRELOAD = 5,
+  BFD_MACH_O_MH_DYLIB = 6,
+  BFD_MACH_O_MH_DYLINKER = 7,
+  BFD_MACH_O_MH_BUNDLE = 8
+}
 bfd_mach_o_filetype;
 
 /* Constants for the type of a section.  */
 
 typedef enum bfd_mach_o_section_type
-  {
-    /* Regular section.  */
-    BFD_MACH_O_S_REGULAR = 0x0,
+{
+  /* Regular section.  */
+  BFD_MACH_O_S_REGULAR = 0x0,
 
-    /* Zero fill on demand section.  */
-    BFD_MACH_O_S_ZEROFILL = 0x1,
+  /* Zero fill on demand section.  */
+  BFD_MACH_O_S_ZEROFILL = 0x1,
 
-    /* Section with only literal C strings.  */
-    BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
+  /* Section with only literal C strings.  */
+  BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
 
-    /* Section with only 4 byte literals.  */
-    BFD_MACH_O_S_4BYTE_LITERALS = 0x3,
+  /* Section with only 4 byte literals.  */
+  BFD_MACH_O_S_4BYTE_LITERALS = 0x3,
 
-    /* Section with only 8 byte literals.  */
-    BFD_MACH_O_S_8BYTE_LITERALS = 0x4,
+  /* Section with only 8 byte literals.  */
+  BFD_MACH_O_S_8BYTE_LITERALS = 0x4,
 
-    /* Section with only pointers to literals.  */
-    BFD_MACH_O_S_LITERAL_POINTERS = 0x5,
+  /* Section with only pointers to literals.  */
+  BFD_MACH_O_S_LITERAL_POINTERS = 0x5,
 
-    /* For the two types of symbol pointers sections and the symbol stubs
-       section they have indirect symbol table entries.  For each of the
-       entries in the section the indirect symbol table entries, in
-       corresponding order in the indirect symbol table, start at the index
-       stored in the reserved1 field of the section structure.  Since the
-       indirect symbol table entries correspond to the entries in the
-       section the number of indirect symbol table entries is inferred from
-       the size of the section divided by the size of the entries in the
-       section.  For symbol pointers sections the size of the entries in
-       the section is 4 bytes and for symbol stubs sections the byte size
-       of the stubs is stored in the reserved2 field of the section
-       structure.  */
+  /* For the two types of symbol pointers sections and the symbol stubs
+     section they have indirect symbol table entries.  For each of the
+     entries in the section the indirect symbol table entries, in
+     corresponding order in the indirect symbol table, start at the index
+     stored in the reserved1 field of the section structure.  Since the
+     indirect symbol table entries correspond to the entries in the
+     section the number of indirect symbol table entries is inferred from
+     the size of the section divided by the size of the entries in the
+     section.  For symbol pointers sections the size of the entries in
+     the section is 4 bytes and for symbol stubs sections the byte size
+     of the stubs is stored in the reserved2 field of the section
+     structure.  */
 
-    /* Section with only non-lazy symbol pointers.  */
-    BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS = 0x6,
+  /* Section with only non-lazy symbol pointers.  */
+  BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS = 0x6,
 
-    /* Section with only lazy symbol pointers.  */
-    BFD_MACH_O_S_LAZY_SYMBOL_POINTERS = 0x7,
+  /* Section with only lazy symbol pointers.  */
+  BFD_MACH_O_S_LAZY_SYMBOL_POINTERS = 0x7,
 
-    /* Section with only symbol stubs, byte size of stub in the reserved2 field.  */
-    BFD_MACH_O_S_SYMBOL_STUBS = 0x8,
+  /* Section with only symbol stubs, byte size of stub in the reserved2 field.  */
+  BFD_MACH_O_S_SYMBOL_STUBS = 0x8,
 
-    /* Section with only function pointers for initialization.  */
-    BFD_MACH_O_S_MOD_INIT_FUNC_POINTERS = 0x9
-  }
+  /* Section with only function pointers for initialization.  */
+  BFD_MACH_O_S_MOD_INIT_FUNC_POINTERS = 0x9
+}
 bfd_mach_o_section_type;
 
+/* The flags field of a section structure is separated into two parts a section
+   type and section attributes.  The section types are mutually exclusive (it
+   can only have one type) but the section attributes are not (it may have more
+   than one attribute).  */
+
+#define BFD_MACH_O_SECTION_TYPE_MASK        0x000000ff
+
+/* Constants for the section attributes part of the flags field of a section
+   structure.  */
+#define BFD_MACH_O_SECTION_ATTRIBUTES_MASK  0xffffff00
+/* System setable attributes.  */
+#define BFD_MACH_O_SECTION_ATTRIBUTES_SYS   0x00ffff00
+/* User attributes.  */   
+#define BFD_MACH_O_SECTION_ATTRIBUTES_USR   0xff000000
+
+/* Section has local relocation entries.  */
+#define BFD_MACH_O_S_ATTR_LOC_RELOC         0x00000100
+
+/* Section has external relocation entries.  */  
+#define BFD_MACH_O_S_ATTR_EXT_RELOC         0x00000200
+
+/* Section contains some machine instructions.  */
+#define BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS 0x00004000
+
+#define BFD_MACH_O_S_ATTR_DEBUG             0x02000000
+
+/* Section contains only true machine instructions.  */
+#define BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS 0x80000000
+
 typedef unsigned long bfd_mach_o_cpu_subtype;
 
 typedef struct bfd_mach_o_header
@@ -182,6 +236,9 @@ typedef struct bfd_mach_o_header
   unsigned long ncmds;
   unsigned long sizeofcmds;
   unsigned long flags;
+  unsigned int reserved;
+  /* Version 1: 32 bits, version 2: 64 bits.  */
+  unsigned int version;
   enum bfd_endian byteorder;
 }
 bfd_mach_o_header;
@@ -200,16 +257,19 @@ typedef struct bfd_mach_o_section
   unsigned long flags;
   unsigned long reserved1;
   unsigned long reserved2;
+  unsigned long reserved3;
 }
 bfd_mach_o_section;
 
 typedef struct bfd_mach_o_segment_command
 {
-  char segname[16];
+  char segname[16 + 1];
   bfd_vma vmaddr;
   bfd_vma vmsize;
   bfd_vma fileoff;
   unsigned long filesize;
+  unsigned long maxprot;       /* Maximum permitted protection.  */
+  unsigned long initprot;      /* Initial protection.  */
   unsigned long nsects;
   unsigned long flags;
   bfd_mach_o_section *sections;
@@ -217,6 +277,11 @@ typedef struct bfd_mach_o_segment_command
 }
 bfd_mach_o_segment_command;
 
+/* Protection flags.  */
+#define BFD_MACH_O_PROT_READ    0x01
+#define BFD_MACH_O_PROT_WRITE   0x02
+#define BFD_MACH_O_PROT_EXECUTE 0x04
+
 typedef struct bfd_mach_o_symtab_command
 {
   unsigned long symoff;
@@ -376,8 +441,8 @@ bfd_mach_o_dysymtab_command;
    removed.  In which case it has the value INDIRECT_SYMBOL_LOCAL.  If the
    symbol was also absolute INDIRECT_SYMBOL_ABS is or'ed with that.  */
 
-#define INDIRECT_SYMBOL_LOCAL 0x80000000
-#define INDIRECT_SYMBOL_ABS   0x40000000
+#define BFD_MACH_O_INDIRECT_SYMBOL_LOCAL 0x80000000
+#define BFD_MACH_O_INDIRECT_SYMBOL_ABS   0x40000000
 
 typedef struct bfd_mach_o_thread_flavour
 {
@@ -397,10 +462,10 @@ bfd_mach_o_thread_command;
 
 typedef struct bfd_mach_o_dylinker_command
 {
-  unsigned long cmd;                   /* LC_ID_DYLIB or LC_LOAD_DYLIB.  */
-  unsigned long cmdsize;               /* Includes pathname string.  */
-  unsigned long name_offset;           /* Offset to library's path name.  */
-  unsigned long name_len;              /* Offset to library's path name.  */
+  unsigned long cmd;                 /* LC_ID_DYLINKER or LC_LOAD_DYLINKER.  */
+  unsigned long cmdsize;             /* Includes pathname string.  */
+  unsigned long name_offset;         /* Offset to library's path name.  */
+  unsigned long name_len;            /* Offset to library's path name.  */
   asection *section;
 }
 bfd_mach_o_dylinker_command;
@@ -429,6 +494,15 @@ typedef struct bfd_mach_o_prebound_dylib_command
 }
 bfd_mach_o_prebound_dylib_command;
 
+typedef struct bfd_mach_o_uuid_command
+{
+  unsigned long cmd;                 /* LC_PREBOUND_DYLIB.  */
+  unsigned long cmdsize;             /* Includes uuid.  */
+  unsigned char uuid[16];           /* Uuid.  */
+  asection *section;
+}
+bfd_mach_o_uuid_command;
+
 typedef struct bfd_mach_o_load_command
 {
   bfd_mach_o_load_command_type type;
@@ -444,6 +518,7 @@ typedef struct bfd_mach_o_load_command
     bfd_mach_o_dylib_command dylib;
     bfd_mach_o_dylinker_command dylinker;
     bfd_mach_o_prebound_dylib_command prebound_dylib;
+    bfd_mach_o_uuid_command uuid;
   }
   command;
 }
@@ -461,48 +536,30 @@ typedef struct mach_o_data_struct
 }
 mach_o_data_struct;
 
+#define bfd_get_mach_o_data(abfd) ((abfd)->tdata.mach_o_data)
+
 typedef struct mach_o_data_struct bfd_mach_o_data_struct;
 
-bfd_boolean bfd_mach_o_valid
-  PARAMS ((bfd *));
-int bfd_mach_o_scan_read_symtab_symbol
-  PARAMS ((bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long));
-int bfd_mach_o_scan_read_symtab_strtab
-  PARAMS ((bfd *, bfd_mach_o_symtab_command *));
-int bfd_mach_o_scan_read_symtab_symbols
-  PARAMS ((bfd *, bfd_mach_o_symtab_command *));
-int bfd_mach_o_scan_read_dysymtab_symbol
-  PARAMS ((bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *,
-          asymbol *, unsigned long));
-int bfd_mach_o_scan_start_address
-  PARAMS ((bfd *));
-int bfd_mach_o_scan
-  PARAMS ((bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *));
-bfd_boolean bfd_mach_o_mkobject
-  PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_object_p
-  PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_core_p
-  PARAMS ((bfd *));
-const bfd_target * bfd_mach_o_archive_p
-  PARAMS ((bfd *));
-bfd * bfd_mach_o_openr_next_archived_file
-  PARAMS ((bfd *, bfd *));
-int bfd_mach_o_lookup_section
-  PARAMS ((bfd *, asection *, bfd_mach_o_load_command **,
-          bfd_mach_o_section **));
-int bfd_mach_o_lookup_command
-  PARAMS ((bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **));
-unsigned long bfd_mach_o_stack_addr
-  PARAMS ((enum bfd_mach_o_cpu_type));
-int bfd_mach_o_core_fetch_environment
-  PARAMS ((bfd *, unsigned char **, unsigned int *));
-char * bfd_mach_o_core_file_failing_command
-  PARAMS ((bfd *));
-int bfd_mach_o_core_file_failing_signal
-  PARAMS ((bfd *));
-bfd_boolean bfd_mach_o_core_file_matches_executable_p
-  PARAMS ((bfd *, bfd *));
+bfd_boolean        bfd_mach_o_valid  (bfd *);
+int                bfd_mach_o_scan_read_symtab_symbol        (bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long);
+int                bfd_mach_o_scan_read_symtab_strtab        (bfd *, bfd_mach_o_symtab_command *);
+int                bfd_mach_o_scan_read_symtab_symbols       (bfd *, bfd_mach_o_symtab_command *);
+int                bfd_mach_o_scan_read_dysymtab_symbol      (bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *, asymbol *, unsigned long);
+int                bfd_mach_o_scan_start_address             (bfd *);
+int                bfd_mach_o_scan                           (bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *);
+bfd_boolean        bfd_mach_o_mkobject                       (bfd *);
+const bfd_target * bfd_mach_o_object_p                       (bfd *);
+const bfd_target * bfd_mach_o_core_p                         (bfd *);
+const bfd_target * bfd_mach_o_archive_p                      (bfd *);
+bfd *              bfd_mach_o_openr_next_archived_file       (bfd *, bfd *);
+int                bfd_mach_o_lookup_section                 (bfd *, asection *, bfd_mach_o_load_command **, bfd_mach_o_section **);
+int                bfd_mach_o_lookup_command                 (bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **);
+unsigned long      bfd_mach_o_stack_addr                     (enum bfd_mach_o_cpu_type);
+int                bfd_mach_o_core_fetch_environment         (bfd *, unsigned char **, unsigned int *);
+char *             bfd_mach_o_core_file_failing_command      (bfd *);
+int                bfd_mach_o_core_file_failing_signal       (bfd *);
+bfd_boolean        bfd_mach_o_core_file_matches_executable_p (bfd *, bfd *);
+bfd *bfd_mach_o_fat_extract (bfd *, bfd_format , const bfd_arch_info_type *);
 
 extern const bfd_target mach_o_be_vec;
 extern const bfd_target mach_o_le_vec;
This page took 0.030429 seconds and 4 git commands to generate.