Struct atom_macho::load_command::dysymtab::DysymtabCommand
source · [−]pub struct DysymtabCommand {Show 20 fields
pub cmd: u32,
pub cmdsize: u32,
pub ilocalsym: u32,
pub nlocalsym: u32,
pub iextdefsym: u32,
pub nextdefsym: u32,
pub iundefsym: u32,
pub nundefsym: u32,
pub tocoff: u32,
pub ntoc: u32,
pub modtaboff: u32,
pub nmodtab: u32,
pub extrefsymoff: u32,
pub nextrefsyms: u32,
pub indirectsymoff: u32,
pub nindirectsyms: u32,
pub extreloff: u32,
pub nextrel: u32,
pub locreloff: u32,
pub nlocrel: u32,
}
Expand description
This is the second set of the symbolic information which is used to support 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 into three groups of symbols:
- local symbols (static and debugging symbols) - grouped by module
- defined external symbols - grouped by module (sorted by name if not lib)
- undefined external symbols (sorted by name if MH_BINDATLOAD is not set, and in order the were seen by the static linker if MH_BINDATLOAD is set)
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
- module table
- 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 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:
- table of contents - the defined external symbols are sorted by name
- 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 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 relocation entries
For executable and object modules the relocation entries continue to hang off the section structures.
Fields
cmd: u32
cmdsize: u32
ilocalsym: u32
index to local symbols
nlocalsym: u32
number of local symbols
iextdefsym: u32
index to externally defined symbols
nextdefsym: u32
number of externally defined symbols
iundefsym: u32
index to undefined symbols
nundefsym: u32
number of undefined symbols
tocoff: u32
file offset to table of contents
ntoc: u32
number of entries in table of contents
modtaboff: u32
file offset to module table
nmodtab: u32
number of module table entries
extrefsymoff: u32
offset to referenced symbol table
nextrefsyms: u32
number of referenced symbol table entries
indirectsymoff: u32
file offset to the indirect symbol table
nindirectsyms: u32
number of indirect symbol table entries
extreloff: u32
offset to external relocation entries
nextrel: u32
number of external relocation entries
locreloff: u32
offset to local relocation entries
nlocrel: u32
number of local relocation entries
Implementations
Trait Implementations
sourceimpl Clone for DysymtabCommand
impl Clone for DysymtabCommand
sourcefn clone(&self) -> DysymtabCommand
fn clone(&self) -> DysymtabCommand
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for DysymtabCommand
impl Debug for DysymtabCommand
sourceimpl PartialEq<DysymtabCommand> for DysymtabCommand
impl PartialEq<DysymtabCommand> for DysymtabCommand
sourcefn eq(&self, other: &DysymtabCommand) -> bool
fn eq(&self, other: &DysymtabCommand) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &DysymtabCommand) -> bool
fn ne(&self, other: &DysymtabCommand) -> bool
This method tests for !=
.
impl Eq for DysymtabCommand
impl StructuralEq for DysymtabCommand
impl StructuralPartialEq for DysymtabCommand
Auto Trait Implementations
impl RefUnwindSafe for DysymtabCommand
impl Send for DysymtabCommand
impl Sync for DysymtabCommand
impl Unpin for DysymtabCommand
impl UnwindSafe for DysymtabCommand
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more