aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTianhao Wang <wth@riseup.net>2024-02-01 17:04:23 +0100
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:13:37 +0200
commit16ff930f94a1c5cfa4a98a42a96c9b230024286b (patch)
tree3bff5b41d787cef7c01f502871a358849d209ebd /src
parent5c820128d39a2e8e37baa03f57a216aa7300232d (diff)
make device_io a arch independent interface.
In arm we will be using MMIO instead of the IO instructions. However the peripherals should use the same interface for IOs.
Diffstat (limited to 'src')
-rw-r--r--src/machine/cgascr.rs2
-rw-r--r--src/machine/device_io.rs2
-rw-r--r--src/machine/keyctrl.rs5
-rw-r--r--src/machine/mod.rs1
4 files changed, 6 insertions, 4 deletions
diff --git a/src/machine/cgascr.rs b/src/machine/cgascr.rs
index 0983b66..634373c 100644
--- a/src/machine/cgascr.rs
+++ b/src/machine/cgascr.rs
@@ -1,4 +1,4 @@
-use crate::arch::x86_64::io_port::*;
+use crate::machine::device_io::*;
use crate::arch::x86_64::misc::*;
use core::{fmt, ptr, slice, str};
diff --git a/src/machine/device_io.rs b/src/machine/device_io.rs
new file mode 100644
index 0000000..4573653
--- /dev/null
+++ b/src/machine/device_io.rs
@@ -0,0 +1,2 @@
+#[cfg(target_arch = "x86_64")]
+pub use crate::arch::x86_64::io_port::*;
diff --git a/src/machine/keyctrl.rs b/src/machine/keyctrl.rs
index 14e7aa4..93bd419 100644
--- a/src/machine/keyctrl.rs
+++ b/src/machine/keyctrl.rs
@@ -1,9 +1,8 @@
use self::super::kbd_defs::*;
use self::super::key::*;
-use crate::arch::x86_64::io_port::*;
+use crate::machine::device_io::*;
-// this is the driver for keyboard controller
-// not to confuse with the keyboard module.
+// this is the driver for keyboard controller not to confuse with the keyboard module.
// The later is an abstraction
// This one serves a the HW driver
diff --git a/src/machine/mod.rs b/src/machine/mod.rs
index c6f6fec..a9cf4cb 100644
--- a/src/machine/mod.rs
+++ b/src/machine/mod.rs
@@ -5,5 +5,6 @@ pub mod key;
pub mod keyctrl;
pub mod mem;
pub mod plugbox;
+pub mod device_io;
// TODO: this module *should* be arch independent.