WIP - IOAPIC

This commit is contained in:
2017-03-22 14:35:52 +01:00
parent 8bd9b0ef16
commit 253cd84a1f
7 changed files with 105 additions and 36 deletions

View File

@@ -9,3 +9,8 @@ void apic_ack();
#define APIC_INT_TYPE_FIXED 0x0
#define APIC_INT_TYPE_INIT 0x5
#define APIC_INT_TYPE_STARTUP 0x6
void ioapic_init();
void ioapic_mask(uint8_t irq);
void ioapic_unmask(uint8_t irq);

View File

@@ -87,14 +87,12 @@ struct idtr
} __attribute__ ((packed));
void pic_init();
void pic_ack(uint8_t irq);
void pic_mask(uint8_t irq);
void pic_unmask(uint8_t irq);
extern unsigned int irq_map[24];
#define IRQ_INT(irq) (INT_IRQ0 + irq)
#define IRQ(irq) (irq)
#define IRQ_MASK(irq) pic_mask(irq)
#define IRQ_UNMASK(irq) pic_unmask(irq)
#define IRQ_ACK(irq) pic_ack(irq)
#define IRQ(irq) (irq_map[irq])
#define IRQ_MASK(irq) ioapic_mask(IRQ(irq))
#define IRQ_UNMASK(irq) ioapic_unmask(IRQ(irq))
#define IRQ_ACK(irq) apic_ack(IRQ(irq))
#define IRQ_TIMER 0
#define IRQ_KEYBOARD 1