Struct object::macho::LoadCommand
source · [−]Expand description
Common fields at the start of every load command.
The load commands directly follow the mach_header. The total size of all
of the commands is given by the sizeofcmds field in the mach_header. All
load commands must have as their first two fields cmd
and cmdsize
. The cmd
field is filled in with a constant for that command type. Each command type
has a structure specifically for it. The cmdsize
field is the size in bytes
of the particular load command structure plus anything that follows it that
is a part of the load command (i.e. section structures, strings, etc.). To
advance to the next load command the cmdsize
can be added to the offset or
pointer of the current load command. The cmdsize
for 32-bit architectures
MUST be a multiple of 4 bytes and for 64-bit architectures MUST be a multiple
of 8 bytes (these are forever the maximum alignment of any load commands).
The padded bytes must be zero. All tables in the object file must also
follow these rules so the file can be memory mapped. Otherwise the pointers
to these tables will not work well or at all on some machines. With all
padding zeroed like objects will compare byte for byte.
Fields
cmd: U32<E>
Type of load command.
One of the LC_*
constants.
cmdsize: U32<E>
Total size of command in bytes.
Trait Implementations
Auto Trait Implementations
impl<E> RefUnwindSafe for LoadCommand<E> where
E: RefUnwindSafe,
impl<E> Send for LoadCommand<E> where
E: Send,
impl<E> Sync for LoadCommand<E> where
E: Sync,
impl<E> Unpin for LoadCommand<E> where
E: Unpin,
impl<E> UnwindSafe for LoadCommand<E> where
E: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more