ostd/arch/x86/device/
cmos.rs#![expect(unused_variables)]
use acpi::fadt::Fadt;
use x86_64::instructions::port::{ReadOnlyAccess, WriteOnlyAccess};
use crate::{
arch::kernel::acpi::get_acpi_tables,
io::{sensitive_io_port, IoPort},
};
sensitive_io_port!(unsafe {
pub static CMOS_ADDRESS: IoPort<u8, WriteOnlyAccess> = IoPort::new(0x70);
pub static CMOS_DATA: IoPort<u8, ReadOnlyAccess> = IoPort::new(0x71);
});
pub fn century_register() -> Option<u8> {
let acpi_tables = get_acpi_tables()?;
match acpi_tables.find_table::<Fadt>() {
Ok(a) => Some(a.century),
Err(er) => None,
}
}