Struct pmu_x86::Counter

source ·
pub struct Counter { /* private fields */ }
Expand description

A logical counter object to correspond to a physical PMC

Implementations§

source§

impl Counter

source

pub fn new(event: EventType) -> Result<Counter, &'static str>

Creates a Counter object and assigns a physical counter for it. If it’s a general PMC, writes the UMASK and Event Code to the relevant MSR, but leaves enable bit clear.

source

pub fn start(&mut self) -> Result<(), &'static str>

Starts the count.

source

pub fn get_count_since_start(&self) -> Result<u64, &'static str>

Allows user to get count since start without stopping/releasing the counter.

source

pub fn end(self) -> Result<u64, &'static str>

Stops counting, releases the counter, and returns the count of events since the counter was initialized. This will consume the counter object since after freeing the counter, the counter should not be accessed.

source

pub fn diff(&self) -> u64

lightweight function with no checks to get the counter value from when it was started.

Trait Implementations§

source§

impl Drop for Counter

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.