#[repr(C)]pub struct Section64<E: Endian> {
pub sectname: [u8; 16],
pub segname: [u8; 16],
pub addr: U64<E>,
pub size: U64<E>,
pub offset: U32<E>,
pub align: U32<E>,
pub reloff: U32<E>,
pub nreloc: U32<E>,
pub flags: U32<E>,
pub reserved1: U32<E>,
pub reserved2: U32<E>,
pub reserved3: U32<E>,
}
Expand description
64-bit section.
Fields§
§sectname: [u8; 16]
name of this section
segname: [u8; 16]
segment this section goes in
addr: U64<E>
memory address of this section
size: U64<E>
size in bytes of this section
offset: U32<E>
file offset of this section
align: U32<E>
section alignment (power of 2)
reloff: U32<E>
file offset of relocation entries
nreloc: U32<E>
number of relocation entries
flags: U32<E>
flags (section type and attributes)
reserved1: U32<E>
reserved (for offset or index)
reserved2: U32<E>
reserved (for count or sizeof)
reserved3: U32<E>
reserved
Trait Implementations§
source§impl<Endian: Endian> Section for Section64<Endian>
impl<Endian: Endian> Section for Section64<Endian>
type Word = u64
type Endian = Endian
fn sectname(&self) -> &[u8; 16]
fn segname(&self) -> &[u8; 16]
fn addr(&self, endian: Self::Endian) -> Self::Word
fn size(&self, endian: Self::Endian) -> Self::Word
fn offset(&self, endian: Self::Endian) -> u32
fn align(&self, endian: Self::Endian) -> u32
fn reloff(&self, endian: Self::Endian) -> u32
fn nreloc(&self, endian: Self::Endian) -> u32
fn flags(&self, endian: Self::Endian) -> u32
source§fn segment_name(&self) -> &[u8] ⓘ
fn segment_name(&self) -> &[u8] ⓘ
Return the
segname
bytes up until the null terminator.source§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 relocations<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [Relocation<Self::Endian>]>
fn relocations<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [Relocation<Self::Endian>]>
Return the relocation array. Read more
impl<E: Copy + Endian> Copy for Section64<E>
impl<E: Endian> Pod for Section64<E>
Auto Trait Implementations§
impl<E> Freeze for Section64<E>
impl<E> RefUnwindSafe for Section64<E>where
E: RefUnwindSafe,
impl<E> Send for Section64<E>where
E: Send,
impl<E> Sync for Section64<E>where
E: Sync,
impl<E> Unpin for Section64<E>where
E: Unpin,
impl<E> UnwindSafe for Section64<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: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
)