#include "interrupts/IRQ.h" #include "io/IO.h" #include "io/PIC.h" #include "rand/Init.h" #include "scheduling/PIT.h" #include "std/stdio.h" void IRQ::interrupt_handler(SavedContext* context) { switch (context->irq_number) { case 0: PIT::tick(); break; case 1: { [[maybe_unused]] volatile unsigned char scancode = IO::inb(0x60); printf("Keyboard key pressed, seconds since boot: %ld\n", PIT::ms_since_boot / 1000); break; } default: printf("Unhandled IRQ: %ld", context->irq_number); break; } Mersenne::reseed(); PIC::send_eoi(context->irq_number); return; }