31 lines
520 B
C
31 lines
520 B
C
|
#ifndef HAZEL_PIC_H_
|
||
|
#define HAZEL_PIC_H_
|
||
|
|
||
|
#define PIC_1_COMMAND 0x20
|
||
|
#define PIC_2_COMMAND 0xA0
|
||
|
#define PIC_1_DATA 0x21
|
||
|
#define PIC_2_DATA 0xA1
|
||
|
|
||
|
#define PIC_EOI 0x20
|
||
|
|
||
|
#define PIC_1_START 32
|
||
|
#define PIC_2_START 40
|
||
|
|
||
|
#define PIC_1_ICW3 0x04
|
||
|
#define PIC_2_ICW3 0x02
|
||
|
|
||
|
#include <kernel/io.h>
|
||
|
|
||
|
enum ICW1 {
|
||
|
ICW4_NEEDED = 0x01,
|
||
|
SINGLE_MODE = 0x02,
|
||
|
INTERVAL_4 = 0x04,
|
||
|
LVL_TRIGGER = 0x08,
|
||
|
INIT_BIT = 0x10,
|
||
|
};
|
||
|
|
||
|
void pic_send_eoi(uint8_t irq);
|
||
|
void pic_remap(int pic1_start, int pic2_start);
|
||
|
|
||
|
#endif
|