Struct object::macho::SegmentCommand32[][src]

#[repr(C)]
pub struct SegmentCommand32<E: Endian> { pub cmd: U32<E>, pub cmdsize: U32<E>, pub segname: [u8; 16], pub vmaddr: U32<E>, pub vmsize: U32<E>, pub fileoff: U32<E>, pub filesize: U32<E>, pub maxprot: U32<E>, pub initprot: U32<E>, pub nsects: U32<E>, pub flags: U32<E>, }
Expand description

32-bit segment load command.

The segment load command indicates that a part of this file is to be mapped into the task’s address space. The size of this segment in memory, vmsize, maybe equal to or larger than the amount to map from this file, filesize. The file is mapped starting at fileoff to the beginning of the segment in memory, vmaddr. The rest of the memory of the segment, if any, is allocated zero fill on demand. The segment’s maximum virtual memory protection and initial virtual memory protection are specified by the maxprot and initprot fields. If the segment has sections then the Section32 structures directly follow the segment command and their size is reflected in cmdsize.

Fields

cmd: U32<E>

LC_SEGMENT

cmdsize: U32<E>

includes sizeof section structs

segname: [u8; 16]

segment name

vmaddr: U32<E>

memory address of this segment

vmsize: U32<E>

memory size of this segment

fileoff: U32<E>

file offset of this segment

filesize: U32<E>

amount to map from the file

maxprot: U32<E>

maximum VM protection

initprot: U32<E>

initial VM protection

nsects: U32<E>

number of sections in segment

flags: U32<E>

flags

Trait Implementations

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

fn clone(&self) -> SegmentCommand32<E>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

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

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<Endian: Endian> Segment for SegmentCommand32<Endian>[src]

type Word = u32

type Endian = Endian

type Section = Section32<Self::Endian>

fn from_command(
    command: LoadCommandData<'_, Self::Endian>
) -> Result<Option<(&Self, &[u8])>>
[src]

fn cmd(&self, endian: Self::Endian) -> u32[src]

fn cmdsize(&self, endian: Self::Endian) -> u32[src]

fn segname(&self) -> &[u8; 16][src]

fn vmaddr(&self, endian: Self::Endian) -> Self::Word[src]

fn vmsize(&self, endian: Self::Endian) -> Self::Word[src]

fn fileoff(&self, endian: Self::Endian) -> Self::Word[src]

fn filesize(&self, endian: Self::Endian) -> Self::Word[src]

fn maxprot(&self, endian: Self::Endian) -> u32[src]

fn initprot(&self, endian: Self::Endian) -> u32[src]

fn nsects(&self, endian: Self::Endian) -> u32[src]

fn flags(&self, endian: Self::Endian) -> u32[src]

fn name(&self) -> &[u8][src]

Return the segname bytes up until the null terminator.

fn file_range(&self, endian: Self::Endian) -> (u64, u64)[src]

Return the offset and size of the segment in the file.

fn data<'data, R: ReadRef<'data>>(
    &self,
    endian: Self::Endian,
    data: R
) -> Result<&'data [u8], ()>
[src]

Get the segment data from the file data. Read more

fn sections<'data, R: ReadRef<'data>>(
    &self,
    endian: Self::Endian,
    section_data: R
) -> Result<&'data [Self::Section]>
[src]

Get the array of sections from the data following the segment command. Read more

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

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

Auto Trait Implementations

impl<E> RefUnwindSafe for SegmentCommand32<E> where
    E: RefUnwindSafe

impl<E> Send for SegmentCommand32<E> where
    E: Send

impl<E> Sync for SegmentCommand32<E> where
    E: Sync

impl<E> Unpin for SegmentCommand32<E> where
    E: Unpin

impl<E> UnwindSafe for SegmentCommand32<E> where
    E: UnwindSafe

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.