/*ARGSUSED*/ void exit(int status) { #ifdef __sparc extern void kmdb_prom_exit_to_mon(void) __NORETURN; kmdb_prom_exit_to_mon(); #else extern void kmdb_dpi_reboot(void) __NORETURN; static int recurse = 0; if (!recurse) { recurse = 1; mdb_iob_printf(mdb.m_out, "Press any key to reboot\n"); mdb_iob_flush(mdb.m_out); mdb_iob_clearlines(mdb.m_out); (void) kmdb_getchar(); } kmdb_dpi_reboot(); #endif }
/* * Called during normal debugger operation and during debugger faults. */ static void kaif_enter_mon(void) { char c; for (;;) { mdb_iob_printf(mdb.m_out, "%s: Do you really want to reboot? (y/n) ", mdb.m_pname); mdb_iob_flush(mdb.m_out); mdb_iob_clearlines(mdb.m_out); c = kmdb_getchar(); if (c == 'n' || c == 'N' || c == CTRL('c')) return; else if (c == 'y' || c == 'Y') { mdb_iob_printf(mdb.m_out, "Rebooting...\n"); kmdb_dpi_reboot(); } } }