async works!
This commit is contained in:
@@ -79,7 +79,7 @@ extern "x86-interrupt" fn double_fault_handler(
|
||||
}
|
||||
|
||||
extern "x86-interrupt" fn keyboard_interrupt_handler(_stack_frame: InterruptStackFrame) {
|
||||
use pc_keyboard::{layouts, HandleControl, Keyboard, ScancodeSet1};
|
||||
use pc_keyboard::{HandleControl, Keyboard, ScancodeSet1, layouts};
|
||||
// use pc_keyboard::DecodedKey;
|
||||
use spin::Mutex;
|
||||
use x86_64::instructions::port::Port;
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ extern crate alloc;
|
||||
use core::arch::asm;
|
||||
use limine::BaseRevision;
|
||||
|
||||
use libk::alloc::init_heap;
|
||||
use libk::kalloc::init_heap;
|
||||
use libk::prelude::*;
|
||||
|
||||
use x86_64::VirtAddr;
|
||||
|
||||
+4
-3
@@ -4,9 +4,10 @@
|
||||
extern crate alloc;
|
||||
|
||||
use libk::{
|
||||
io,
|
||||
io::{self, keyboard},
|
||||
prelude::*,
|
||||
scheduling::task::{Executor, Task},
|
||||
// scheduling::task::{Executor, Task},
|
||||
};
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
@@ -46,8 +47,8 @@ extern "C" fn kmain() -> ! {
|
||||
);
|
||||
|
||||
let mut executor = Executor::new();
|
||||
executor.spawn(Task::new(io::keyboard::print_keypresses()));
|
||||
executor.try_run();
|
||||
executor.spawn(Task::new(keyboard::print_keypresses()));
|
||||
executor.run();
|
||||
|
||||
loop {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user