diff options
author | dzwdz | 2022-08-04 15:58:54 +0200 |
---|---|---|
committer | dzwdz | 2022-08-04 15:58:54 +0200 |
commit | 81a58004d51547d074b4218f906b0b95f2b2c5dc (patch) | |
tree | 4301047fc342e165bc5a043a04b5fed44b8e8084 /src/kernel/arch/amd64/interrupts/irq.c | |
parent | 4a844820866094ff7d57435a16b7c23a9126814d (diff) |
syscalls: add _syscall_sleep()
Diffstat (limited to 'src/kernel/arch/amd64/interrupts/irq.c')
-rw-r--r-- | src/kernel/arch/amd64/interrupts/irq.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/kernel/arch/amd64/interrupts/irq.c b/src/kernel/arch/amd64/interrupts/irq.c index b5e9255..9872ec7 100644 --- a/src/kernel/arch/amd64/interrupts/irq.c +++ b/src/kernel/arch/amd64/interrupts/irq.c @@ -5,6 +5,12 @@ static const int PIC1 = 0x20; static const int PIC2 = 0xA0; +static void pit_init(void) { + uint16_t divisor = 1193; + port_out8(0x40, divisor & 0xFF); + port_out8(0x40, divisor >> 8); +} + void irq_init(void) { port_out8(PIC1, 0x11); /* start init sequence */ port_out8(PIC2, 0x11); @@ -18,11 +24,14 @@ void irq_init(void) { port_out8(PIC2+1, 0x1); uint8_t mask = 0xff; + mask &= ~(1 << IRQ_PIT); mask &= ~(1 << IRQ_PS2); mask &= ~(1 << IRQ_COM1); port_out8(PIC1+1, mask); port_out8(PIC2+1, 0xff); + + pit_init(); } void irq_eoi(uint8_t line) { |