pub struct SMBiosProcessorInformation<'a> { /* private fields */ }
Expand description

Processor Information (Type 4)

The information in this structure defines the attributes of a single processor; a separate structure instance is provided for each system processor socket/slot. For example, a system with an IntelDX2™ processor would have a single structure instance while a system with an IntelSX2™ processor would have a structure to describe the main CPU and a second structure to describe the 80487 co1021 processor.

NOTE One structure is provided for each processor instance in a system. For example, a system that supports up to two processors includes two Processor Information structures — even if only one processor is currently installed. Software that interprets the SMBIOS information can count the Processor Information structures to determine the maximum possible configuration of the system.

Compliant with: DMTF SMBIOS Reference Specification 3.7.0 (DSP0134) Document Date: 2023-07-21

Implementations§

source§

impl<'a> SMBiosProcessorInformation<'a>

source

pub fn socket_designation(&self) -> SMBiosString

Socket reference designation

EXAMPLE: “J202”

source

pub fn processor_type(&self) -> Option<ProcessorTypeData>

Processor type

source

pub fn processor_family(&self) -> Option<ProcessorFamilyData>

Processor family

source

pub fn processor_manufacturer(&self) -> SMBiosString

Processor manufacturer

source

pub fn processor_id(&self) -> Option<&[u8; 8]>

Raw processor identification data

source

pub fn processor_version(&self) -> SMBiosString

Processor version

source

pub fn voltage(&self) -> Option<ProcessorVoltage>

Voltage

source

pub fn external_clock(&self) -> Option<ProcessorExternalClock>

External clock frequency, in MHz

If the value is unknown, the field is set to 0.

source

pub fn max_speed(&self) -> Option<ProcessorSpeed>

Maximum processor speed (in MHz) supported by the system for this processor socket

0E9h is for a 233 MHz processor.

NOTE: This field identifies a capability for the system, not the processor itself.

source

pub fn current_speed(&self) -> Option<ProcessorSpeed>

Current speed

Same format as Max Speed

NOTE: This field identifies the processor’s speed at system boot; the processor may support more than one speed.

source

pub fn status(&self) -> Option<ProcessorStatus>

Status bit field

source

pub fn processor_upgrade(&self) -> Option<ProcessorUpgradeData>

Processor upgrade

source

pub fn l1cache_handle(&self) -> Option<Handle>

Handle of a super::SMBiosCacheInformation structure that defines the attributes of the primary (Level 1) cache for this processor

For version 2.1 and version 2.2 implementations, the value is 0FFFFh if the processor has no L1 cache. For version 2.3 and later implementations, the value is 0FFFFh if the Cache Information structure is not provided.

source

pub fn l2cache_handle(&self) -> Option<Handle>

Handle of a super::SMBiosCacheInformation structure that defines the attributes of the primary (Level 2) cache for this processor

For version 2.1 and version 2.2 implementations, the value is 0FFFFh if the processor has no L2 cache. For version 2.3 and later implementations, the value is 0FFFFh if the Cache Information structure is not provided.

source

pub fn l3cache_handle(&self) -> Option<Handle>

Handle of a super::SMBiosCacheInformation structure that defines the attributes of the primary (Level 3) cache for this processor

For version 2.1 and version 2.2 implementations, the value is 0FFFFh if the processor has no L3 cache. For version 2.3 and later implementations, the value is 0FFFFh if the Cache Information structure is not provided.

source

pub fn serial_number(&self) -> SMBiosString

The serial number of this processor

This value is set by the manufacturer and normally not changeable.

source

pub fn asset_tag(&self) -> SMBiosString

The asset tag of this processor

source

pub fn part_number(&self) -> SMBiosString

The part number of this processor

This value is set by the manufacturer and normally not changeable.

source

pub fn core_count(&self) -> Option<CoreCount>

Number of cores per processor socket

For core counts of 256 or greater, the ‘core_count_2’ field is set to the number of cores.

source

pub fn cores_enabled(&self) -> Option<CoresEnabled>

Number of enabled cores per processor socket

For core counts of 256 or greater, the ‘cores_enabled_2’ field is set to the number of enabled cores.

source

pub fn thread_count(&self) -> Option<ThreadCount>

Number of threads per processor socket

For thread counts of 256 or greater, ‘thread_count_2’ field is set to the number of threads.

source

pub fn processor_characteristics(&self) -> Option<ProcessorCharacteristics>

Defines which functions the processor supports

source

pub fn processor_family_2(&self) -> Option<ProcessorFamilyData2>

Processor family 2

source

pub fn core_count_2(&self) -> Option<CoreCount2>

Number of Cores per processor socket.

Supports core counts >255. If this field is present, it holds the core count for the processor socket. ‘core_count’ will also hold the core count, except for core counts that are 256 or greater. In that case, ‘core_count’ shall be set to ‘CoreCount::SeeCoreCount2’ and ‘core_count_2’ will hold the count.

source

pub fn cores_enabled_2(&self) -> Option<CoresEnabled2>

Number of enabled cores per processor socket.

Supports core enabled counts >255. If this field is present, it holds the core enabled count for the processor socket. ‘cores_enabled’ will also hold the core enabled count, except for core counts that are 256 or greater. In that case, ‘cores_enabled’ shall be set to ‘CoresEnabled::SeeCoresEnabled2’ and ‘cores_enabled_2’ will hold the count.

source

pub fn thread_count_2(&self) -> Option<ThreadCount2>

Number of threads per processor socket.

Supports thread counts >255. If this field is present, it holds the thread count for the processor socket. ‘thread_count’ will also hold the thread count, except for thread counts that are 256 or greater. In that case, ‘thread_count’ shall be set to ‘ThreadCount::SeeThreadCount2’ and ‘thread_count_2’ will hold the count.

source

pub fn thread_enabled(&self) -> Option<ThreadEnabled>

Number of threads the BIOS has enabled and available for operating system use.

For example, if the BIOS detects a dual-core processor with two threads supported in each core • And it leaves both threads enabled, it reports a value of 4. • And it disables multi-threading support, it reports a value of 2.

Trait Implementations§

source§

impl Debug for SMBiosProcessorInformation<'_>

source§

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

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

impl<'a> SMBiosStruct<'a> for SMBiosProcessorInformation<'a>

source§

const STRUCT_TYPE: u8 = 4u8

The SMBIOS structure type Read more
source§

fn new(parts: &'a UndefinedStruct) -> Self

Creates a new instance of the implementing SMBIOS type
source§

fn parts(&self) -> &'a UndefinedStruct

Contains the standard parts/sections of the implementing SMBIOS type.
source§

impl Serialize for SMBiosProcessorInformation<'_>

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>where S: Serializer,

Serialize this value into the given Serde serializer. 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.