/* * Pause this cpu */ void cpu_pause(struct reg *regsp) { int s = splhigh(); cpuid_t cii = cpu_index(curcpu()); if (__predict_false(cold)) return; do { kcpuset_atomic_set(cpus_paused, cii); do { ; } while (kcpuset_isset(cpus_paused, cii)); kcpuset_atomic_set(cpus_resumed, cii); #if defined(DDB) if (ddb_running_on_this_cpu_p()) cpu_Debugger(); if (ddb_running_on_any_cpu_p()) continue; #endif } while (false); splx(s); }
/* * Console initialization: called early on from main, */ void consinit(void) { if (sysconsole == 0) syscnattach(0); else { omfb_cnattach(); ws_cnattach(); } #if NKSYMS || defined(DDB) || defined(MODULAR) ksyms_addsyms_elf((esym != NULL) ? 1 : 0, (void *)&end, esym); #endif #ifdef DDB if (boothowto & RB_KDB) cpu_Debugger(); #endif }
/* * Console initialization: called early on from main, */ void consinit() { if (sysconsole == 0) syscnattach(0); else { omfb_cnattach(); ws_cnattach(); } #if NKSYMS || defined(DDB) || defined(LKM) { extern char end[]; extern int *esym; ksyms_init(*(int *)&end, ((int *)&end) + 1, esym); } #endif #ifdef DDB if (boothowto & RB_KDB) cpu_Debugger(); #endif }
/* * Pause this cpu */ void cpu_pause(struct reg *regsp) { int s = splhigh(); int index = cpu_index(curcpu()); for (;;) { CPUSET_ADD(cpus_paused, index); do { ; } while (CPUSET_HAS_P(cpus_paused, index)); CPUSET_ADD(cpus_resumed, index); #if defined(DDB) if (ddb_running_on_this_cpu_p()) cpu_Debugger(); if (ddb_running_on_any_cpu_p()) continue; #endif break; } splx(s); }