Struct object::elf::SectionHeader32
source · #[repr(C)]pub struct SectionHeader32<E: Endian> {
pub sh_name: U32<E>,
pub sh_type: U32<E>,
pub sh_flags: U32<E>,
pub sh_addr: U32<E>,
pub sh_offset: U32<E>,
pub sh_size: U32<E>,
pub sh_link: U32<E>,
pub sh_info: U32<E>,
pub sh_addralign: U32<E>,
pub sh_entsize: U32<E>,
}
Expand description
Section header.
Fields§
§sh_name: U32<E>
Section name.
This is an offset into the section header string table.
sh_type: U32<E>
Section type. One of the SHT_*
constants.
sh_flags: U32<E>
Section flags. A combination of the SHF_*
constants.
sh_addr: U32<E>
Section virtual address at execution.
sh_offset: U32<E>
Section file offset.
sh_size: U32<E>
Section size in bytes.
sh_link: U32<E>
Link to another section.
The section relationship depends on the sh_type
value.
sh_info: U32<E>
Additional section information.
The meaning of this field depends on the sh_type
value.
sh_addralign: U32<E>
Section alignment.
sh_entsize: U32<E>
Entry size if the section holds a table.
Trait Implementations§
source§impl<E: Clone + Endian> Clone for SectionHeader32<E>
impl<E: Clone + Endian> Clone for SectionHeader32<E>
source§fn clone(&self) -> SectionHeader32<E>
fn clone(&self) -> SectionHeader32<E>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<Endian: Endian> SectionHeader for SectionHeader32<Endian>
impl<Endian: Endian> SectionHeader for SectionHeader32<Endian>
type Elf = FileHeader32<Endian>
type Word = u32
type Endian = Endian
fn sh_name(&self, endian: Self::Endian) -> u32
fn sh_type(&self, endian: Self::Endian) -> u32
fn sh_flags(&self, endian: Self::Endian) -> Self::Word
fn sh_addr(&self, endian: Self::Endian) -> Self::Word
fn sh_offset(&self, endian: Self::Endian) -> Self::Word
fn sh_size(&self, endian: Self::Endian) -> Self::Word
fn sh_link(&self, endian: Self::Endian) -> u32
fn sh_info(&self, endian: Self::Endian) -> u32
fn sh_addralign(&self, endian: Self::Endian) -> Self::Word
fn sh_entsize(&self, endian: Self::Endian) -> Self::Word
source§fn name<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
strings: StringTable<'data, R>,
) -> Result<&'data [u8]>
fn name<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, strings: StringTable<'data, R>, ) -> Result<&'data [u8]>
Parse the section name from the string table.
source§fn link(&self, endian: Self::Endian) -> SectionIndex
fn link(&self, endian: Self::Endian) -> SectionIndex
Get the
sh_link
field as a section index. Read moresource§fn has_info_link(&self, endian: Self::Endian) -> bool
fn has_info_link(&self, endian: Self::Endian) -> bool
Return true if the
SHF_INFO_LINK
flag is set.source§fn info_link(&self, endian: Self::Endian) -> SectionIndex
fn info_link(&self, endian: Self::Endian) -> SectionIndex
Get the
sh_info
field as a section index. Read moresource§fn file_range(&self, endian: Self::Endian) -> Option<(u64, u64)>
fn file_range(&self, endian: Self::Endian) -> Option<(u64, u64)>
Return the offset and size of the section in the file. Read more
source§fn data<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [u8]>
fn data<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [u8]>
Return the section data. Read more
source§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 section data as a slice of the given type. Read more
source§fn strings<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<StringTable<'data, R>>>
fn strings<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<StringTable<'data, R>>>
Return the strings in the section. Read more
source§fn symbols<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
sections: &SectionTable<'data, Self::Elf, R>,
section_index: SectionIndex,
) -> Result<Option<SymbolTable<'data, Self::Elf, R>>>
fn symbols<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, sections: &SectionTable<'data, Self::Elf, R>, section_index: SectionIndex, ) -> Result<Option<SymbolTable<'data, Self::Elf, R>>>
Return the symbols in the section. Read more
source§fn rel<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Rel], SectionIndex)>>
fn rel<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Rel], SectionIndex)>>
Return the
Elf::Rel
entries in the section. Read moresource§fn rela<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Rela], SectionIndex)>>
fn rela<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Rela], SectionIndex)>>
Return the
Elf::Rela
entries in the section. Read moresource§fn dynamic<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Dyn], SectionIndex)>>
fn dynamic<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(&'data [<Self::Elf as FileHeader>::Dyn], SectionIndex)>>
Return entries in a dynamic section. Read more
source§fn notes<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<NoteIterator<'data, Self::Elf>>>
fn notes<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<NoteIterator<'data, Self::Elf>>>
Return a note iterator for the section data. Read more
source§fn group<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(u32, &'data [U32Bytes<Self::Endian>])>>
fn group<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(u32, &'data [U32Bytes<Self::Endian>])>>
Return the contents of a group section. Read more
source§fn hash_header<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<&'data HashHeader<Self::Endian>>>
fn hash_header<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<&'data HashHeader<Self::Endian>>>
Return the header of a SysV hash section. Read more
source§fn hash<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(HashTable<'data, Self::Elf>, SectionIndex)>>
fn hash<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(HashTable<'data, Self::Elf>, SectionIndex)>>
Return the contents of a SysV hash section. Read more
source§fn gnu_hash_header<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<&'data GnuHashHeader<Self::Endian>>>
fn gnu_hash_header<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<&'data GnuHashHeader<Self::Endian>>>
Return the header of a GNU hash section. Read more
source§fn gnu_hash<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(GnuHashTable<'data, Self::Elf>, SectionIndex)>>
fn gnu_hash<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(GnuHashTable<'data, Self::Elf>, SectionIndex)>>
Return the contents of a GNU hash section. Read more
source§fn gnu_versym<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(&'data [Versym<Self::Endian>], SectionIndex)>>
fn gnu_versym<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(&'data [Versym<Self::Endian>], SectionIndex)>>
Return the contents of a
SHT_GNU_VERSYM
section. Read moresource§fn gnu_verdef<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(VerdefIterator<'data, Self::Elf>, SectionIndex)>>
fn gnu_verdef<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(VerdefIterator<'data, Self::Elf>, SectionIndex)>>
Return an iterator for the entries of a
SHT_GNU_VERDEF
section. Read moresource§fn gnu_verneed<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(VerneedIterator<'data, Self::Elf>, SectionIndex)>>
fn gnu_verneed<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(VerneedIterator<'data, Self::Elf>, SectionIndex)>>
Return an iterator for the entries of a
SHT_GNU_VERNEED
section. Read moresource§fn gnu_attributes<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<AttributesSection<'data, Self::Elf>>>
fn gnu_attributes<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<AttributesSection<'data, Self::Elf>>>
Return the contents of a
SHT_GNU_ATTRIBUTES
section. Read moresource§fn attributes<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<AttributesSection<'data, Self::Elf>>
fn attributes<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<AttributesSection<'data, Self::Elf>>
Parse the contents of the section as attributes. Read more
source§fn compression<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<Option<(&'data <Self::Elf as FileHeader>::CompressionHeader, u64, u64)>>
fn compression<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<Option<(&'data <Self::Elf as FileHeader>::CompressionHeader, u64, u64)>>
Parse the compression header if present. Read more
impl<E: Copy + Endian> Copy for SectionHeader32<E>
impl<E: Endian> Pod for SectionHeader32<E>
Auto Trait Implementations§
impl<E> Freeze for SectionHeader32<E>
impl<E> RefUnwindSafe for SectionHeader32<E>where
E: RefUnwindSafe,
impl<E> Send for SectionHeader32<E>where
E: Send,
impl<E> Sync for SectionHeader32<E>where
E: Sync,
impl<E> Unpin for SectionHeader32<E>where
E: Unpin,
impl<E> UnwindSafe for SectionHeader32<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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)