Espresso 0.0.1c

This commit is contained in:
2025-07-01 20:39:38 -05:00
parent f9f3faca4f
commit 8648637b51
23 changed files with 384 additions and 419 deletions

View File

@ -4,19 +4,26 @@
#include <drivers/irq.h>
irq_func_t func_list[64];
void irq_init(void)
{
set_irq_handler(0, (irq_func_t*)pit_handler);
set_irq_handler(1, (irq_func_t*)keyboard_handler);
}
void irq_handler(uint8_t irq_number)
{
switch (irq_number)
if (irq_number < 64 && func_list[irq_number])
{
case 0:
pit_handler();
break;
case 1:
keyboard_handler();
break;
default:
printf("Unhandled IRQ %u\n", irq_number);
break;
func_list[irq_number]();
}
}
void set_irq_handler(uint32_t num, irq_func_t* handler)
{
if (num < 64)
{
func_list[num] = (irq_func_t)handler;
}
}