(_stackframe: InterruptStackFrame)
| 76 | } |
| 77 | |
| 78 | extern "x86-interrupt" fn keyboard_interrupt_handler(_stackframe: InterruptStackFrame) { |
| 79 | use x86_64::instructions::port::Port; |
| 80 | |
| 81 | let mut port = Port::new(0x60); |
| 82 | let scancode: u8 = unsafe |
| 83 | { |
| 84 | port.read() |
| 85 | }; |
| 86 | |
| 87 | crate::task::kbd::add_scancode(scancode); |
| 88 | |
| 89 | unsafe |
| 90 | { |
| 91 | PICS.lock() |
| 92 | .notify_intrend(IntrIdx::Keyboard.asu8()); |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | use x86_64::structures::idt::PageFaultErrorCode; |
| 97 | use crate::hltloop; |
nothing calls this directly
no test coverage detected