pub trait ProgramHeader: Debug + Pod {
type Elf: FileHeader<ProgramHeader = Self, Endian = Self::Endian, Word = Self::Word>;
type Word: Into<u64>;
type Endian: Endian;
Show 14 methods
fn p_type(&self, endian: Self::Endian) -> u32;
fn p_flags(&self, endian: Self::Endian) -> u32;
fn p_offset(&self, endian: Self::Endian) -> Self::Word;
fn p_vaddr(&self, endian: Self::Endian) -> Self::Word;
fn p_paddr(&self, endian: Self::Endian) -> Self::Word;
fn p_filesz(&self, endian: Self::Endian) -> Self::Word;
fn p_memsz(&self, endian: Self::Endian) -> Self::Word;
fn p_align(&self, endian: Self::Endian) -> Self::Word;
fn file_range(&self, endian: Self::Endian) -> (u64, u64) { ... }
fn data<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<&'data [u8], ()> { ... }
fn data_as_array<'data, T: Pod, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<&'data [T], ()> { ... }
fn data_range<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
address: u64,
size: u64
) -> Result<Option<&'data [u8]>, ()> { ... }
fn dynamic<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<Option<&'data [<Self::Elf as FileHeader>::Dyn]>> { ... }
fn notes<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<Option<NoteIterator<'data, Self::Elf>>> { ... }
}
Expand description
A trait for generic access to ProgramHeader32
and ProgramHeader64
.
Associated Types
type Elf: FileHeader<ProgramHeader = Self, Endian = Self::Endian, Word = Self::Word>
Required methods
Provided methods
Return the offset and size of the segment in the file.
Return the segment data.
Returns Err
for invalid values.
fn data_as_array<'data, T: Pod, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<&'data [T], ()>
fn data_as_array<'data, T: Pod, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R
) -> Result<&'data [T], ()>
Return the segment data as a slice of the given type.
Allows padding at the end of the data.
Returns Ok(&[])
if the segment has no data.
Returns Err
for invalid values, including bad alignment.
Return the segment data in the given virtual address range
Returns Ok(None)
if the segment does not contain the address.
Returns Err
for invalid values.
Return entries in a dynamic segment.
Returns Ok(None)
if the segment is not PT_DYNAMIC
.
Returns Err
for invalid values.