]>
git.dujemihanovic.xyz Git - nameless-os.git/blob - kernel/drivers/irq/i8259a.c
3 #include <irq/i8259a.h>
5 void pic_init(int offset1
, int offset2
)
12 outb(PIC1_COMMAND
, PIC_ICW1_INIT
| PIC_ICW1_ICW4
);
14 outb(PIC2_COMMAND
, PIC_ICW1_INIT
| PIC_ICW1_ICW4
);
16 outb(PIC1_DATA
, offset1
);
18 outb(PIC2_DATA
, offset2
);
25 outb(PIC1_DATA
, PIC_ICW4_8086
);
27 outb(PIC2_DATA
, PIC_ICW4_8086
);
34 void pic_mask(uint8_t irq
)
45 value
= inb(port
) | (1 << irq
);
49 void pic_unmask(uint8_t irq
)
60 value
= inb(port
) & ~(1 << irq
);
64 void pic_mask_all(void)
66 outb(PIC1_DATA
, 0xFF);
69 void pic_unmask_all(void)
74 void pic_send_eoi(uint8_t irq
)
77 outb(PIC2_COMMAND
, PIC_EOI
);
79 outb(PIC1_COMMAND
, PIC_EOI
);