aboutsummaryrefslogtreecommitdiff
path: root/bunny/src/io.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bunny/src/io.rs')
-rw-r--r--bunny/src/io.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/bunny/src/io.rs b/bunny/src/io.rs
new file mode 100644
index 0000000..2fae55a
--- /dev/null
+++ b/bunny/src/io.rs
@@ -0,0 +1,18 @@
+use x86_64::instructions::port::{Port, PortReadWrite};
+
+const PIC1 : u16 = 0x20;
+const PIC2 : u16 = 0xa0;
+#[allow(unused)]
+pub const PIC1_COMMAND : u16 = PIC1;
+pub const PIC1_DATA : u16 = PIC1;
+#[allow(unused)]
+pub const PIC2_COMMAND : u16 = PIC2 + 1;
+pub const PIC2_DATA : u16 = PIC2 + 1;
+
+pub const PIC_DISABLE : u8 = 0xff;
+
+#[inline(always)]
+pub unsafe fn out<T: PortReadWrite>(port: u16, value: T) {
+ let mut p = Port::new(port);
+ p.write(value)
+}