boot(9): update to match reality

This function was renamed to kern_reboot() in 2010, but the man page has
failed to keep in sync. Bring it up to date on the rename, add the
shutdown hooks to the synopsis, and document the (obvious) fact that
kern_reboot() does not return.

Fix an outdated reference to the old name in kern_reboot(), and leave a
reference to the man page so future readers might find it before any
large changes.

Reviewed by:	imp, markj
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D32085
This commit is contained in:
Mitchell Horne 2021-09-28 11:36:09 -03:00
parent 5b53e749a9
commit 800e74955d
4 changed files with 25 additions and 11 deletions

View file

@ -40,6 +40,9 @@
# xargs -n1 | sort | uniq -d;
# done
# 20210923: rename boot(9) to kern_reboot(9)
OLD_FILES+=usr/share/man/man9/boot.9.gz
# 20210921: remove cloudabi
OLD_FILES+=usr/share/man/man4/cloudabi.4.gz

View file

@ -15,7 +15,6 @@ MAN= accept_filter.9 \
bhnd_erom.9 \
bios.9 \
bitset.9 \
boot.9 \
bpf.9 \
buf.9 \
buf_ring.9 \
@ -195,6 +194,7 @@ MAN= accept_filter.9 \
ithread.9 \
kasan.9 \
KASSERT.9 \
kern_reboot.9 \
kern_testfrwk.9 \
kernacc.9 \
kernel_mount.9 \

View file

@ -34,21 +34,25 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 14, 1997
.Dt BOOT 9
.Dd Sept 23, 2021
.Dt KERN_REBOOT 9
.Os
.Sh NAME
.Nm boot
.Nm kern_reboot
.Nd halt or reboot the system
.Sh SYNOPSIS
.In sys/types.h
.In sys/systm.h
.In sys/reboot.h
.Ft void
.Fn boot "int howto"
.Fn kern_reboot "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"
.Fn EVENTHANDLER_REGISTER "shutdown_final" "shutdown_fn" "private" "priority"
.Sh DESCRIPTION
The
.Fn boot
.Fn kern_reboot
function handles final system shutdown, and either halts or reboots
the system.
The exact action to be taken is determined by the flags passed in
@ -56,12 +60,12 @@ The exact action to be taken is determined by the flags passed in
and by whether or not the system has finished autoconfiguration.
.Pp
If the system has finished autoconfiguration,
.Fn boot
.Fn kern_reboot
does the following:
.Bl -enum -offset indent
.It
If this is the first invocation of
.Fn boot
.Fn kern_reboot
and the
.Dv RB_NOSYNC
flag is not set in
@ -93,8 +97,14 @@ Otherwise, reboots the system.
.El
.Pp
If the system has not finished autoconfiguration,
.Fn boot
.Fn kern_reboot
runs any shutdown hooks previously registered,
prints a message, and halts the system.
.Sh RETURN VALUES
The
.Fn kern_reboot
function does not return.
.Sh SEE ALSO
.Xr reboot 2
.Xr EVENTHANDLER 9
.Xr vfs_unmountall 9

View file

@ -421,7 +421,8 @@ doadump(boolean_t textdump)
}
/*
* Shutdown the system cleanly to prepare for reboot, halt, or power off.
* kern_reboot(9): Shut down the system cleanly to prepare for reboot, halt, or
* power off.
*/
void
kern_reboot(int howto)
@ -450,7 +451,7 @@ kern_reboot(int howto)
sched_bind(curthread, CPU_FIRST());
thread_unlock(curthread);
KASSERT(PCPU_GET(cpuid) == CPU_FIRST(),
("boot: not running on cpu 0"));
("%s: not running on cpu 0", __func__));
}
#endif
/* We're in the process of rebooting. */