pub struct XcoffFile<'data, Xcoff, R = &'data [u8]>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,{
    pub(super) data: R,
    pub(super) header: &'data Xcoff,
    pub(super) aux_header: Option<&'data Xcoff::AuxHeader>,
    pub(super) sections: SectionTable<'data, Xcoff>,
    pub(super) symbols: SymbolTable<'data, Xcoff, R>,
}Expand description
A partially parsed XCOFF file.
Most functionality is provided by the Object trait implementation.
Fields§
§data: R§header: &'data Xcoff§aux_header: Option<&'data Xcoff::AuxHeader>§sections: SectionTable<'data, Xcoff>§symbols: SymbolTable<'data, Xcoff, R>Implementations§
Source§impl<'data, Xcoff, R> XcoffFile<'data, Xcoff, R>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,
 
impl<'data, Xcoff, R> XcoffFile<'data, Xcoff, R>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,
Sourcepub fn raw_header(&self) -> &'data Xcoff
 👎Deprecated: Use xcoff_header instead
pub fn raw_header(&self) -> &'data Xcoff
xcoff_header insteadReturns the raw XCOFF file header.
Sourcepub fn xcoff_header(&self) -> &'data Xcoff
 
pub fn xcoff_header(&self) -> &'data Xcoff
Get the raw XCOFF file header.
Sourcepub fn xcoff_aux_header(&self) -> Option<&'data Xcoff::AuxHeader>
 
pub fn xcoff_aux_header(&self) -> Option<&'data Xcoff::AuxHeader>
Get the raw XCOFF auxiliary header.
Sourcepub fn xcoff_section_table(&self) -> &SectionTable<'data, Xcoff>
 
pub fn xcoff_section_table(&self) -> &SectionTable<'data, Xcoff>
Get the XCOFF section table.
Sourcepub fn xcoff_symbol_table(&self) -> &SymbolTable<'data, Xcoff, R>
 
pub fn xcoff_symbol_table(&self) -> &SymbolTable<'data, Xcoff, R>
Get the XCOFF symbol table.
Trait Implementations§
Source§impl<'data, Xcoff, R> Object<'data> for XcoffFile<'data, Xcoff, R>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,
 
impl<'data, Xcoff, R> Object<'data> for XcoffFile<'data, Xcoff, R>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,
Source§type Segment<'file> = XcoffSegment<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type Segment<'file> = XcoffSegment<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
A loadable segment in the object file.
Source§type SegmentIterator<'file> = XcoffSegmentIterator<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type SegmentIterator<'file> = XcoffSegmentIterator<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
An iterator for the loadable segments in the object file.
Source§type Section<'file> = XcoffSection<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type Section<'file> = XcoffSection<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
A section in the object file.
Source§type SectionIterator<'file> = XcoffSectionIterator<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type SectionIterator<'file> = XcoffSectionIterator<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
An iterator for the sections in the object file.
Source§type Comdat<'file> = XcoffComdat<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type Comdat<'file> = XcoffComdat<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
A COMDAT section group in the object file.
Source§type ComdatIterator<'file> = XcoffComdatIterator<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type ComdatIterator<'file> = XcoffComdatIterator<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
An iterator for the COMDAT section groups in the object file.
Source§type Symbol<'file> = XcoffSymbol<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type Symbol<'file> = XcoffSymbol<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
A symbol in the object file.
Source§type SymbolIterator<'file> = XcoffSymbolIterator<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type SymbolIterator<'file> = XcoffSymbolIterator<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
An iterator for symbols in the object file.
Source§type SymbolTable<'file> = XcoffSymbolTable<'data, 'file, Xcoff, R>
where
    Self: 'file,
    'data: 'file
 
type SymbolTable<'file> = XcoffSymbolTable<'data, 'file, Xcoff, R> where Self: 'file, 'data: 'file
A symbol table in the object file.
Source§type DynamicRelocationIterator<'file> = NoDynamicRelocationIterator
where
    Self: 'file,
    'data: 'file
 
type DynamicRelocationIterator<'file> = NoDynamicRelocationIterator where Self: 'file, 'data: 'file
An iterator for the dynamic relocations in the file. Read more
Source§fn architecture(&self) -> Architecture
 
fn architecture(&self) -> Architecture
Get the architecture type of the file.
Source§fn is_little_endian(&self) -> bool
 
fn is_little_endian(&self) -> bool
Return true if the file is little endian, false if it is big endian.
Source§fn kind(&self) -> ObjectKind
 
fn kind(&self) -> ObjectKind
Return the kind of this object.
Source§fn segments(&self) -> XcoffSegmentIterator<'data, '_, Xcoff, R> ⓘ
 
fn segments(&self) -> XcoffSegmentIterator<'data, '_, Xcoff, R> ⓘ
Get an iterator for the loadable segments in the file. Read more
Source§fn section_by_name_bytes<'file>(
    &'file self,
    section_name: &[u8],
) -> Option<XcoffSection<'data, 'file, Xcoff, R>>
 
fn section_by_name_bytes<'file>( &'file self, section_name: &[u8], ) -> Option<XcoffSection<'data, 'file, Xcoff, R>>
Like 
Self::section_by_name, but allows names that are not UTF-8.Source§fn section_by_index(
    &self,
    index: SectionIndex,
) -> Result<XcoffSection<'data, '_, Xcoff, R>>
 
fn section_by_index( &self, index: SectionIndex, ) -> Result<XcoffSection<'data, '_, Xcoff, R>>
Get the section at the given index. Read more
Source§fn sections(&self) -> XcoffSectionIterator<'data, '_, Xcoff, R> ⓘ
 
fn sections(&self) -> XcoffSectionIterator<'data, '_, Xcoff, R> ⓘ
Get an iterator for the sections in the file.
Source§fn comdats(&self) -> XcoffComdatIterator<'data, '_, Xcoff, R> ⓘ
 
fn comdats(&self) -> XcoffComdatIterator<'data, '_, Xcoff, R> ⓘ
Get an iterator for the COMDAT section groups in the file.
Source§fn symbol_table(&self) -> Option<XcoffSymbolTable<'data, '_, Xcoff, R>>
 
fn symbol_table(&self) -> Option<XcoffSymbolTable<'data, '_, Xcoff, R>>
Get the debugging symbol table, if any.
Source§fn symbol_by_index(
    &self,
    index: SymbolIndex,
) -> Result<XcoffSymbol<'data, '_, Xcoff, R>>
 
fn symbol_by_index( &self, index: SymbolIndex, ) -> Result<XcoffSymbol<'data, '_, Xcoff, R>>
Get the debugging symbol at the given index. Read more
Source§fn symbols(&self) -> XcoffSymbolIterator<'data, '_, Xcoff, R> ⓘ
 
fn symbols(&self) -> XcoffSymbolIterator<'data, '_, Xcoff, R> ⓘ
Get an iterator for the debugging symbols in the file. Read more
Source§fn dynamic_symbol_table<'file>(
    &'file self,
) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
 
fn dynamic_symbol_table<'file>( &'file self, ) -> Option<XcoffSymbolTable<'data, 'file, Xcoff, R>>
Get the dynamic linking symbol table, if any. Read more
Source§fn dynamic_symbols(&self) -> XcoffSymbolIterator<'data, '_, Xcoff, R> ⓘ
 
fn dynamic_symbols(&self) -> XcoffSymbolIterator<'data, '_, Xcoff, R> ⓘ
Get an iterator for the dynamic linking symbols in the file. Read more
Source§fn dynamic_relocations(&self) -> Option<Self::DynamicRelocationIterator<'_>>
 
fn dynamic_relocations(&self) -> Option<Self::DynamicRelocationIterator<'_>>
Get the dynamic relocations for this file. Read more
Source§fn exports(&self) -> Result<Vec<Export<'data>>>
 
fn exports(&self) -> Result<Vec<Export<'data>>>
Get the exported symbols that expose both a name and an address. Read more
Source§fn has_debug_symbols(&self) -> bool
 
fn has_debug_symbols(&self) -> bool
Return true if the file contains DWARF debug information sections, false if not.
Source§fn relative_address_base(&self) -> u64
 
fn relative_address_base(&self) -> u64
Get the base address used for relative virtual addresses. Read more
Source§fn sub_architecture(&self) -> Option<SubArchitecture>
 
fn sub_architecture(&self) -> Option<SubArchitecture>
Get the sub-architecture type of the file if known. Read more
Source§fn endianness(&self) -> Endianness
 
fn endianness(&self) -> Endianness
Get the endianness of the file.
Source§fn section_by_name(&self, section_name: &str) -> Option<Self::Section<'_>>
 
fn section_by_name(&self, section_name: &str) -> Option<Self::Section<'_>>
Get the section named 
section_name, if such a section exists. Read moreSource§fn symbol_by_name<'file>(
    &'file self,
    symbol_name: &str,
) -> Option<Self::Symbol<'file>>
 
fn symbol_by_name<'file>( &'file self, symbol_name: &str, ) -> Option<Self::Symbol<'file>>
Get the symbol named 
symbol_name, if the symbol exists.Source§fn symbol_by_name_bytes<'file>(
    &'file self,
    symbol_name: &[u8],
) -> Option<Self::Symbol<'file>>
 
fn symbol_by_name_bytes<'file>( &'file self, symbol_name: &[u8], ) -> Option<Self::Symbol<'file>>
Like 
Self::symbol_by_name, but allows names that are not UTF-8.Source§fn symbol_map(&self) -> SymbolMap<SymbolMapName<'data>>
 
fn symbol_map(&self) -> SymbolMap<SymbolMapName<'data>>
Construct a map from addresses to symbol names. Read more
Source§fn object_map(&self) -> ObjectMap<'data>
 
fn object_map(&self) -> ObjectMap<'data>
Construct a map from addresses to symbol names and object file names. Read more
Source§fn build_id(&self) -> Result<Option<&'data [u8]>>
 
fn build_id(&self) -> Result<Option<&'data [u8]>>
The build ID from an ELF 
NT_GNU_BUILD_ID note.Source§fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>>
 
fn gnu_debuglink(&self) -> Result<Option<(&'data [u8], u32)>>
The filename and CRC from a 
.gnu_debuglink section.impl<'data, Xcoff, R> Sealed for XcoffFile<'data, Xcoff, R>where
    Xcoff: FileHeader,
    R: ReadRef<'data>,
Auto Trait Implementations§
impl<'data, Xcoff, R> Freeze for XcoffFile<'data, Xcoff, R>where
    R: Freeze,
impl<'data, Xcoff, R> RefUnwindSafe for XcoffFile<'data, Xcoff, R>where
    R: RefUnwindSafe,
    Xcoff: RefUnwindSafe,
    <Xcoff as FileHeader>::AuxHeader: RefUnwindSafe,
    <Xcoff as FileHeader>::SectionHeader: RefUnwindSafe,
impl<'data, Xcoff, R> Send for XcoffFile<'data, Xcoff, R>where
    R: Send,
    Xcoff: Sync + Send,
    <Xcoff as FileHeader>::AuxHeader: Sync,
    <Xcoff as FileHeader>::SectionHeader: Sync,
impl<'data, Xcoff, R> Sync for XcoffFile<'data, Xcoff, R>where
    R: Sync,
    Xcoff: Sync,
    <Xcoff as FileHeader>::AuxHeader: Sync,
    <Xcoff as FileHeader>::SectionHeader: Sync,
impl<'data, Xcoff, R> Unpin for XcoffFile<'data, Xcoff, R>
impl<'data, Xcoff, R> UnwindSafe for XcoffFile<'data, Xcoff, R>where
    R: UnwindSafe,
    Xcoff: RefUnwindSafe + UnwindSafe,
    <Xcoff as FileHeader>::AuxHeader: RefUnwindSafe,
    <Xcoff as FileHeader>::SectionHeader: RefUnwindSafe,
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