diff --git a/Cargo.lock b/Cargo.lock index 6fd77842..23c1e596 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,11 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + [[package]] name = "bit_field" version = "0.9.0" @@ -17,6 +23,8 @@ name = "blog_os" version = "0.1.0" dependencies = [ "bootloader", + "conquer-once", + "crossbeam-queue", "lazy_static", "linked_list_allocator", "pc-keyboard", @@ -33,12 +41,53 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ed4f735c4e455ba86a3d2939b1c0729414153642106c9d035693355630a42c" +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "conquer-once" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7644600a548ecad74e4a918392af1798f7dd045be610be3203b9e129b4f98f" +dependencies = [ + "conquer-util", +] + +[[package]] +name = "conquer-util" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654fb2472cc369d311c547103a1fa81d467bef370ae7a0680f65939895b1182a" + [[package]] name = "cpuio" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22b8e308ccfc5acf3b82f79c0eac444cf6114cb2ac67a230ca6c177210068daa" +[[package]] +name = "crossbeam-queue" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg", + "cfg-if", +] + [[package]] name = "lazy_static" version = "1.4.0" diff --git a/Cargo.toml b/Cargo.toml index 62165b49..39198cd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,14 @@ linked_list_allocator = "0.8.0" version = "1.0" features = ["spin_no_std"] +[dependencies.crossbeam-queue] +version = "0.2.1" +default-features = false +features = ["alloc"] + +[dependencies.conquer-once] +version = "0.2.0" +default-features = false [package.metadata.bootimage] test-args = [ diff --git a/src/task/keyboard.rs b/src/task/keyboard.rs new file mode 100644 index 00000000..68f0029a --- /dev/null +++ b/src/task/keyboard.rs @@ -0,0 +1,4 @@ +use conquer_once::spin::OnceCell; +use crossbeam_queue::ArrayQueue; + +static SCANCODE_QUEUE: OnceCell> = OnceCell::uninit(); diff --git a/src/task/mod.rs b/src/task/mod.rs index 651251ff..7624cca7 100644 --- a/src/task/mod.rs +++ b/src/task/mod.rs @@ -5,6 +5,7 @@ use core::{ task::{Context, Poll}, }; +pub mod keyboard; pub mod simple_executor; pub struct Task {