summaryrefslogtreecommitdiffstats
path: root/kernel/src/arch
diff options
context:
space:
mode:
authorClément Sibille <claymeuns@protonmail.com>2021-10-08 08:17:14 +0200
committerClément Sibille <claymeuns@protonmail.com>2021-10-08 08:17:14 +0200
commit73338c2d453e7a5928fa7f392e1bc2392dbba3cd (patch)
tree6c05321300d9bdac96723da268c6fe0b2f2a5464 /kernel/src/arch
parent06d819c3e8e94972bd4261069d2c5239297bba65 (diff)
Move x86-specific code into an arch/x86 module
Diffstat (limited to 'kernel/src/arch')
-rw-r--r--kernel/src/arch/mod.rs1
-rw-r--r--kernel/src/arch/x86/io.rs14
-rw-r--r--kernel/src/arch/x86/mod.rs1
3 files changed, 16 insertions, 0 deletions
diff --git a/kernel/src/arch/mod.rs b/kernel/src/arch/mod.rs
new file mode 100644
index 0000000..8581bb3
--- /dev/null
+++ b/kernel/src/arch/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod x86;
diff --git a/kernel/src/arch/x86/io.rs b/kernel/src/arch/x86/io.rs
new file mode 100644
index 0000000..a647408
--- /dev/null
+++ b/kernel/src/arch/x86/io.rs
@@ -0,0 +1,14 @@
+pub unsafe fn out8(address: u16, value: u8) {
+ asm!(
+ "out dx, al", in("dx") address, in("al") value
+ );
+}
+
+pub unsafe fn in8(address: u16) -> u8 {
+ let result: u8;
+ asm!(
+ "in al, dx", in("dx") address, out("al") result
+ );
+
+ result
+}
diff --git a/kernel/src/arch/x86/mod.rs b/kernel/src/arch/x86/mod.rs
new file mode 100644
index 0000000..af514a1
--- /dev/null
+++ b/kernel/src/arch/x86/mod.rs
@@ -0,0 +1 @@
+pub mod io;
Go back to lisible.xyz