#[repr(C, packed(1))]pub struct SdtHeader {
pub signature: Signature,
pub length: u32,
pub revision: u8,
pub checksum: u8,
pub oem_id: [u8; 6],
pub oem_table_id: [u8; 8],
pub oem_revision: u32,
pub creator_id: u32,
pub creator_revision: u32,
}Expand description
All SDTs share the same header, and are length bytes long. The signature tells us which SDT
this is.
The ACPI Spec (Version 6.4) defines the following SDT signatures:
- APIC - Multiple APIC Description Table (MADT)
- BERT - Boot Error Record Table
- BGRT - Boot Graphics Resource Table
- CPEP - Corrected Platform Error Polling Table
- DSDT - Differentiated System Description Table (DSDT)
- ECDT - Embedded Controller Boot Resources Table
- EINJ - Error Injection Table
- ERST - Error Record Serialization Table
- FACP - Fixed ACPI Description Table (FADT)
- FACS - Firmware ACPI Control Structure
- FPDT - Firmware Performance Data Table
- GTDT - Generic Timer Description Table
- HEST - Hardware Error Source Table
- MSCT - Maximum System Characteristics Table
- MPST - Memory Power StateTable
- NFIT - NVDIMM Firmware Interface Table
- OEMx - OEM Specific Information Tables
- PCCT - Platform Communications Channel Table
- PHAT - Platform Health Assessment Table
- PMTT - Platform Memory Topology Table
- PSDT - Persistent System Description Table
- RASF - ACPI RAS Feature Table
- RSDT - Root System Description Table
- SBST - Smart Battery Specification Table
- SDEV - Secure DEVices Table
- SLIT - System Locality Distance Information Table
- SRAT - System Resource Affinity Table
- SSDT - Secondary System Description Table
- XSDT - Extended System Description Table
Acpi reserves the following signatures and the specifications for them can be found here:
- AEST - ARM Error Source Table
- BDAT - BIOS Data ACPI Table
- CDIT - Component Distance Information Table
- CEDT - CXL Early Discovery Table
- CRAT - Component Resource Attribute Table
- CSRT - Core System Resource Table
- DBGP - Debug Port Table
- DBG2 - Debug Port Table 2 (note: ACPI 6.4 defines this as “DBPG2” but this is incorrect)
- DMAR - DMA Remapping Table
- DRTM -Dynamic Root of Trust for Measurement Table
- ETDT - Event Timer Description Table (obsolete, superseeded by HPET)
- HPET - IA-PC High Precision Event Timer Table
- IBFT - iSCSI Boot Firmware Table
- IORT - I/O Remapping Table
- IVRS - I/O Virtualization Reporting Structure
- LPIT - Low Power Idle Table
- MCFG - PCI Express Memory-mapped Configuration Space base address description table
- MCHI - Management Controller Host Interface table
- MPAM - ARM Memory Partitioning And Monitoring table
- MSDM - Microsoft Data Management Table
- PRMT - Platform Runtime Mechanism Table
- RGRT - Regulatory Graphics Resource Table
- SDEI - Software Delegated Exceptions Interface table
- SLIC - Microsoft Software Licensing table
- SPCR - Microsoft Serial Port Console Redirection table
- SPMI - Server Platform Management Interface table
- STAO - _STA Override table
- SVKL - Storage Volume Key Data table (Intel TDX only)
- TCPA - Trusted Computing Platform Alliance Capabilities Table
- TPM2 - Trusted Platform Module 2 Table
- UEFI - Unified Extensible Firmware Interface Specification table
- WAET - Windows ACPI Emulated Devices Table
- WDAT - Watch Dog Action Table
- WDRT - Watchdog Resource Table
- WPBT - Windows Platform Binary Table
- WSMT - Windows Security Mitigations Table
- XENV - Xen Project
Fields§
§signature: Signature§length: u32§revision: u8§checksum: u8§oem_id: [u8; 6]§oem_table_id: [u8; 8]§oem_revision: u32§creator_id: u32§creator_revision: u32Implementations§
Source§impl SdtHeader
impl SdtHeader
Sourcepub fn validate(&self, signature: Signature) -> AcpiResult<()>
pub fn validate(&self, signature: Signature) -> AcpiResult<()>
Checks that:
- The signature matches the one given.
- The values of various fields in the header are allowed.
- The checksum of the SDT is valid.
This assumes that the whole SDT is mapped.
pub fn oem_id(&self) -> &str
pub fn oem_table_id(&self) -> &str
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SdtHeader
impl RefUnwindSafe for SdtHeader
impl Send for SdtHeader
impl Sync for SdtHeader
impl Unpin for SdtHeader
impl UnwindSafe for SdtHeader
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)