Fadt

Struct Fadt 

Source
pub struct Fadt {
Show 21 fields pub sci_interrupt: u16, pub smi_cmd_port: u32, pub acpi_enable: u8, pub acpi_disable: u8, pub s4bios_req: u8, pub pstate_control: u8, pub gpe1_base: u8, pub c_state_control: u8, pub worst_c2_latency: u16, pub worst_c3_latency: u16, pub flush_size: u16, pub flush_stride: u16, pub duty_offset: u8, pub duty_width: u8, pub day_alarm: u8, pub month_alarm: u8, pub century: u8, pub iapc_boot_arch: IaPcBootArchFlags, pub flags: FixedFeatureFlags, pub reset_value: u8, pub arm_boot_arch: ArmBootArchFlags, /* private fields */
}
Expand description

Represents the Fixed ACPI Description Table (FADT). This table contains various fixed hardware details, such as the addresses of the hardware register blocks. It also contains a pointer to the Differentiated Definition Block (DSDT).

In cases where the FADT contains both a 32-bit and 64-bit field for the same address, we should always prefer the 64-bit one. Only if it’s zero or the CPU will not allow us to access that address should the 32-bit one be used.

Fields§

§sci_interrupt: u16

On systems with an i8259 PIC, this is the vector the System Control Interrupt (SCI) is wired to. On other systems, this is the Global System Interrupt (GSI) number of the SCI.

The SCI should be treated as a sharable, level, active-low interrupt.

§smi_cmd_port: u32

The system port address of the SMI Command Port. This port should only be accessed from the boot processor. A value of 0 indicates that System Management Mode is not supported.

  • Writing the value in acpi_enable to this port will transfer control of the ACPI hardware registers from the firmware to the OS. You must synchronously wait for the transfer to complete, indicated by the setting of SCI_EN.
  • Writing the value in acpi_disable will relinquish ownership of the hardware registers to the firmware. This should only be done if you’ve previously acquired ownership. Before writing this value, the OS should mask all SCI interrupts and clear the SCI_EN bit.
  • Writing the value in s4bios_req requests that the firmware enter the S4 state through the S4BIOS feature. This is only supported if the S4BIOS_F flag in the FACS is set.
  • Writing the value in pstate_control yields control of the processor performance state to the OS. If this field is 0, this feature is not supported.
  • Writing the value in c_state_control tells the firmware that the OS supports _CST AML objects and notifications of C State changes.
§acpi_enable: u8§acpi_disable: u8§s4bios_req: u8§pstate_control: u8§gpe1_base: u8§c_state_control: u8§worst_c2_latency: u16

The worst-case latency to enter and exit the C2 state, in microseconds. A value >100 indicates that the system does not support the C2 state.

§worst_c3_latency: u16

The worst-case latency to enter and exit the C3 state, in microseconds. A value >1000 indicates that the system does not support the C3 state.

§flush_size: u16§flush_stride: u16§duty_offset: u8§duty_width: u8§day_alarm: u8§month_alarm: u8§century: u8§iapc_boot_arch: IaPcBootArchFlags§flags: FixedFeatureFlags§reset_value: u8§arm_boot_arch: ArmBootArchFlags

Implementations§

Source§

impl Fadt

Source

pub fn validate(&self) -> Result<(), AcpiError>

Source

pub fn facs_address(&self) -> Result<usize, AcpiError>

Source

pub fn dsdt_address(&self) -> Result<usize, AcpiError>

Source

pub fn power_profile(&self) -> PowerProfile

Source

pub fn pm1a_event_block(&self) -> Result<GenericAddress, AcpiError>

Source

pub fn pm1b_event_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn pm1a_control_block(&self) -> Result<GenericAddress, AcpiError>

Source

pub fn pm1b_control_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn pm2_control_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn pm_timer_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Attempts to parse the FADT’s PWM timer blocks, first returning the extended block, and falling back to parsing the legacy block into a GenericAddress.

Source

pub fn gpe0_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn gpe1_block(&self) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn reset_register(&self) -> Result<GenericAddress, AcpiError>

Source

pub fn sleep_control_register( &self, ) -> Result<Option<GenericAddress>, AcpiError>

Source

pub fn sleep_status_register(&self) -> Result<Option<GenericAddress>, AcpiError>

Trait Implementations§

Source§

impl AcpiTable for Fadt

§Safety: Implementation properly represents a valid FADT.
Source§

const SIGNATURE: Signature = Signature::FADT

Source§

fn header(&self) -> &SdtHeader

Source§

fn validate(&self) -> AcpiResult<()>

Source§

impl Clone for Fadt

Source§

fn clone(&self) -> Fadt

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Fadt

Source§

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

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

impl Copy for Fadt

Auto Trait Implementations§

§

impl Freeze for Fadt

§

impl RefUnwindSafe for Fadt

§

impl Send for Fadt

§

impl Sync for Fadt

§

impl Unpin for Fadt

§

impl UnwindSafe for Fadt

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

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

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
§

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

Performs the conversion.