diff options
| -rw-r--r-- | sys/amd64/amd64/machdep.c | 12 | ||||
| -rw-r--r-- | sys/amd64/include/md_var.h | 3 | ||||
| -rw-r--r-- | sys/i386/i386/machdep.c | 12 | ||||
| -rw-r--r-- | sys/i386/include/md_var.h | 3 | ||||
| -rw-r--r-- | sys/kern/kern_shutdown.c | 10 | 
5 files changed, 34 insertions, 6 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index de5d4b7c4f10..2cf8d5f5ac6b 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -35,7 +35,7 @@   * SUCH DAMAGE.   *   *	from: @(#)machdep.c	7.4 (Berkeley) 6/3/91 - *	$Id: machdep.c,v 1.207 1996/10/05 10:44:03 jkh Exp $ + *	$Id: machdep.c,v 1.208 1996/10/20 18:35:32 phk Exp $   */  #include "npx.h" @@ -690,6 +690,16 @@ cpu_boot(int howto)  }  /* + * Shutdown the CPU as much as possible + */ +void +cpu_halt(void) +{ +	for (;;) +		__asm__ ("hlt"); +} + +/*   * Clear registers on exec   */  void diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index b8faa151de64..c8752e339e6e 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -26,7 +26,7 @@   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE.   * - *	$Id: md_var.h,v 1.8 1996/03/02 19:37:45 peter Exp $ + *	$Id: md_var.h,v 1.9 1996/07/01 18:12:24 bde Exp $   */  #ifndef _MACHINE_MD_VAR_H_ @@ -55,6 +55,7 @@ struct	reg;  void	bcopyb __P((const void *from, void *to, size_t len));  void	cpu_reset __P((void)); +void	cpu_halt __P((void));  void	doreti_iret __P((void)) __asm(__STRING(doreti_iret));  void	doreti_iret_fault __P((void)) __asm(__STRING(doreti_iret_fault));  void	doreti_popl_ds __P((void)) __asm(__STRING(doreti_popl_ds)); diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index de5d4b7c4f10..2cf8d5f5ac6b 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -35,7 +35,7 @@   * SUCH DAMAGE.   *   *	from: @(#)machdep.c	7.4 (Berkeley) 6/3/91 - *	$Id: machdep.c,v 1.207 1996/10/05 10:44:03 jkh Exp $ + *	$Id: machdep.c,v 1.208 1996/10/20 18:35:32 phk Exp $   */  #include "npx.h" @@ -690,6 +690,16 @@ cpu_boot(int howto)  }  /* + * Shutdown the CPU as much as possible + */ +void +cpu_halt(void) +{ +	for (;;) +		__asm__ ("hlt"); +} + +/*   * Clear registers on exec   */  void diff --git a/sys/i386/include/md_var.h b/sys/i386/include/md_var.h index b8faa151de64..c8752e339e6e 100644 --- a/sys/i386/include/md_var.h +++ b/sys/i386/include/md_var.h @@ -26,7 +26,7 @@   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE.   * - *	$Id: md_var.h,v 1.8 1996/03/02 19:37:45 peter Exp $ + *	$Id: md_var.h,v 1.9 1996/07/01 18:12:24 bde Exp $   */  #ifndef _MACHINE_MD_VAR_H_ @@ -55,6 +55,7 @@ struct	reg;  void	bcopyb __P((const void *from, void *to, size_t len));  void	cpu_reset __P((void)); +void	cpu_halt __P((void));  void	doreti_iret __P((void)) __asm(__STRING(doreti_iret));  void	doreti_iret_fault __P((void)) __asm(__STRING(doreti_iret_fault));  void	doreti_popl_ds __P((void)) __asm(__STRING(doreti_popl_ds)); diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c index 40d1d7403cd7..11e395b8e957 100644 --- a/sys/kern/kern_shutdown.c +++ b/sys/kern/kern_shutdown.c @@ -36,7 +36,7 @@   * SUCH DAMAGE.   *   *	@(#)kern_shutdown.c	8.3 (Berkeley) 1/21/94 - * $Id: kern_shutdown.c,v 1.8 1996/09/14 04:31:01 bde Exp $ + * $Id: kern_shutdown.c,v 1.9 1996/10/30 21:40:22 julian Exp $   */  #include "opt_ddb.h" @@ -229,7 +229,13 @@ boot(howto)  		printf("\n");  		printf("The operating system has halted.\n");  		printf("Please press any key to reboot.\n\n"); -		while (cngetc() == -1); /* no console, halt means STOP HERE */ +		switch (cngetc()) { +		case -1:		/* No console, just die */ +			cpu_halt(); +			/* NOTREACHED */ +		default: +			break; +		}  	} else {  		if (howto & RB_DUMP) {  			if (!cold) {  | 
