proka_kernel/interrupts/pic.rs
1use pic8259::ChainedPics;
2use spin;
3
4pub const PIC_1_OFFSET: u8 = 32;
5pub const PIC_2_OFFSET: u8 = PIC_1_OFFSET + 8;
6
7pub static PICS: spin::Mutex<ChainedPics> =
8 spin::Mutex::new(unsafe { ChainedPics::new(PIC_1_OFFSET, PIC_2_OFFSET) });
9
10pub fn init() {
11 unsafe {
12 let mut pics = PICS.lock();
13 pics.initialize();
14 pics.write_masks(0xFD, 0xFF);
15 }
16}
17
18pub fn disable() {
19 unsafe { PICS.lock().disable() };
20}