libbpf_rs

Struct Object

Source
pub struct Object { /* private fields */ }
Expand description

Represents a loaded BPF object file.

An Object is logically in charge of all the contained Programs and Maps as well as the associated metadata and runtime state that underpins the userspace portions of BPF program execution. As a libbpf-rs user, you must keep the Object alive during the entire lifetime of your interaction with anything inside the Object.

Note that this is an explanation of the motivation – Rust’s lifetime system should already be enforcing this invariant.

Implementations§

Source§

impl Object

Source

pub unsafe fn from_ptr(ptr: NonNull<bpf_object>) -> Self

Takes ownership from pointer.

§Safety

If ptr is not already loaded then further operations on the returned object are undefined.

It is not safe to manipulate ptr after this operation.

Source

pub fn name(&self) -> Option<&OsStr>

Retrieve the object’s name.

Source

pub fn btf(&self) -> Result<Option<Btf<'_>>>

Parse the btf information associated with this bpf object.

Source

pub fn maps(&self) -> impl Iterator<Item = Map<'_>>

Retrieve an iterator over all BPF maps in the object.

Source

pub fn maps_mut(&mut self) -> impl Iterator<Item = MapMut<'_>>

Retrieve an iterator over all BPF maps in the object.

Source

pub fn progs(&self) -> impl Iterator<Item = Program<'_>>

Retrieve an iterator over all BPF programs in the object.

Source

pub fn progs_mut(&self) -> impl Iterator<Item = ProgramMut<'_>>

Retrieve an iterator over all BPF programs in the object.

Trait Implementations§

Source§

impl AsRawLibbpf for Object

Source§

fn as_libbpf_object(&self) -> NonNull<Self::LibbpfType>

Retrieve the underlying libbpf_sys::bpf_object.

Source§

type LibbpfType = bpf_object

The underlying libbpf type.
Source§

impl Debug for Object

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for Object

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.