1.\" $NetBSD: cpu_reboot.9,v 1.19 2024/09/07 19:13:29 rillig Exp $ 2.\" 3.\" Copyright (c) 1994 Christopher G. Demetriou 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed for the 17.\" NetBSD Project. See https://www.NetBSD.org/ for 18.\" information about NetBSD. 19.\" 4. The name of the author may not be used to endorse or promote products 20.\" derived from this software without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 23.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 24.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 25.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 26.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 27.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 31.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32.\" 33.\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>> 34.\" 35.Dd February 11, 2010 36.Dt CPU_REBOOT 9 37.Os 38.Sh NAME 39.Nm cpu_reboot 40.Nd halt or reboot the system 41.Sh SYNOPSIS 42.In sys/reboot.h 43.Ft void 44.Fn cpu_reboot "int howto" "char *bootstr" 45.Sh DESCRIPTION 46The 47.Fn cpu_reboot 48function handles final system shutdown, and either halts or reboots 49the system. 50The exact action to be taken is determined by the flags passed in 51.Fa howto 52and by whether or not the system has finished autoconfiguration. 53.Pp 54If the system has finished autoconfiguration, 55.Fn cpu_reboot 56does the following: 57.Bl -enum -offset indent 58.It 59Sets the 60.Va boothowto 61system variable (see 62.Xr boothowto 9 ) 63from the 64.Fa howto 65argument. 66.It 67If this is the first invocation of 68.Fn cpu_reboot 69and the 70.Dv RB_NOSYNC 71flag is not set in 72.Fa howto , 73syncs and unmounts the system disks by calling 74.Xr vfs_shutdown 9 75and sets the time of day clock by calling 76.Xr resettodr 9 . 77.It 78Disables interrupts. 79.It 80If rebooting after a crash (i.e., if 81.Dv RB_DUMP 82is set in 83.Fa howto , 84but 85.Dv RB_HALT 86is not), saves a system crash dump. 87.It 88Runs any shutdown hooks by calling 89.Xr pmf_system_shutdown 9 . 90.It 91Prints a message indicating that the system is about to be halted 92or rebooted. 93.It 94If 95.Dv RB_HALT 96is set in 97.Fa howto , 98halts the system. 99Otherwise, reboots the system. 100.El 101.Pp 102If the system has not finished autoconfiguration, 103.Fn cpu_reboot 104runs any shutdown hooks by calling 105.Xr pmf_system_shutdown 9 , 106prints a message, and halts the system. 107.Pp 108If 109.Dv RB_STRING 110is set in 111.Pa howto , 112then the parameter 113.Fa bootstr 114is passed to the system boot loader on some ports. 115.Sh SEE ALSO 116.Xr boothowto 9 , 117.Xr dumpsys 9 , 118.Xr pmf_system_shutdown 9 , 119.Xr resettodr 9 , 120.Xr vfs_shutdown 9 121