pub struct Object {
pub endianness: Endianness,
pub license: CString,
pub kernel_version: Option<u32>,
pub btf: Option<Btf>,
pub btf_ext: Option<BtfExt>,
pub maps: HashMap<String, Map>,
pub programs: HashMap<String, Program>,
pub functions: BTreeMap<(usize, u64), Function>,
/* private fields */
}Expand description
The loaded object file representation
Fields§
§endianness: EndiannessThe endianness
license: CStringProgram license
kernel_version: Option<u32>Kernel version
btf: Option<Btf>Program BTF
btf_ext: Option<BtfExt>Program BTF.ext
maps: HashMap<String, Map>Referenced maps
programs: HashMap<String, Program>A hash map of programs, using the program names parsed in ProgramSections as keys.
functions: BTreeMap<(usize, u64), Function>Functions
Implementations§
Source§impl Object
impl Object
Sourcepub fn fixup_and_sanitize_btf(
&mut self,
features: &BtfFeatures,
) -> Result<Option<&Btf>, BtfError>
pub fn fixup_and_sanitize_btf( &mut self, features: &BtfFeatures, ) -> Result<Option<&Btf>, BtfError>
Fixes up and sanitizes BTF data.
Mostly, it removes unsupported types and works around LLVM behaviours.
Source§impl Object
impl Object
Sourcepub fn relocate_btf(
&mut self,
target_btf: &Btf,
) -> Result<(), BtfRelocationError>
pub fn relocate_btf( &mut self, target_btf: &Btf, ) -> Result<(), BtfRelocationError>
Relocates programs inside this object file with loaded BTF info.
Source§impl Object
impl Object
Sourcepub fn parse(data: &[u8]) -> Result<Object, ParseError>
pub fn parse(data: &[u8]) -> Result<Object, ParseError>
Parses the binary data as an object file into an Object
Sourcepub fn patch_map_data(
&mut self,
globals: HashMap<&str, (&[u8], bool)>,
) -> Result<(), ParseError>
pub fn patch_map_data( &mut self, globals: HashMap<&str, (&[u8], bool)>, ) -> Result<(), ParseError>
Patches map data
Sourcepub fn sanitize_functions(&mut self, features: &Features)
pub fn sanitize_functions(&mut self, features: &Features)
Sanitize BPF functions.
Source§impl Object
impl Object
Sourcepub fn relocate_maps<'a, I: Iterator<Item = (&'a str, c_int, &'a Map)>>(
&mut self,
maps: I,
text_sections: &HashSet<usize>,
) -> Result<(), EbpfRelocationError>
pub fn relocate_maps<'a, I: Iterator<Item = (&'a str, c_int, &'a Map)>>( &mut self, maps: I, text_sections: &HashSet<usize>, ) -> Result<(), EbpfRelocationError>
Relocates the map references
Sourcepub fn relocate_calls(
&mut self,
text_sections: &HashSet<usize>,
) -> Result<(), EbpfRelocationError>
pub fn relocate_calls( &mut self, text_sections: &HashSet<usize>, ) -> Result<(), EbpfRelocationError>
Relocates function calls
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Object
impl RefUnwindSafe for Object
impl Send for Object
impl Sync for Object
impl Unpin for Object
impl UnwindSafe for Object
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