__dead void doboot() { printf("Rebooting system...\n\n"); bootstack(); cmmu_shutdown(); scm_reboot(NULL); /*NOTREACHED*/ for (;;); /* appease gcc */ }
__dead void boot(int howto) { if (curproc && curproc->p_addr) savectx(curpcb); if (cold) { if ((howto & RB_USERREQ) == 0) howto |= RB_HALT; goto haltsys; } boothowto = howto; if ((howto & RB_NOSYNC) == 0) { vfs_shutdown(); if ((howto & RB_TIMEBAD) == 0) { resettodr(); } else { printf("WARNING: not updating battery clock\n"); } } if_downall(); uvm_shutdown(); splhigh(); cold = 1; if ((howto & RB_DUMP) != 0) dumpsys(); haltsys: config_suspend_all(DVACT_POWERDOWN); if ((howto & RB_HALT) != 0) { printf("System halted.\n\n"); bootstack(); cmmu_shutdown(); scm_halt(); } doboot(); for (;;) ; /* NOTREACHED */ }