GNU General Public License for more details.
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _BFD_MACH_O_H_
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 dynamicly linked shared library. */
- BFD_MACH_O_LC_ID_DYLIB = 0xd, /* Dynamicly linked shared lib identification. */
+ 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 dynamicly. */
+ 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_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 dynamicly linked shared library that is allowed to be
+ /* Load a dynamically linked shared library that is allowed to be
missing (weak). */
BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18
}
typedef enum bfd_mach_o_section_type
{
/* Regular section. */
- BFD_MACH_O_S_REGULAR = 0x0,
+ BFD_MACH_O_S_REGULAR = 0x0,
/* Zero fill on demand section. */
BFD_MACH_O_S_ZEROFILL = 0x1,
/* Section with only literal C strings. */
- BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
+ BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
/* Section with only 4 byte literals. */
BFD_MACH_O_S_4BYTE_LITERALS = 0x3,
/* 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 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
}
bfd_mach_o_symtab_command;
/* This is the second set of the symbolic information which is used to support
- the data structures for the dynamicly link editor.
-
+ the data structures for the dynamically link editor.
+
The original set of symbolic information in the symtab_command which contains
the symbol and string tables must also be present when this load command is
present. When this load command is present the symbol table is organized
undefined external symbols (sorted by name)
In this load command there are offsets and counts to each of the three groups
of symbols.
-
+
This load command contains a the offsets and sizes of the following new
symbolic information tables:
table of contents
reference symbol table
indirect symbol table
The first three tables above (the table of contents, module table and
- reference symbol table) are only present if the file is a dynamicly linked
+ reference symbol table) are only present if the file is a dynamically linked
shared library. For executable and object modules, which are files
containing only one module, the information that would be in these three
tables is determined as follows:
module table - the file contains only one module so everything in the
file is part of the module.
reference symbol table - is the defined and undefined external symbols
-
- For dynamicly linked shared library files this load command also contains
+
+ For dynamically linked shared library files this load command also contains
offsets and sizes to the pool of relocation entries for all sections
separated into two groups:
external relocation entries
local symbols (further grouped by the module they are from)
defined external symbols (further grouped by the module they are from)
undefined symbols
-
+
The local symbols are used only for debugging. The dynamic binding
process may have to use them to indicate to the debugger the local
symbols for a module that is being bound.
-
+
The last two groups are used by the dynamic binding process to do the
binding (indirectly through the module table and the reference symbol
- table when this is a dynamicly linked shared library file). */
+ table when this is a dynamically linked shared library file). */
unsigned long ilocalsym; /* Index to local symbols. */
unsigned long nlocalsym; /* Number of local symbols. */
/* For the for the dynamic binding process to find which module a symbol
is defined in the table of contents is used (analogous to the ranlib
structure in an archive) which maps defined external symbols to modules
- they are defined in. This exists only in a dynamicly linked shared
+ they are defined in. This exists only in a dynamically linked shared
library file. For executable and object modules the defined external
symbols are sorted by name and is use as the table of contents. */
table must reflect the modules that the file was created from. This is
done by having a module table that has indexes and counts into the merged
tables for each module. The module structure that these two entries
- refer to is described below. This exists only in a dynamicly linked
+ refer to is described below. This exists only in a dynamically linked
shared library file. For executable and object modules the file only
contains one module so everything in the file belongs to the module. */
indicates the external references (defined and undefined) each module
makes. For each module there is an offset and a count into the
reference symbol table for the symbols that the module references.
- This exists only in a dynamicly linked shared library file. For
+ This exists only in a dynamically linked shared library file. For
executable and object modules the defined external symbols and the
undefined external symbols indicates the external references. */
/* All the local relocation entries are grouped together (they are not
grouped by their module since they are only used if the object is moved
- from it staticly link edited address). */
+ from it statically link edited address). */
unsigned long locreloff; /* Offset to local relocation entries. */
unsigned long nlocrel; /* Number of local relocation entries. */
}
-bfd_mach_o_dysymtab_command;
+bfd_mach_o_dysymtab_command;
-/* An indirect symbol table entry is simply a 32bit index into the symbol table
+/* An indirect symbol table entry is simply a 32bit index into the symbol table
to the symbol that the pointer or stub is refering to. Unless it is for a
- non-lazy symbol pointer section for a defined symbol which strip(1) as
+ non-lazy symbol pointer section for a defined symbol which strip(1) as
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. */
typedef struct bfd_mach_o_thread_command
{
unsigned long nflavours;
- bfd_mach_o_thread_flavour *flavours;
+ bfd_mach_o_thread_flavour *flavours;
asection *section;
}
bfd_mach_o_thread_command;
typedef struct mach_o_data_struct bfd_mach_o_data_struct;
-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 *));
-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 *));
-boolean bfd_mach_o_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
+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 *));
extern const bfd_target mach_o_be_vec;
extern const bfd_target mach_o_le_vec;