[][src]Struct object::macho::LoadCommand

#[repr(C)]pub struct LoadCommand<E: Endian> {
    pub cmd: U32<E>,
    pub cmdsize: U32<E>,
}

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

impl<E: Clone + Endian> Clone for LoadCommand<E>[src]

impl<E: Copy + Endian> Copy for LoadCommand<E>[src]

impl<E: Debug + Endian> Debug for LoadCommand<E>[src]

impl<E: Endian> Pod for LoadCommand<E>[src]

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.