diff --git a/Cargo.lock b/Cargo.lock index 2ee351708..e773cfeec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22,11 +22,11 @@ dependencies = [ "lazy_static", "linked_list_allocator", "pc-keyboard", - "pic8259_simple", + "pic8259", "spin", "uart_16550", "volatile 0.2.7", - "x86_64 0.13.6", + "x86_64", ] [[package]] @@ -35,12 +35,6 @@ version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe7a297d22859b1cb0b939cfa0b01288d77804c8544acefd2c1135135587f7d" -[[package]] -name = "cpuio" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d531514efb06912141fa65967447de805691b685a7565c87d1765afe34a98aa7" - [[package]] name = "lazy_static" version = "1.4.0" @@ -52,18 +46,18 @@ dependencies = [ [[package]] name = "linked_list_allocator" -version = "0.8.11" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822add9edb1860698b79522510da17bef885171f75aa395cff099d770c609c24" +checksum = "d0b725207570aa16096962d0b20c79f8a543df2280bd3c903022b9b0b4d7ea68" dependencies = [ "spinning_top", ] [[package]] name = "lock_api" -version = "0.3.4" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" dependencies = [ "scopeguard", ] @@ -75,12 +69,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6f2d937e3b8d63449b01401e2bae4041bc9dd1129c2e3e0d239407cf6635ac" [[package]] -name = "pic8259_simple" -version = "0.2.0" +name = "pic8259" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2a5497fb8e59bf8015f67b7dff238d75ef445e03f23edac24ac3a8f09be952" +checksum = "08cc920d83ee33c0f9b73aa441e75468bf2d10c959a3eb6260cf720b05ac91a1" dependencies = [ - "cpuio", + "x86_64", ] [[package]] @@ -97,9 +91,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spinning_top" -version = "0.1.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "047031d6df5f5ae0092c97aa4f6bb04cfc9c081b4cd4cb9cdb38657994279a00" +checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" dependencies = [ "lock_api", ] @@ -111,7 +105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "503a6c0e6d82daa87985e662d120c0176b09587c92a68db22781b28ae95405dd" dependencies = [ "bitflags", - "x86_64 0.14.2", + "x86_64", ] [[package]] @@ -126,16 +120,6 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4c2dbd44eb8b53973357e6e207e370f0c1059990df850aca1eca8947cf464f0" -[[package]] -name = "x86_64" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b49a4cb0a0d9490265cc169ca816014cbf61d3f3b75424815912977b81871" -dependencies = [ - "bit_field", - "bitflags", -] - [[package]] name = "x86_64" version = "0.14.2" diff --git a/Cargo.toml b/Cargo.toml index c687f57f0..87741cd97 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,11 +16,11 @@ harness = false bootloader = { version = "0.9.8", features = ["map_physical_memory"]} volatile = "0.2.6" spin = "0.5.2" -x86_64 = "0.13.2" +x86_64 = "0.14.2" uart_16550 = "0.2.0" -pic8259_simple = "0.2.0" +pic8259 = "0.10.1" pc-keyboard = "0.5.0" -linked_list_allocator = "0.8.0" +linked_list_allocator = "0.9.0" [dependencies.lazy_static] version = "1.0" diff --git a/src/interrupts.rs b/src/interrupts.rs index 1816ab887..f937f50d9 100644 --- a/src/interrupts.rs +++ b/src/interrupts.rs @@ -1,6 +1,6 @@ use crate::{gdt, hlt_loop, print, println}; use lazy_static::lazy_static; -use pic8259_simple::ChainedPics; +use pic8259::ChainedPics; use spin; use x86_64::structures::idt::{InterruptDescriptorTable, InterruptStackFrame, PageFaultErrorCode}; @@ -47,12 +47,12 @@ pub fn init_idt() { IDT.load(); } -extern "x86-interrupt" fn breakpoint_handler(stack_frame: &mut InterruptStackFrame) { +extern "x86-interrupt" fn breakpoint_handler(stack_frame: InterruptStackFrame) { println!("EXCEPTION: BREAKPOINT\n{:#?}", stack_frame); } extern "x86-interrupt" fn page_fault_handler( - stack_frame: &mut InterruptStackFrame, + stack_frame: InterruptStackFrame, error_code: PageFaultErrorCode, ) { use x86_64::registers::control::Cr2; @@ -65,13 +65,13 @@ extern "x86-interrupt" fn page_fault_handler( } extern "x86-interrupt" fn double_fault_handler( - stack_frame: &mut InterruptStackFrame, + stack_frame: InterruptStackFrame, _error_code: u64, ) -> ! { panic!("EXCEPTION: DOUBLE FAULT\n{:#?}", stack_frame); } -extern "x86-interrupt" fn timer_interrupt_handler(_stack_frame: &mut InterruptStackFrame) { +extern "x86-interrupt" fn timer_interrupt_handler(_stack_frame: InterruptStackFrame) { print!("."); unsafe { PICS.lock() @@ -79,7 +79,7 @@ extern "x86-interrupt" fn timer_interrupt_handler(_stack_frame: &mut InterruptSt } } -extern "x86-interrupt" fn keyboard_interrupt_handler(_stack_frame: &mut InterruptStackFrame) { +extern "x86-interrupt" fn keyboard_interrupt_handler(_stack_frame: InterruptStackFrame) { use pc_keyboard::{layouts, DecodedKey, HandleControl, Keyboard, ScancodeSet1}; use spin::Mutex; use x86_64::instructions::port::Port; diff --git a/tests/stack_overflow.rs b/tests/stack_overflow.rs index 845644b45..de826f389 100644 --- a/tests/stack_overflow.rs +++ b/tests/stack_overflow.rs @@ -44,7 +44,7 @@ pub fn init_test_idt() { } extern "x86-interrupt" fn test_double_fault_handler( - _stack_frame: &mut InterruptStackFrame, + _stack_frame: InterruptStackFrame, _error_code: u64, ) -> ! { serial_println!("[ok]");