Skip to main content

Counter

Struct Counter 

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

A thread-safe diagnostic handle representing a self-declared kernel counter.

This structure contains a pointer to the counter’s static Descriptor layout in memory, and delegates increment, minimum, and maximum operations to highly optimized C++ FFI handlers with zero runtime overhead under ThinLTO.

Implementations§

Source§

impl Counter

Source

pub const unsafe fn new_with_ptr(descriptor: *const Descriptor) -> Self

Create a new Counter handle using the direct descriptor pointer address.

§Safety

This should only be called with a pointer to a valid, linker-defined static descriptor variable.

Source

pub fn add(&self, delta: i64)

Add the given delta value to the calling CPU’s counter slot.

Source

pub fn min(&self, value: i64)

Update the calling CPU’s counter slot to the minimum of its current value and the given value.

Source

pub fn max(&self, value: i64)

Update the calling CPU’s counter slot to the maximum of its current value and the given value.

Trait Implementations§

Source§

impl Send for Counter

Source§

impl Sync for Counter

Auto Trait Implementations§

§

impl Freeze for Counter

§

impl RefUnwindSafe for Counter

§

impl Unpin for Counter

§

impl UnsafeUnpin for Counter

§

impl UnwindSafe for Counter

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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> ToMutPtr for T
where T: ?Sized,

Source§

type Target = T

The target type of the pointer.
Source§

fn to_mut_ptr(&self) -> *mut T

Casts the reference to a mutable raw pointer.
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.