strat9_kernel/acpi/
waet.rs1use super::sdt::Sdt;
5use zerocopy::FromBytes;
6
7pub const WAET_SIGNATURE: &[u8; 4] = b"WAET";
8
9#[repr(C, packed)]
12#[derive(Clone, Copy, Debug, FromBytes)]
13pub struct Waet {
14 pub header: Sdt,
15 pub emulated_device_flags: u32,
16}
17
18impl Waet {
19 pub fn get() -> Option<&'static Waet> {
21 unsafe { super::find_table(WAET_SIGNATURE).map(|ptr| &*(ptr as *const Waet)) }
22 }
23
24 pub fn rtc_good(&self) -> bool {
27 const RTC_GOOD: u32 = 1 << 0;
28 self.emulated_device_flags & RTC_GOOD == RTC_GOOD
29 }
30
31 pub fn acpi_pm_timer_good(&self) -> bool {
34 const ACPI_PM_TIMER_GOOD: u32 = 1 << 1;
35 self.emulated_device_flags & ACPI_PM_TIMER_GOOD == ACPI_PM_TIMER_GOOD
36 }
37}