Kernel: make shutdown more verbose
Change-Id: Iab5fed4cb617a9dbce164ff81c7dedf408e9fd98
This commit is contained in:
parent
2e723784ff
commit
e232e0cbf0
|
@ -84,13 +84,13 @@ void
|
||||||
poweroff(void)
|
poweroff(void)
|
||||||
{
|
{
|
||||||
const char *shutdown_str;
|
const char *shutdown_str;
|
||||||
|
|
||||||
/* Bochs/QEMU poweroff */
|
/* Bochs/QEMU poweroff */
|
||||||
shutdown_str = "Shutdown";
|
shutdown_str = "Shutdown";
|
||||||
while (*shutdown_str) outb(0x8900, *(shutdown_str++));
|
while (*shutdown_str) outb(0x8900, *(shutdown_str++));
|
||||||
|
|
||||||
/* fallback option: reset */
|
/* fallback option: hang */
|
||||||
reset();
|
for (; ; ) halt_cpu();
|
||||||
}
|
}
|
||||||
|
|
||||||
__dead void arch_shutdown(int how)
|
__dead void arch_shutdown(int how)
|
||||||
|
@ -120,12 +120,12 @@ __dead void arch_shutdown(int how)
|
||||||
|
|
||||||
switch (how) {
|
switch (how) {
|
||||||
case RBT_HALT:
|
case RBT_HALT:
|
||||||
/* Stop */
|
/* Hang */
|
||||||
for (; ; ) halt_cpu();
|
for (; ; ) halt_cpu();
|
||||||
NOT_REACHABLE;
|
NOT_REACHABLE;
|
||||||
|
|
||||||
case RBT_POWEROFF:
|
case RBT_POWEROFF:
|
||||||
/* Power off if possible, reset otherwise */
|
/* Power off if possible, hang otherwise */
|
||||||
poweroff();
|
poweroff();
|
||||||
NOT_REACHABLE;
|
NOT_REACHABLE;
|
||||||
|
|
||||||
|
|
|
@ -351,6 +351,8 @@ void minix_shutdown(timer_t *tp)
|
||||||
* down MINIX. How to shutdown is in the argument: RBT_HALT (return to the
|
* down MINIX. How to shutdown is in the argument: RBT_HALT (return to the
|
||||||
* monitor), RBT_RESET (hard reset).
|
* monitor), RBT_RESET (hard reset).
|
||||||
*/
|
*/
|
||||||
|
int how;
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/*
|
/*
|
||||||
* FIXME
|
* FIXME
|
||||||
|
@ -364,7 +366,27 @@ void minix_shutdown(timer_t *tp)
|
||||||
#endif
|
#endif
|
||||||
hw_intr_disable_all();
|
hw_intr_disable_all();
|
||||||
stop_local_timer();
|
stop_local_timer();
|
||||||
arch_shutdown(tp ? tmr_arg(tp)->ta_int : RBT_PANIC);
|
|
||||||
|
how = tp ? tmr_arg(tp)->ta_int : RBT_PANIC;
|
||||||
|
|
||||||
|
/* Show shutdown message */
|
||||||
|
direct_cls();
|
||||||
|
switch(how) {
|
||||||
|
case RBT_HALT:
|
||||||
|
direct_print("MINIX has halted. "
|
||||||
|
"It is safe to turn off your computer.\n");
|
||||||
|
break;
|
||||||
|
case RBT_POWEROFF:
|
||||||
|
direct_print("MINIX has halted and will now power off.\n");
|
||||||
|
break;
|
||||||
|
case RBT_DEFAULT:
|
||||||
|
case RBT_REBOOT:
|
||||||
|
case RBT_RESET:
|
||||||
|
default:
|
||||||
|
direct_print("MINIX will now reset.\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
arch_shutdown(how);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
|
|
Loading…
Reference in a new issue