Allow userspace to handle IRQs (WIP). Create basic keyboard handler
This commit is contained in:
parent
4bcee99d9f
commit
36fde7c7c5
8 changed files with 115 additions and 24 deletions
|
@ -17,6 +17,14 @@ unsafe fn slave_ack() {
|
|||
master_ack();
|
||||
}
|
||||
|
||||
pub unsafe fn acknowledge(irq: usize) {
|
||||
if irq >= 8 {
|
||||
slave_ack();
|
||||
} else {
|
||||
master_ack();
|
||||
}
|
||||
}
|
||||
|
||||
interrupt!(pit, {
|
||||
COUNTS.lock()[0] += 1;
|
||||
master_ack();
|
||||
|
@ -24,10 +32,6 @@ interrupt!(pit, {
|
|||
|
||||
interrupt!(keyboard, {
|
||||
COUNTS.lock()[1] += 1;
|
||||
if let Some(ref mut keyboard) = *PS2_KEYBOARD.lock(){
|
||||
keyboard.on_irq();
|
||||
}
|
||||
master_ack();
|
||||
});
|
||||
|
||||
interrupt!(cascade, {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue