raw_cpuid

Struct HypervisorInfo

source
pub struct HypervisorInfo<R: CpuIdReader> { /* private fields */ }
Expand description

Information about Hypervisor (LEAF=0x4000_0001)

More information about this semi-official leaf can be found here https://lwn.net/Articles/301888/

Implementations§

source§

impl<R: CpuIdReader> HypervisorInfo<R>

source

pub fn identify(&self) -> Hypervisor

Returns the identity of the Hypervisor.

§Technical Background

The value is a 12-byte (12 character) fixed-length ASCII string.

Usually all of these IDs can be found in the original source code on Github relatively easy (if the project is open source). Once you have an ID, you find cumulated lists with all kinds of IDs on Github relatively easy.

source

pub fn tsc_frequency(&self) -> Option<u32>

TSC frequency in kHz.

source

pub fn apic_frequency(&self) -> Option<u32>

(Virtual) Bus (local apic timer) frequency in kHz.

Trait Implementations§

source§

impl<R: CpuIdReader> Debug for HypervisorInfo<R>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R> Freeze for HypervisorInfo<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for HypervisorInfo<R>
where R: RefUnwindSafe,

§

impl<R> Send for HypervisorInfo<R>
where R: Send,

§

impl<R> Sync for HypervisorInfo<R>
where R: Sync,

§

impl<R> Unpin for HypervisorInfo<R>
where R: Unpin,

§

impl<R> UnwindSafe for HypervisorInfo<R>
where R: UnwindSafe,

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.