A poorly written OS for the x86 arch. (WIP)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
eOS/kernel/pic.c

25 lines
502 B

#include "pic.h"
#include "io.h"
void PIC_sendEOI(uint8 irq) {
if( irq >= 8 )
outb(PIC2_CMD, PIC_EOI);
outb(PIC1_CMD, PIC_EOI);
}
void PIC_remap(uint offset_1, uint offset_2) {
uint8 a1, a2;
a1 = inb(PIC1_DATA);
a2 = inb(PIC2_DATA);
// Start the init sequance
outb_w( PIC1_CMD, ICW_INIT_MASK );
outb_w(PIC2_CMD, ICW_INIT_MASK );
outb_w(PIC1_DATA, offset_1); // ICW2 master offset
outb_w(PIC2_DATA, offset_2); // ICW2 slave offset
outb_w(PIC1_DATA, 0x4);
outb_w(PIC2_DATA, 0x2);
}