Files
Espresso/drivers/isr.c

30 lines
495 B
C

#include <stdio.h>
#include <isr.h>
void isr_handler(regs_t *r)
{
// Handle faults
if (r->int_no < 32)
{
printf("Received interrupt: %d\n", r->int_no);
// halt or kill task...
}
if (r->int_no == 128)
{
syscall_handler(r);
return;
}
}
void syscall_handler(regs_t *r)
{
switch (r->eax) {
case 0: printf("Syscall: Hello world\n"); break;
case 1: printf("Syscall: value = %d\n", r->ebx); break;
default: printf("Unknown syscall %d\n", r->eax);
}
}