コード例 #1
0
ASMLINK NORETURN
void
mpmain(struct cpu *cpu)
{
    long unit = cpu->unit;
    
    seginit(unit);
    idtset();
    m_atomwrite((m_atomic_t *)&cpu->flg, CPUSTARTED);
    mpinitcpu(unit);
    schedloop();

    /* NOTREACHED */
    for ( ; ; ) { ; }
}
コード例 #2
0
ファイル: mp.c プロジェクト: hongbochen/OS-Zero
ASMLINK
void
mpmain(struct m_cpu *cpu)
{
//    gdtinit();
    seginit(cpu->id);
    idtset();
    m_xchgl(&cpu->started, 1L);
    /* TODO: initialise HPET; enable [rerouted] interrupts */
#if (HPET)
    hpetinit();
    apicinitcpu(cpu->id);
    ioapicinit(cpu->id);
    tssinit(cpu->id);
#endif
    while (1) {
        k_waitint();
    }
}