Struct object::macho::LoadCommand
source · #[repr(C)]pub struct LoadCommand<E: Endian> {
pub cmd: U32<E>,
pub cmdsize: U32<E>,
}
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§
source§impl<E: Clone + Endian> Clone for LoadCommand<E>
impl<E: Clone + Endian> Clone for LoadCommand<E>
source§fn clone(&self) -> LoadCommand<E>
fn clone(&self) -> LoadCommand<E>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl<E: Copy + Endian> Copy for LoadCommand<E>
impl<E: Endian> Pod for LoadCommand<E>
Auto Trait Implementations§
impl<E> Freeze for LoadCommand<E>
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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)