Kernel: Replace PIC with APIC

If APIC/IOAPIC is not found, we fallback to PIC

Interrupts don't seem to work on real hardware (?)
This commit is contained in:
Bananymous
2022-12-19 11:33:07 +02:00
parent 7efa5bfb75
commit 0bdb01ee04
11 changed files with 427 additions and 46 deletions

View File

@@ -0,0 +1,13 @@
#pragma once
#include <stdint.h>
namespace APIC
{
void Initialize();
void EOI();
void GetISR(uint32_t[8]);
void EnableIRQ(uint8_t irq);
}

View File

@@ -2,7 +2,7 @@
#include <stdint.h>
constexpr uint8_t IRQ_VECTOR_BASE = 0x50;
constexpr uint8_t IRQ_VECTOR_BASE = 0x20;
namespace IDT
{

View File

@@ -5,11 +5,12 @@
namespace PIC
{
void initialize();
void eoi(uint8_t);
void unmask(uint8_t);
void mask(uint8_t);
void Remap();
void MaskAll();
void EOI(uint8_t);
void Unmask(uint8_t);
void Mask(uint8_t);
uint16_t get_isr();
uint16_t GetISR();
}