matos/core/irq.c
Mathieu Maret 29f085b7aa Add va_list
and rename types.h into stdarg.h
2018-08-06 21:28:42 +02:00

33 lines
601 B
C

#include "irq.h"
#include "idt.h"
#include "pic.h"
#include "stdarg.h"
int irqSetup()
{
initPic();
return 0;
}
irq_handler irq_handler_array[IRQ_NUM] = {NULL, };
int irqSetRoutine(int irq, irq_handler handler)
{
uint32_t flags;
if ((irq < 0) || irq >= IRQ_NUM)
return -1;
disable_IRQs(flags);
irq_handler_array[irq] = handler;
if (handler != NULL) {
int ret =
idt_set_handler(IRQ_INTERRUPT_BASE_ADDRESS + irq, (unsigned int)irq_handler_array[irq], 0);
if (!ret)
enableIrq(irq);
}
restore_IRQs(flags);
return 0;
}