From 1e81c9d78b954277cc14e24a151e25fc473ddd7c Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Wed, 16 Nov 2022 13:53:04 -0700
Subject: [PATCH] Fix compilation without ACPI feature

---
 src/arch/x86/time.rs    | 20 +++++++++++---------
 src/arch/x86_64/time.rs | 20 +++++++++++---------
 2 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/src/arch/x86/time.rs b/src/arch/x86/time.rs
index 5e1ab17b..665f8ce5 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 5e1ab17b..665f8ce5 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
 }
-- 
GitLab