for (day = TODAY; day != FOREVER; day++); say("I love you\n");
IDT[n]
PC = (mtvec & ~0xf)
mcause.Interrupt = 1
mepc = PC
mcause.Ecall = 1
FL_IF
#GP(0)
asm volatile ("cli");
Context *on_interrupt(Event ev, Context *ctx) { // Save context. current->context = *ctx; // Thread schedule. current = current->next; // Restore current thread's context. return ¤t->context; }