示例#1
0
void IntelKernel::clocktick(CPUState *state, ulong param)
{
    IntelKernel *kern = (IntelKernel *) Kernel::instance;

    kern->enableIRQ(kern->m_pit.getInterruptVector(), true);
    kern->getProcessManager()->schedule();
}
示例#2
0
void IntelKernel::clocktick(CPUState *state, ulong param)
{
    IntelKernel *kern = (IntelKernel *) Kernel::instance;
    Size irq = kern->m_timer->getInterrupt();

#warning not working for APIC timer, because the timer IRQ is out of range on the PIC
    kern->enableIRQ(irq, true);

#warning TODO: tmp hack for APIC timer end-of-interrupt
    if (irq == kern->m_apic.getInterrupt())
        kern->m_apic.clear(irq);

    kern->m_timer->tick();
    kern->getProcessManager()->schedule();
}