diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-03-11 11:05:29 +0100 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-03-11 11:05:29 +0100 |
| commit | 2b4e3f8e68e0fd2c75fb1ca289b632c7dc655d72 (patch) | |
| tree | 791c09f2b6219d63b96dbb62474a9054894b8961 | |
| parent | e722a692daa7e734f425dd3e92d85c1c5b3b9eea (diff) | |
added base handling for keyboard (PS/2) hardware interrupts in src/interrupts.rs
| -rw-r--r-- | StrixKernel/src/interrupts.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/StrixKernel/src/interrupts.rs b/StrixKernel/src/interrupts.rs index 02d39f0..039cb3c 100644 --- a/StrixKernel/src/interrupts.rs +++ b/StrixKernel/src/interrupts.rs @@ -15,10 +15,13 @@ lazy_static! { idt.breakpoint.set_handler_fn(breakpoint_handler); // breakpoint exception handler unsafe { idt.double_fault.set_handler_fn(double_fault_handler) - .set_stack_index(gdt::DOUBLE_FAULT_IST_INDEX); // new + .set_stack_index(gdt::DOUBLE_FAULT_IST_INDEX); } idt[InterruptIndex::Timer.as_usize()] - .set_handler_fn(timer_interrupt_handler); // new + .set_handler_fn(timer_interrupt_handler); + + idt[InterruptIndex::Keyboard.as_usize()] + .set_handler_fn(keyboard_interrupt_handler); idt @@ -57,6 +60,7 @@ pub static PICS: spin::Mutex<ChainedPics> = #[repr(u8)] pub enum InterruptIndex { Timer = PIC_1_OFFSET, + Keyboard, } impl InterruptIndex { @@ -80,6 +84,18 @@ extern "x86-interrupt" fn timer_interrupt_handler( } } +extern "x86-interrupt" fn keyboard_interrupt_handler( + _stack_frame: InterruptStackFrame) +{ + print!("k"); + + unsafe { + PICS.lock() + .notify_end_of_interrupt(InterruptIndex::Keyboard.as_u8()); + } +} + + // TESTS // |
