diff --git a/src/arch/x86/time.rs b/src/arch/x86/time.rs index 5e1ab17be008abadf2b82618c28931d1e397ba42..665f8ce505658d5bcb47b5095bcd3fa996b8fe77 100644 --- a/src/arch/x86/time.rs +++ b/src/arch/x86/time.rs @@ -1,8 +1,10 @@ -use crate::acpi::ACPI_TABLE; -use super::device::{hpet, pit}; +#[cfg(feature = "acpi")] +use super::device::hpet; +use super::device::pit; pub fn counter() -> u128 { - if let Some(ref hpet) = *ACPI_TABLE.hpet.read() { + #[cfg(feature = "acpi")] + if let Some(ref hpet) = *crate::acpi::ACPI_TABLE.hpet.read() { //TODO: handle rollover? //TODO: improve performance @@ -20,11 +22,11 @@ pub fn counter() -> u128 { // Calculate ticks since last interrupt let elapsed = counter.saturating_sub(last_interrupt); // Calculate nanoseconds since last interrupt - (elapsed as u128 * period_fs as u128) / 1_000_000 - } else { - // Read ticks since last interrupt - let elapsed = unsafe { pit::read() }; - // Calculate nanoseconds since last interrupt - (elapsed as u128 * pit::PERIOD_FS) / 1_000_000 + return (elapsed as u128 * period_fs as u128) / 1_000_000; } + + // Read ticks since last interrupt + let elapsed = unsafe { pit::read() }; + // Calculate nanoseconds since last interrupt + (elapsed as u128 * pit::PERIOD_FS) / 1_000_000 } diff --git a/src/arch/x86_64/time.rs b/src/arch/x86_64/time.rs index 5e1ab17be008abadf2b82618c28931d1e397ba42..665f8ce505658d5bcb47b5095bcd3fa996b8fe77 100644 --- a/src/arch/x86_64/time.rs +++ b/src/arch/x86_64/time.rs @@ -1,8 +1,10 @@ -use crate::acpi::ACPI_TABLE; -use super::device::{hpet, pit}; +#[cfg(feature = "acpi")] +use super::device::hpet; +use super::device::pit; pub fn counter() -> u128 { - if let Some(ref hpet) = *ACPI_TABLE.hpet.read() { + #[cfg(feature = "acpi")] + if let Some(ref hpet) = *crate::acpi::ACPI_TABLE.hpet.read() { //TODO: handle rollover? //TODO: improve performance @@ -20,11 +22,11 @@ pub fn counter() -> u128 { // Calculate ticks since last interrupt let elapsed = counter.saturating_sub(last_interrupt); // Calculate nanoseconds since last interrupt - (elapsed as u128 * period_fs as u128) / 1_000_000 - } else { - // Read ticks since last interrupt - let elapsed = unsafe { pit::read() }; - // Calculate nanoseconds since last interrupt - (elapsed as u128 * pit::PERIOD_FS) / 1_000_000 + return (elapsed as u128 * period_fs as u128) / 1_000_000; } + + // Read ticks since last interrupt + let elapsed = unsafe { pit::read() }; + // Calculate nanoseconds since last interrupt + (elapsed as u128 * pit::PERIOD_FS) / 1_000_000 }