xref: /netbsd-src/share/man/man9/cpu_reboot.9 (revision 4baa9a4e9a8b56fc94b3d3ffcf8261a183367db4)
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