Struct SMBiosMemoryDevice

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

§Memory Device (Type 17)

This structure describes a single memory device that is part of a larger super::SMBiosPhysicalMemoryArray (Type 16) structure.

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

Implementations§

Source§

impl<'a> SMBiosMemoryDevice<'a>

Source

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

Handle, or instance number, associated with the super::SMBiosPhysicalMemoryArray to which this device belongs

Source

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

Handle, or instance number, associated with any error that was previously detected for the device If the system does not provide the error information structure, the field contains FFFEh; otherwise, the field contains either FFFFh (if no error was detected) or the handle of the error-information structure (super::SMBiosMemoryErrorInformation32 or super::SMBiosMemoryErrorInformation64).

Source

pub fn total_width(&self) -> Option<u16>

Total width, in bits, of this memory device, including any check or error-correction bits If there are no error-correction bits, this value should be equal to Data Width. If the width is unknown, the field is set to FFFFh.

Source

pub fn data_width(&self) -> Option<u16>

Data width, in bits, of this memory device A Data Width of 0 and a Total Width of 8 indicates that the device is being used solely to provide 8 error-correction bits. If the width is unknown, the field is set to FFFFh.

Source

pub fn size(&self) -> Option<MemorySize>

Size of the memory device

Source

pub fn form_factor(&self) -> Option<MemoryFormFactorData>

Implementation form factor for this memory device

Source

pub fn device_set(&self) -> Option<u8>

Identifies when the Memory Device is one of a set of Memory Devices that must be populated with all devices of the same type and size, and the set to which this device belongs A value of 0 indicates that the device is not part of a set; a value of FFh indicates that the attribute is unknown. NOTE: A Device Set number must be unique within the context of the Memory Array containing this Memory Device.

Source

pub fn device_locator(&self) -> SMBiosString

Identifies the physically-labeled socket or board position where the memory device is located EXAMPLE: “SIMM 3”

Source

pub fn bank_locator(&self) -> SMBiosString

Identifies the physically labeled bank where the memory device is located EXAMPLE: “Bank 0” or “A”

Source

pub fn memory_type(&self) -> Option<MemoryDeviceTypeData>

Type of memory used in this device

Source

pub fn type_detail(&self) -> Option<MemoryTypeDetails>

Additional detail on the memory device type

Source

pub fn speed(&self) -> Option<MemorySpeed>

The maximum capable speed of the device, in megatransfers per second (MT/s).

Source

pub fn manufacturer(&self) -> SMBiosString

The manufacturer of this memory device

Source

pub fn serial_number(&self) -> SMBiosString

The serial number of this memory device. This value is set by the manufacturer and normally is not changeable.

Source

pub fn asset_tag(&self) -> SMBiosString

The asset tag of this memory device

Source

pub fn part_number(&self) -> SMBiosString

The part number of this memory device. This value is set by the manufacturer and normally is not changeable.

Source

pub fn attributes(&self) -> Option<u8>

Bits 7-4: reserved Bits 3-0: rank Value=0 for unknown rank information

Source

pub fn extended_size(&self) -> Option<MemorySizeExtended>

Extended size of the memory device in MB (complements the Size field at offset 0Ch)

Source

pub fn configured_memory_speed(&self) -> Option<MemorySpeed>

Identifies the configured speed of the memory device, in megatransfers per second (MT/s). See 7.18.4 for details. 0000h = the speed is unknown FFFFh = the speed is 65,535 MT/s or greater, and the actual speed is stored in the Extended Configured Memory Speed field

Source

pub fn minimum_voltage(&self) -> Option<u16>

Minimum operating voltage for this device, in millivolts If the value is 0, the voltage is unknown.

Source

pub fn maximum_voltage(&self) -> Option<u16>

Maximum operating voltage for this device, in millivolts If the value is 0, the voltage is unknown.

Source

pub fn configured_voltage(&self) -> Option<u16>

Configured voltage for this device, in millivolts If the value is 0, the voltage is unknown.

Source

pub fn memory_technology(&self) -> Option<MemoryDeviceTechnologyData>

Memory technology type for this memory device.

Source

pub fn memory_operating_mode_capability( &self, ) -> Option<MemoryOperatingModeCapabilities>

The operating modes supported by this memory device.

Source

pub fn firmware_version(&self) -> SMBiosString

The firmware version of this memory device.

Source

pub fn module_manufacturer_id(&self) -> Option<u16>

The two-byte module manufacturer ID found in the SPD of this memory device; LSB first.

Source

pub fn module_product_id(&self) -> Option<u16>

The two-byte module product ID found in the SPD of this memory device; LSB first.

Source

pub fn memory_subsystem_controller_manufacturer_id(&self) -> Option<u16>

The two-byte memory subsystem controller manufacturer ID found in the SPD of this memory device; LSB first.

Source

pub fn memory_subsystem_controller_product_id(&self) -> Option<u16>

The two-byte memory subsystem controller product ID found in the SPD of this memory device; LSB first.

Source

pub fn non_volatile_size(&self) -> Option<MemoryIndicatedSize>

Size of the Non-volatile portion of the memory device in Bytes, if any.

If the value is 0, there is no non-volatile portion.

Source

pub fn volatile_size(&self) -> Option<MemoryIndicatedSize>

Size of the Volatile portion of the memory device in Bytes, if any.

If the value is 0, there is no Volatile portion.

Source

pub fn cache_size(&self) -> Option<MemoryIndicatedSize>

Size of the Cache portion of the memory device in Bytes, if any.

If the value is 0, there is no Cache portion.

Source

pub fn logical_size(&self) -> Option<MemoryIndicatedSize>

Size of the Logical memory device in Bytes.

Source

pub fn extended_speed(&self) -> Option<MemorySpeedExtended>

Extended speed of the memory device (complements the Speed field at offset 15h). Identifies the maximum capable speed of the device, in megatransfers per second (MT/s).

Source

pub fn extended_configured_memory_speed(&self) -> Option<MemorySpeedExtended>

Extended configured memory speed of the memory device (complements the ‘configured_memory_speed’ field at offset 20h).

Identifies the configured speed of the memory device, in megatransfers per second (MT/s)

The ‘extended_speed’ and ‘extended_configured_memory_speed’ fields are intended to represent memory devices that operate faster than 65,535 MT/s, which cannot be described using the Speed or Configured Memory Speed fields. These fields are only meaningful if the value in the Speed or Configured Memory Speed fields are FFFFh. For compatibility with older SMBIOS parsers, memory devices slower than 65,535 MT/s should represent their speed using the Speed and Configured Memory Speed fields, leaving the Extended Speed and Extended Configured Memory Speed fields set to 0.

Bit 31 is reserved for future use and must be set to 0 Bits 30:0 represent the speed or configured memory speed of the device in MT/s.

Source

pub fn pmic0_manufacturer_id(&self) -> Option<u16>

The two-byte PMIC0 manufacturer ID found in the SPD of this memory device; LSB first.

The PMIC0 Manufacturer ID indicates the manufacturer of the PMIC0 on memory device. This field shall be set to the value of the SPD PMIC 0 Manufacturer ID Code. A value of 0000h indicates the PMIC0 Manufacturer ID is unknown.

NOTE The location (byte addresses) of the SPD PMIC 0 Manufacturer ID Code may vary and is defined by the memory type/technology SPD Standard. For example, for RDIMM DDR5, this field will have the first byte correspond to the value in byte 198 and the second byte corresponds to the value in byte 199. If SPD doesn’t contain Register Revision Number, this field shall be set to 0000h

Source

pub fn pmic0_revision_number(&self) -> Option<u16>

The PMIC 0 Revision Number found in the SPD of this memory device.

The PMIC0 Revision Number indicates the revision of the PMIC0 on memory device. This field shall be set to the value of the SPD PMIC 0 Revision Number. A value of FF00h indicates the PMIC0 Revision Number is unknown.

NOTE The location (byte addresses) of the SPD PMIC 0 Revision Number may vary and is defined by the memory type/technology SPD Standard. For example, for RDIMM DDR5, this field will have the first byte correspond to the value in byte 201 and the second byte shall be set to 00h. If SPD doesn’t contain Register Revision Number, this field shall be set to FF00h.

Source

pub fn rcd_manufacturer_id(&self) -> Option<u16>

The two-byte RCD manufacturer ID found in the SPD of this memory device; LSB first.

The RCD Manufacturer ID indicates the manufacturer of the RCD on memory device. This field shall be set to the value of the SPD Registering Clock Driver Manufacturer ID Code. A value of 0000h indicates the RCD Manufacturer ID is unknown.

NOTE The location (byte addresses) of the SPD Registering Clock Driver Manufacturer ID Code may vary and is defined by the memory type/technology SPD Standard. For example, for RDIMM DDR5, this field will have the first byte correspond to the value in byte 240 and the second byte corresponds to the value in byte 241. If SPD doesn’t contain Register Revision Number, this field shall be set to 0000h.

Source

pub fn rcd_revision_number(&self) -> Option<u16>

The RCD 0 Revision Number found in the SPD of this memory device.

The RCD Revision Number indicates the revision of the RCD on memory device. This field shall be set to the value of the SPD Register Revision Number. A value of FF00h indicates the RCD Revision Number is unknown.

NOTE The location (byte addresses) of the SPD Register Revision Number may vary and is defined by the memory type/technology SPD Standard. For example, for RDIMM DDR5, this field will have the first byte correspond to the value in byte 243 and the second byte shall be set to 00h. If SPD doesn’t contain Register Revision Number, this field shall be set to FF00h

Trait Implementations§

Source§

impl Debug for SMBiosMemoryDevice<'_>

Source§

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

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

impl<'a> SMBiosStruct<'a> for SMBiosMemoryDevice<'a>

Source§

const STRUCT_TYPE: u8 = 17u8

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 SMBiosMemoryDevice<'_>

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§

§

impl<'a> Freeze for SMBiosMemoryDevice<'a>

§

impl<'a> RefUnwindSafe for SMBiosMemoryDevice<'a>

§

impl<'a> Send for SMBiosMemoryDevice<'a>

§

impl<'a> Sync for SMBiosMemoryDevice<'a>

§

impl<'a> Unpin for SMBiosMemoryDevice<'a>

§

impl<'a> UnwindSafe for SMBiosMemoryDevice<'a>

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.