Struct object::macho::SegmentCommand32

source ·
#[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§

source§

impl<E: Clone + Endian> Clone for SegmentCommand32<E>

source§

fn clone(&self) -> SegmentCommand32<E>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<E: Debug + Endian> Debug for SegmentCommand32<E>

source§

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

Formats the value using the given formatter. Read more
source§

impl<Endian: Endian> Segment for SegmentCommand32<Endian>

§

type Word = u32

§

type Endian = Endian

§

type Section = Section32<<SegmentCommand32<Endian> as Segment>::Endian>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

Return the segname bytes up until the null terminator.
source§

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

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

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

Get the segment data from the file data. Read more
source§

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

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

impl<E: Copy + Endian> Copy for SegmentCommand32<E>

source§

impl<E: Endian> Pod for SegmentCommand32<E>

Auto Trait Implementations§

§

impl<E> Freeze for SegmentCommand32<E>

§

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§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.