From d14ad3a912da850e5b45cf7aee1da188939b4d2c Mon Sep 17 00:00:00 2001 From: Julien CLEMENT Date: Thu, 21 Apr 2022 16:47:56 +0200 Subject: [PATCH] feat(pic): create pit module Signed-off-by: Julien CLEMENT --- .gitignore | 1 + src/interrupts/pic/mod.rs | 10 +++------- src/interrupts/pic/pit.rs | 10 ++++++++++ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 src/interrupts/pic/pit.rs diff --git a/.gitignore b/.gitignore index 43b75fd..636f6a8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ iso julios .gdb_history peda-session-julios.txt +*.swp diff --git a/src/interrupts/pic/mod.rs b/src/interrupts/pic/mod.rs index b31e83a..04d9e55 100644 --- a/src/interrupts/pic/mod.rs +++ b/src/interrupts/pic/mod.rs @@ -5,6 +5,9 @@ use pc_keyboard::{layouts, DecodedKey, HandleControl, Keyboard, ScancodeSet1}; use x86_64::structures::idt::{InterruptStackFrame}; use x86_64::instructions::port::Port; use spin::{self, Mutex}; +pub use pit::timer_interrupt_handler; + +pub mod pit; pub const PIC_1_OFFSET: u8 = 32; pub const PIC_2_OFFSET: u8 = PIC_1_OFFSET + 8; @@ -37,13 +40,6 @@ pub fn init_pic() { unsafe { PICS.lock().initialize() }; } -pub extern "x86-interrupt" fn timer_interrupt_handler(_stack_frame: InterruptStackFrame) { - // print!("."); - unsafe { - PICS.lock() - .notify_end_of_interrupt(InterruptIndex::Timer.as_u8()); - } -} pub extern "x86-interrupt" fn keyboard_interrupt_handler(_stack_frame: InterruptStackFrame) { lazy_static! { diff --git a/src/interrupts/pic/pit.rs b/src/interrupts/pic/pit.rs new file mode 100644 index 0000000..f8f7376 --- /dev/null +++ b/src/interrupts/pic/pit.rs @@ -0,0 +1,10 @@ +use super::{PICS, InterruptIndex}; +use x86_64::structures::idt::InterruptStackFrame; + +pub extern "x86-interrupt" fn timer_interrupt_handler(_stack_frame: InterruptStackFrame) { + // print!("."); + unsafe { + PICS.lock() + .notify_end_of_interrupt(InterruptIndex::Timer.as_u8()); + } +}