git: b7caa912f9df - main - kern_reboot(9): document shutdown_nice()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Mar 2023 20:13:28 UTC
The branch main has been updated by mhorne:
URL: https://cgit.FreeBSD.org/src/commit/?id=b7caa912f9df5f76f189be18afc949a775c8e0fe
commit b7caa912f9df5f76f189be18afc949a775c8e0fe
Author: Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2023-03-20 19:58:16 +0000
Commit: Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2023-03-20 20:12:12 +0000
kern_reboot(9): document shutdown_nice()
Reviewed by: markj, Pau Amma <pauamma@gundo.com>
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39134
---
share/man/man9/Makefile | 3 ++-
share/man/man9/kern_reboot.9 | 35 ++++++++++++++++++++++++++++++++++-
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index b03993b57860..3bfc72b69dc6 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -1335,7 +1335,8 @@ MLINKS+=intr_event.9 intr_event_add_handler.9 \
intr_event.9 intr_event_remove_handler.9 \
intr_event.9 intr_priority.9
MLINKS+=KASSERT.9 MPASS.9
-MLINKS+=kern_reboot.9 reboot.9
+MLINKS+=kern_reboot.9 reboot.9 \
+ kern_reboot.9 shutdown_nice.9
MLINKS+=kern_yield.9 maybe_yield.9 \
kern_yield.9 should_yield.9
MLINKS+=kernacc.9 useracc.9
diff --git a/share/man/man9/kern_reboot.9 b/share/man/man9/kern_reboot.9
index e88574cce0d1..d120a437c521 100644
--- a/share/man/man9/kern_reboot.9
+++ b/share/man/man9/kern_reboot.9
@@ -45,7 +45,8 @@
.Dt REBOOT 9
.Os
.Sh NAME
-.Nm kern_reboot
+.Nm kern_reboot ,
+.Nm shutdown_nice
.Nd reboot, halt, or power off the system
.Sh SYNOPSIS
.In sys/types.h
@@ -54,6 +55,8 @@
.Vt extern int rebooting;
.Ft void
.Fn kern_reboot "int howto"
+.Ft void
+.Fn shutdown_nice "int howto"
.In sys/eventhandler.h
.Fn EVENTHANDLER_REGISTER "shutdown_pre_sync" "shutdown_fn" "private" "priority"
.Fn EVENTHANDLER_REGISTER "shutdown_post_sync" "shutdown_fn" "private" "priority"
@@ -147,12 +150,42 @@ the
section of the
.Xr panic 9
man page.
+.Pp
+The
+.Fn shutdown_nice
+function is the intended path for performing a clean reboot or shutdown when
+the system is operating under normal conditions.
+Calling this function will send a signal to the
+.Xr init 8
+process, instructing it to perform a shutdown.
+When
+.Xr init 8
+has cleanly terminated its children, it will perform the
+.Xr reboot 2
+system call, which in turn calls
+.Fn kern_reboot .
+.Pp
+If
+.Fn shutdown_nice
+is called before the
+.Xr init 8
+process has been spawned, or if the system has panicked or otherwise halted,
+.Fn kern_reboot
+will be called directly.
.Sh RETURN VALUES
The
.Fn kern_reboot
function does not return.
+.Pp
+The
+.Fn shutdown_nice
+function will usually return to its caller, having initiated the asynchronous
+system shutdown.
+It will not return when called from a panic or debugger context, or during
+early boot.
.Sh SEE ALSO
.Xr reboot 2 ,
+.Xr init 8 ,
.Xr EVENTHANDLER 9 ,
.Xr panic 9 ,
.Xr vfs_unmountall 9