159 lines
40 KiB
HTML
Raw Permalink Normal View History

2019-09-06 15:57:44 -07:00
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `load_command` mod in crate `goblin`."><meta name="keywords" content="rust, rustlang, rust-lang, load_command"><title>goblin::mach::load_command - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../goblin/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module load_command</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'><a href='../../index.html'>goblin</a>::<wbr><a href='../index.html'>mach</a></p><script>window.sidebarCurrent = {name: 'load_command', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/goblin/mach/load_command.rs.html#1-1515' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>goblin</a>::<wbr><a href='../index.html'>mach</a>::<wbr><a class="mod" href=''>load_command</a></span></h1><div class='docblock'><p>Load commands tell the kernel and dynamic linker anything from how to load this binary into memory, what the entry point is, apple specific information, to which libraries it requires for dynamic linking</p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.DataInCodeEntry.html" title='goblin::mach::load_command::DataInCodeEntry struct'>DataInCodeEntry</a></td><td class='docblock-short'><p>The LC_DATA_IN_CODE load commands uses a linkedit_data_command
to point to an array of data_in_code_entry entries. Each entry
describes a range of data in a code section.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DyldInfoCommand.html" title='goblin::mach::load_command::DyldInfoCommand struct'>DyldInfoCommand</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Dylib.html" title='goblin::mach::load_command::Dylib struct'>Dylib</a></td><td class='docblock-short'><p>A dynamically linked shared library (fipub constype == MH_DYLIB in the mach header)
contains a dylib_command (cmd == LC_ID_DYLIB) to identify the library.
An object that uses a dynamically linked shared library also contains a
dylib_command (cmd == LC_LOAD_DYLIB, LC_LOAD_WEAK_DYLIB, or
LC_REEXPORT_DYLIB) for each library it uses.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DylibCommand.html" title='goblin::mach::load_command::DylibCommand struct'>DylibCommand</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.DylibModule.html" title='goblin::mach::load_command::DylibModule struct'>DylibModule</a></td><td class='docblock-short'><p>a module table entry</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DylibModule64.html" title='goblin::mach::load_command::DylibModule64 struct'>DylibModule64</a></td><td class='docblock-short'><p>a 64-bit module table entry</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DylibReference.html" title='goblin::mach::load_command::DylibReference struct'>DylibReference</a></td><td class='docblock-short'><p>The entries in the reference symbol table are used when loading the module
(both by the static and dynamic link editors) and if the module is unloaded
or replaced. Therefore all external symbols (defined and undefined) are
listed in the module's reference table. The flags describe the type of
reference that is being made. The constants for the flags are defined in
&lt;mach-o/nlist.h&gt; as they are also used for symbol table entries.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DylibTableOfContents.html" title='goblin::mach::load_command::DylibTableOfContents struct'>DylibTableOfContents</a></td><td class='docblock-short'><p>a table of contents entry</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DylinkerCommand.html" title='goblin::mach::load_command::DylinkerCommand struct'>DylinkerCommand</a></td><td class='docblock-short'><p>The name of the dynamic linker</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DysymtabCommand.html" title='goblin::mach::load_command::DysymtabCommand struct'>DysymtabCommand</a></td><td class='docblock-short'><p>This is the second set of the symbolic information which is used to support
the data structures for the dynamically link editor.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.EncryptionInfoCommand32.html" title='goblin::mach::load_command::EncryptionInfoCommand32 struct'>EncryptionInfoCommand32</a></td><td class='docblock-short'><p>The encryption_info_command contains the file offset and size of an
of an encrypted segment.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.EncryptionInfoCommand64.html" title='goblin::mach::load_command::EncryptionInfoCommand64 struct'>EncryptionInfoCommand64</a></td><td class='docblock-short'><p>The encryption_info_command_64 contains the file offset and size of an
of an encrypted segment (for use in x86_64 targets).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.EntryPointCommand.html" title='goblin::mach::load_command::EntryPointCommand struct'>EntryPointCommand</a></td><td class='docblock-short'><p>The entry_point_command is a replacement for thread_command.
It is used for main executables to specify the location (file offset)
of main(). If -stack_size was used at link time, the stacksize
field will contain the stack size need for the main thread.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.FvmfileCommand.html" title='goblin::mach::load_command::FvmfileCommand struct'>FvmfileCommand</a></td><td class='docblock-short'><p>The fvmfile_command contains a reference to a file to be loaded at the
specified virtual address. (Presently, this command is reserved for
internal use. The kernel ignores this command when loading a program into
memory).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Fvmlib.html" title='goblin::mach::load_command::Fvmlib struct'>Fvmlib</a></td><td class='docblock-short'><p>Fixed virtual memory shared libraries are identified by two things. The
target pathname (the name of the library as found for execution), and the
minor version number. The address of where the headers are loaded is in
header_addr. (THIS IS OBSOLETE and no longer supported).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.FvmlibCommand.html" title='goblin::mach::load_command::FvmlibCommand struct'>FvmlibCommand</a></td><td class='docblock-short'><p>A fixed virtual shared library (fipub constype == MH_FVMLIB in the mach header)
contains a fvmlib_command (cmd == LC_IDFVMLIB) to identify the library.
An object that uses a fixed virtual shared library also contains a
fvmlib_command (cmd == LC_LOADFVMLIB) for each library it uses.
(THIS IS OBSOLETE and no longer supported).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.IdentCommand.html" title='goblin::mach::load_command::IdentCommand struct'>IdentCommand</a></td><td class='docblock-short'><p>The ident_command contains a free format string table following the
ident_command structure. The strings are null terminated and the size of
the command is padded out with zero bytes to a multiple of 4 bytes/
(THIS IS OBSOLETE and no longer supported).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.LinkeditDataCommand.html" title='goblin::mach::load_command::LinkeditDataCommand struct'>LinkeditDataCommand</a></td><td class='docblock-short'><p>The linkedit_data_command contains the offsets and sizes of a blob
of data in the __LINKEDIT segment.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.LinkerOptionCommand.html" title='goblin::mach::load_command::LinkerOptionCommand struct'>LinkerOptionCommand</a></td><td class='docblock-short'><p>The linker_option_command contains linker options embedded in object files.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.LoadCommand.html" title='goblin::mach::load_command::LoadCommand struct'>LoadCommand</a></td><td class='docblock-short'><p>A tagged LoadCommand union</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.LoadCommandHeader.html" title='goblin::mach::load_command::LoadCommandHeader struct'>LoadCommandHeader</a></td><td class='docblock-short'><p>Occurs at the beginning of every load command to serve as a sort of tagged union/enum discriminant</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.PrebindCksumCommand.html" title='goblin::mach::load_command::PrebindCksumCommand struct'>PrebindCksumCommand</a></td><td class='docblock-short'><p>The prebind_cksum_command contains the value of the original check sum for
prebound files or zero. When a prebound file is first created or modified
for other than updating its prebinding information the value of the check sum
is set to zero. When the file has it prebinding re-done and if the value of
the check sum is zero the original check sum is calculated and stored in
cksum field of this load command in the output file. If when the prebinding
is re-done and the cksum field is non-zero it is left unchanged from the
input file.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.PreboundDylibCommand.html" title='goblin::mach::load_command::PreboundDylibCommand struct'>PreboundDylibCommand</a></td><td class='docblock-short'><p>A program (type == MH_EXECUTE) that is
prebound to its dynamic libraries has one of these for each library that
the static linker used in prebinding. It contains a bit vector for the
modules in the library. The bits indicate which modules are bound (1) and
which are not (0) from the library. The bit for module 0 is the low bit
of the first byte. So the bit for the Nth module is:
(linked_modules[N/8] &gt;&gt; N%8) &amp; 1</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.RoutinesCommand32.html" title='goblin::mach::load_command::RoutinesCommand32 struct'>RoutinesCommand32</a></td><td class='docblock-short'><p>The routines command contains the address of the dynamic shared library
initialization routine and an index into the module table for the module
that defines the routine. Before any modules are used from the library the
dynamic linker fully binds the module that defines the initialization routine
and then calls it. This gets called before any module initialization
routines (used for C++ static constructors) in the library.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.RoutinesCommand64.html" title='goblin::mach::load_command::RoutinesCommand64 struct'>RoutinesCommand64</a></td><td class='docblock-short'><p>The 64-bit routines command. Same use as above.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.RpathCommand.html" title='goblin::mach::load_command::RpathCommand struct'>RpathCommand</a></td><td class='docblock-short'><p>The rpath_command contains a path which at runtime should be added to
the current run path used to find @rpath prefixed dylibs.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Section32.html" title='goblin::mach::load_command::Section32 struct'>Section32</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Section64.html" title='goblin::mach::load_command::Section64 struct'>Section64</a></td><td class='docblock-short'><p>for 64-bit architectures</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SegmentCommand32.html" title='goblin::mach::load_command::SegmentCommand32 struct'>SegmentCommand32</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.SegmentCommand64.html" title='goblin::mach::load_command::SegmentCommand64 struct'>SegmentCommand64</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.SourceVersionCommand.html" title='goblin::mach::load_command::SourceVersionCommand struct'>SourceVersionCommand</a></td><td class='docblock-short'><p>The source_version_command is an optional load command containing
the version of the sources used to build the binary.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SubClientCommand.html" title='goblin::mach::load_command::SubClientCommand struct'>SubClientCommand</a></td><td class='docblock-short'><p>For dynamically linked shared libraries that are subframework of an umbrella
framework they can allow clients other than the umbrella framework or other
subframeworks in the same umbrella framework. To do this the subframework
is built with &quot;-allowable_client client_name&quot; and an LC_SUB_CLIENT load
command is created for each -allowable_client flag. The client_name is
usually a framework name. It can also be a name used for bundles clients
where the bundle is built with &quot;-client_name client_name&quot;.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SubFrameworkCommand.html" title='goblin::mach::load_command::SubFrameworkCommand struct'>SubFrameworkCommand</a></td><td class='docblock-short'><p>A dynamically linked shared library may be a subframework of an umbrella
framework. If so it will be linked with &quot;-umbrella umbrella_name&quot; where
Where &quot;umbrella_name&quot; is the name of the umbrella framework. A subframework
can only be linked against by its umbrella framework or other subframeworks
that are part of the same umbrella framework. Otherwise the static link
editor produces an error and states to link against the umbrella framework.
The name of the umbrella framework for subframeworks is recorded in the
following structure.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SubLibraryCommand.html" title='goblin::mach::load_command::SubLibraryCommand struct'>SubLibraryCommand</a></td><td class='docblock-short'><p>A dynamically linked shared library may be a sub_library of another shared
library. If so it will be linked with &quot;-sub_library library_name&quot; where
Where &quot;library_name&quot; is the name of the sub_library shared library. When
staticly linking when -twolevel_namespace is in effect a twolevel namespace
shared library will only cause its subframeworks and those frameworks
listed as sub_umbrella frameworks and libraries listed as sub_libraries to
be implicited linked in. Any other dependent dynamic libraries will not be
linked it when -twolevel_namespace is in effect. The primary library
recorded by the static linker when resolving a symbol in these libraries
will be the umbrella framework (or dynamic library). Zero or more sub_library
shared libraries may be use by an umbrella framework or (or dynamic library).
The name of a sub_library framework is recorded in the following structure.
For example /usr/lib/libobjc_profile.A.dylib would be recorded as &quot;libobjc&quot;.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SubUmbrellaCommand.html" title='goblin::mach::load_command::SubUmbrellaCommand struct'>SubUmbrellaCommand</a></td><td class='docblock-short'><p>A dynamically linked shared library may be a sub_umbrella of an umbrella
framework. If so it will be linked with &quot;-sub_umbrella umbrella_name&quot; where
Where &quot;umbrella_name&quot; is the name of the sub_umbrella framework. When
staticly linking when -twolevel_namespace is in effect a twolevel namespace
umbrella framework will only cause its subframeworks and those frameworks
listed as sub_umbrella frameworks to be implicited linked in. Any other
dependent dynamic libraries will not be linked it when -twolevel_namespace
is in effect. The primary library recorded by the static linker when
resolving a symbol in these libraries will be the umbrella framework.
Zero or more sub_umbrella frameworks may be use by an umbrella framework.
The name of a sub_umbrella framework is recorded in the following structure.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SymsegCommand.html" title='goblin::mach::load_command::SymsegCommand struct'>SymsegCommand</a></td><td class='docblock-short'><p>The symseg_command contains the offset and size of the GNU style
symbol table information as described in the header file &lt;symseg.h&gt;.
The symbol roots of the symbol segments must also be aligned properly
in the file. So the requirement of keeping the offsets aligned to a
multiple of a 4 bytes translates to the length field of the symbol
roots also being a multiple of a long. Also the padding must again be
zeroed. (THIS IS OBSOLETE and no longer supported).</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SymtabCommand.html" title='goblin::mach::load_command::SymtabCommand struct'>SymtabCommand</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.ThreadCommand.html" title='goblin::mach::load_command::ThreadCommand struct'>ThreadCommand</a></td><td class='docblock-short'><p>Thread commands contain machine-specific data structures suitable for
use in the thread state primitives. The machine specific data structures
follow the struct thread_command as follows.
Each flavor of machine specific data structure is preceded by an unsigned
long constant for the flavor of that data structure, an uint32_t
that is the count of longs of the size of the state data structure and then
the state data structure follows. This triple may be repeated for many
flavors. The constants for the flavors, counts and state data structure
definitions are expected to be in the header file &lt;machine/thread_status.h&gt;.
These machine specific data structures sizes must be multiples of
4 bytes The cmdsize reflects the total size of the thread_command
and all of the sizes of the constants for the flavors, counts and state
data structures.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.TwolevelHint.html" title='goblin::mach::load_command::TwolevelHint struct'>TwolevelHint</a></td><td class='docblock-short'><p>The entries in the two-level namespace lookup hints table are twolevel_hint
structs. These provide hints to the dynamic link editor where to start
looking for an undefined symbol in a two-level namespace image. The
isub_image field is an index into the sub-images (sub-frameworks and
sub-umbrellas list) that made up the two-level image that the undefined
symbol was found in when it was built by the static link editor. If
isub-image is 0 the the symbol is expected to be defined in library and not
in the sub-images. If isub-image is non-zero it is an index into the array
of sub-images for the umbrella with the first index in the sub-images being</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.TwolevelHintsCommand.html" title='goblin::mach::load_command::TwolevelHintsCommand struct'>TwolevelHintsCommand</a></td><td class='docblock-short'><p>The twolevel_hints_command contains the offset and number of hints in the
two-level namespace lookup hints table.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.UuidCommand.html" title='goblin::mach::load_command::UuidCommand struct'>UuidCommand</a></td><td class='docblock-short'><p>The uuid load command contains a single 128-bit unique random number that
identifies an object produced by the static link editor.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.VersionMinCommand.html" title='goblin::mach::load_command::VersionMinCommand struct'>VersionMinCommand</a></td><td class='docblock-short'><p>The version_min_command contains the min OS version on which this
binary was built to run.</p>
</td></tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table><tr class='module-item'><td><a class="enum" href="enum.CommandVariant.html" title='goblin::mach::load_command::CommandVariant enum'>CommandVariant</a></td><td class='docblock-short'><p>The various load commands as a cast-free variant/enum</p>
</td></tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table><tr class='module-item'><td><a class="constant" href="constant.LC_CODE_SIGNATURE.html" title='goblin::mach::load_command::LC_CODE_SIGNATURE constant'>LC_CODE_SIGNATURE</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DATA_IN_CODE.html" title='goblin::mach::load_command::LC_DATA_IN_CODE constant'>LC_DATA_IN_CODE</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DYLD_ENVIRONMENT.html" title='goblin::mach::load_command::LC_DYLD_ENVIRONMENT constant'>LC_DYLD_ENVIRONMENT</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DYLD_INFO.html" title='goblin::mach::load_command::LC_DYLD_INFO constant'>LC_DYLD_INFO</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DYLD_INFO_ONLY.html" title='goblin::mach::load_command::LC_DYLD_INFO_ONLY constant'>LC_DYLD_INFO_ONLY</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DYLIB_CODE_SIGN_DRS.html" title='goblin::mach::load_command::LC_DYLIB_CODE_SIGN_DRS constant'>LC_DYLIB_CODE_SIGN_DRS</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_DYSYMTAB.html" title='goblin::mach::load_command::LC_DYSYMTAB constant'>LC_DYSYMTAB</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_ENCRYPTION_INFO.html" title='goblin::mach::load_command::LC_ENCRYPTION_INFO constant'>LC_ENCRYPTION_INFO</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_ENCRYPTION_INFO_64.html" title='goblin::mach::load_command::LC_ENCRYPTION_INFO_64 constant'>LC_ENCRYPTION_INFO_64</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_FUNCTION_STARTS.html" title='goblin::mach::load_command::LC_FUNCTION_STARTS constant'>LC_FUNCTION_STARTS</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_FVMFILE.html" title='goblin::mach::load_command::LC_FVMFILE constant'>LC_FVMFILE</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_IDENT.html" title='goblin::mach::load_command::LC_IDENT constant'>LC_IDENT</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_IDFVMLIB.html" title='goblin::mach::load_command::LC_IDFVMLIB constant'>LC_IDFVMLIB</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_ID_DYLIB.html" title='goblin::mach::load_command::LC_ID_DYLIB constant'>LC_ID_DYLIB</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_ID_DYLINKER.html" title='goblin::mach::load_command::LC_ID_DYLINKER constant'>LC_ID_DYLINKER</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_LAZY_LOAD_DYLIB.html" title='goblin::mach::load_command::LC_LAZY_LOAD_DYLIB constant'>LC_LAZY_LOAD_DYLIB</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_LINKER_OPTIMIZATION_HINT.html" title='goblin::mach::load_command::LC_LINKER_OPTIMIZATION_HINT constant'>LC_LINKER_OPTIMIZATION_HINT</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_LINKER_OPTION.html" title='goblin::mach::load_command::LC_LINKER_OPTION constant'>LC_LINKER_OPTION</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_LOADFVMLIB.html" title='goblin::mach::load_command::LC_LOADFVMLIB constant'>LC_LOADFVMLIB</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.LC_LOAD_DYLIB.html" title='goblin::mach::load_command
<table><tr class='module-item'><td><a class="fn" href="fn.cmd_to_str.html" title='goblin::mach::load_command::cmd_to_str fn'>cmd_to_str</a></td><td class='docblock-short'></td></tr></table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
<table><tr class='module-item'><td><a class="type" href="type.LcStr.html" title='goblin::mach::load_command::LcStr type'>LcStr</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "goblin";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>