Struct smbioslib::SMBiosEntryPoint64[][src]

pub struct SMBiosEntryPoint64 { /* fields omitted */ }

SMBIOS 3.0 (64 bit) Entry Point structure

On non-UEFI systems, the 64-bit SMBIOS Entry Point structure can be located by application software by searching for the anchor-string on paragraph (16-byte) boundaries within the physical memory address range 000F0000h to 000FFFFFh.

On UEFI-based systems, the SMBIOS Entry Point structure can be located by looking in the EFI Configuration Table for the SMBIOS 3.x GUID (SMBIOS3_TABLE_GUID, {F2FD1544-9794-4A2C-992E836 E5BBCF20E394}) and using the associated pointer. See section 4.6 of the UEFI Specification for details. See section 2.3 of the UEFI Specification for how to report the containing memory type.

Implementations

impl<'a> SMBiosEntryPoint64[src]

pub const MINIMUM_SIZE: usize[src]

Minimum acceptable size of this structure

TODO: Review DMTF SMBIOS document history and see if structure sizes smaller than 0x18 existed. If so then change this structure design to return Option<> values and adjust this size accordingly.

pub const SM3_ANCHOR: [u8; 5][src]

Anchor String “SM3” (offset 0)

pub const ENTRY_POINT_STRUCTURE_CHECKSUM_OFFSET: usize[src]

Entry Point Structure Checksum Offset

pub const ENTRY_POINT_LENGTH_OFFSET: usize[src]

Entry Point Length Offset

pub const MAJOR_VERSION_OFFSET: usize[src]

SMBIOS Major Version Offset

pub const MINOR_VERSION_OFFSET: usize[src]

SMBIOS Minor Version Offset

pub const DOCREV_OFFSET: usize[src]

SMBIOS Docrev

pub const ENTRY_POINT_REVISION_OFFSET: usize[src]

Entry Point Revision Offset

pub const STRUCTURE_TABLE_MAXIMUM_SIZE_OFFSET: usize[src]

Structure Table Maximum Size Offset

pub const STRUCTURE_TABLE_ADDRESS_OFFSET: usize[src]

Structure Table Address Offset

pub fn entry_point_structure_checksum(&self) -> u8[src]

Entry Point Structure Checksum

Checksum of the Entry Point Structure (EPS)

This value, when added to all other bytes in the EPS, results in the value 00h (using 8-bit addition calculations). Values in the EPS are summed starting at offset 00h, for entry_point_length bytes.

pub fn entry_point_length(&self) -> u8[src]

Entry Point Length

Length of the Entry Point Structure, starting with the Anchor String field, in bytes, currently 18h

pub fn major_version(&self) -> u8[src]

SMBIOS Major Version

Major version of this specification implemented in the table structures (for example, the value is 0Ah (10) for revision 10.22 and 02h for revision 2.1)

pub fn minor_version(&self) -> u8[src]

SMBIOS Minor Version

Minor version of this specification implemented in the table structures (for example, the value is 16h (22) for revision 10.22 and 01h for revision 2.1)

pub fn docrev(&self) -> u8[src]

SMBIOS Docrev

Identifies the docrev of this specification implemented in the table structures (for example, the value is 00h for revision 10.22.0 and 01h for revision 2.7.1).

pub fn entry_point_revision(&self) -> u8[src]

Entry Point Revision

EPS revision implemented in this structure and identifies the formatting of offsets 0Bh and beyond as follows:

  • 00h Reserved for assignment by this specification
  • 01h Entry Point is based on SMBIOS 3.0 definition;
  • 02h-FFh Reserved for assignment by this specification; offsets 0Ch-17h are defined per revision 01h

pub fn structure_table_maximum_size(&self) -> u32[src]

Structure Table Maximum Size

Maximum size of SMBIOS Structure Table, pointed to by the Structure Table Address, in bytes. The actual size is guaranteed to be less or equal to the maximum size.

pub fn structure_table_address(&self) -> u64[src]

Structure Table Address

The 64-bit physical starting address of the read-only SMBIOS Structure Table, which can start at any 64-bit address. This area contains all of the SMBIOS structures fully packed together

pub fn try_load_from_file(filename: &Path) -> Result<Self, Error>[src]

Load this structure from a file

pub fn try_scan_from_file<T: Iterator<Item = u64>>(
    file: &mut File,
    range: T
) -> Result<Self, Error> where
    T: RangeBounds<u64>, 
[src]

Load this structure by scanning a file within the given offsets, looking for the SMBiosEntryPoint64::SM3_ANCHOR string.

Trait Implementations

impl Debug for SMBiosEntryPoint64[src]

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

Formats the value using the given formatter. Read more

impl Serialize for SMBiosEntryPoint64[src]

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

Serialize this value into the given Serde serializer. Read more

impl<'a> TryFrom<Vec<u8, Global>> for SMBiosEntryPoint64[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(raw: Vec<u8>) -> Result<Self, Self::Error>[src]

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T

Notable traits for &'_ mut R

impl<'_, R> Read for &'_ mut R where
    R: Read + ?Sized
impl<'_, W> Write for &'_ mut W where
    W: Write + ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

Notable traits for &'_ mut R

impl<'_, R> Read for &'_ mut R where
    R: Read + ?Sized
impl<'_, W> Write for &'_ mut W where
    W: Write + ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.