#include "types.h" #include "x86.h" #include "traps.h" #include "defs.h" // I/O Addresses of the two 8259A programmable interrupt controllers #define IO_PIC1 0x20 // Master (IRQs 0-7) #define IO_PIC2 0xA0 // Slave (IRQs 8-15) #define IRQ_SLAVE 2 // IRQ at which slave connects to master // Current IRQ mask. // Initial IRQ mask has interrupt 2 enabled (for slave 8259A). static ushort irq_mask_8259A = 0xFFFF & ~(1<> 8)); } void irq_enable(int irq) { irq_setmask_8259A(irq_mask_8259A & ~(1<