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 609fb6d..bc313b8 100644
--- a/kernel/src/interrupts/mod.rs
+++ b/kernel/src/interrupts/mod.rs
@@ -2,8 +2,11 @@ pub mod apic;
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,
@@ -12,4 +15,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())
+ }
}