File tree 2 files changed +20
-8
lines changed
2 files changed +20
-8
lines changed Original file line number Diff line number Diff line change 2
2
//!
3
3
//! Currently does not support fancy stuff like key repeats
4
4
use crate :: {
5
+ events:: schedule_kernel,
5
6
interrupts:: { idt:: without_interrupts, x2apic} ,
6
7
serial_println,
7
8
} ;
@@ -190,10 +191,15 @@ pub extern "x86-interrupt" fn keyboard_handler(_frame: InterruptStackFrame) {
190
191
let mut port = Port :: new ( 0x60 ) ;
191
192
let scancode: u8 = unsafe { port. read ( ) } ;
192
193
193
- let mut keyboard = KEYBOARD . lock ( ) ;
194
- if let Err ( e) = keyboard. process_scancode ( scancode) {
195
- serial_println ! ( "Error processing keyboard scancode: {:?}" , e) ;
196
- }
194
+ schedule_kernel (
195
+ async move {
196
+ let mut keyboard = KEYBOARD . lock ( ) ;
197
+ if let Err ( e) = keyboard. process_scancode ( scancode) {
198
+ serial_println ! ( "Error processing keyboard scancode: {:?}" , e) ;
199
+ }
200
+ } ,
201
+ 0 ,
202
+ ) ;
197
203
198
204
x2apic:: send_eoi ( ) ;
199
205
}
Original file line number Diff line number Diff line change 4
4
//! synchronous and asynchronous interfaces for mouse events
5
5
6
6
use crate :: {
7
+ events:: schedule_kernel,
7
8
interrupts:: { idt:: without_interrupts, x2apic} ,
8
9
serial_println,
9
10
} ;
@@ -597,10 +598,15 @@ pub extern "x86-interrupt" fn mouse_handler(_frame: InterruptStackFrame) {
597
598
let mut data_port = Port :: new ( PS2Port :: DATA ) ;
598
599
let data: u8 = unsafe { data_port. read ( ) } ;
599
600
600
- let mut mouse = MOUSE . lock ( ) ;
601
- if let Err ( e) = mouse. process_mouse_byte ( data) {
602
- serial_println ! ( "Error processing mouse data: {:?}" , e) ;
603
- }
601
+ schedule_kernel (
602
+ async move {
603
+ let mut mouse = MOUSE . lock ( ) ;
604
+ if let Err ( e) = mouse. process_mouse_byte ( data) {
605
+ serial_println ! ( "Error processing mouse data: {:?}" , e) ;
606
+ }
607
+ } ,
608
+ 0 ,
609
+ ) ;
604
610
605
611
x2apic:: send_eoi ( ) ;
606
612
}
You can’t perform that action at this time.
0 commit comments