summaryrefslogtreecommitdiff
path: root/kernel/src/interrupts/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/interrupts/mod.rs')
-rw-r--r--kernel/src/interrupts/mod.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/kernel/src/interrupts/mod.rs b/kernel/src/interrupts/mod.rs
index 087a59c..076c61c 100644
--- a/kernel/src/interrupts/mod.rs
+++ b/kernel/src/interrupts/mod.rs
@@ -1,8 +1,11 @@
pub mod exceptions;
pub mod gdt;
pub mod idt;
+pub mod interrupts;
-#[repr(usize)]
+const INT_OFFSET: u8 = 32;
+
+#[repr(u8)]
#[derive(PartialEq, Clone, Copy)]
pub enum Interrupts {
None,
@@ -11,4 +14,17 @@ pub enum Interrupts {
NotPresent,
Breakpoint,
GeneralProtectionFault,
+
+ Timer = INT_OFFSET,
+ Keyboard = INT_OFFSET + 1,
+}
+
+impl Interrupts {
+ fn as_u8(self) -> u8 {
+ self as u8
+ }
+
+ fn as_usize(self) -> usize {
+ usize::from(self.as_u8())
+ }
}