cpu_reboot(9) [netbsd man page]
CPU_REBOOT(9) BSD Kernel Developer's Manual CPU_REBOOT(9) NAME
cpu_reboot -- halt or reboot the system SYNOPSIS
#include <sys/reboot.h> void cpu_reboot(int howto, char *bootstr); DESCRIPTION
The cpu_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 howto and by whether or not the system has finished autoconfiguration. If the system has finished autoconfiguration, cpu_reboot() does the following: 1. Sets the boothowto system variable (see boothowto(9)) from the howto argument. 2. If this is the first invocation of cpu_reboot() and the RB_NOSYNC flag is not set in howto, syncs and unmounts the system disks by calling vfs_shutdown(9) and sets the time of day clock by calling resettodr(9). 3. Disables interrupts. 4. If rebooting after a crash (i.e., if RB_DUMP is set in howto, but RB_HALT is not), saves a system crash dump. 5. Runs any shutdown hooks by calling pmf_system_shutdown(9). 6. Prints a message indicating that the system is about to be halted or rebooted. 7. If RB_HALT is set in howto, halts the system. Otherwise, reboots the system. If the system has not finished autoconfiguration, cpu_reboot() runs any shutdown hooks by calling pmf_system_shutdown(9), prints a message, and halts the system. If RB_STRING is set in howto, then the parameter bootstr is passed to the system boot loader on some ports. SEE ALSO
boothowto(9), dumpsys(9), pmf_system_shutdown(9), resettodr(9), vfs_shutdown(9) BSD
February 11, 2010 BSD
Check Out this Related Man Page
BOOTHOWTO(9) BSD Kernel Developer's Manual BOOTHOWTO(9) NAME
boothowto, BOOT_FLAG -- flags passed to kernel during boot or shutdown SYNOPSIS
#include <sys/reboot.h> #include <sys/systm.h> extern int boothowto; #include <sys/boot_flag.h> #define BOOT_FLAG(arg, retval) ... DESCRIPTION
The boothowto variable contains flags passed to the kernel by the boot loader (see boot(8)), or the reboot(2) system call. The value is interpreted as a bit mask, with bits defined by the ``RB_*'' and ``AB_*'' symbols in <sys/reboot.h>. The value is made available via the sysctl(7) variable kern.boothowto. The BOOT_FLAG macro defined in <sys/boot_flag.h> is used by many boot loaders to convert command line options into boothowto flags. Note that not all boot loaders use this macro, and some boot loaders may have incompatible options. Where possible, flags set by the reboot(2) system call will be passed to the new kernel after a reboot; the extent to which this is possible is machine dependent. In the following tables, each flag is listed with its symbolic name, the corresponding numeric value defined in <sys/reboot.h>, and the option letter (if any) understood by the BOOT_FLAG macro. Flags that affect booting or shutting down The following flags affect actions taken during system boot or shutdown. RB_AUTOBOOT 0 The default if no other flags are set. Causes the system to boot in the normal way. RB_ASKNAME 0x00000001 -a This flag causes various parts of the system to prompt: o The boot loader may prompt for the name or location of the kernel to be booted. o The kernel will prompt for the root file system device. o The kernel will prompt for the root file system type. o The kernel will prompt for the location of the dump device. o The kernel will prompt for the path to the init(8) program. Some subsystems set this flag when they are unable to automatically make a decision. RB_SINGLE 0x00000002 -s Boot in single-user mode. If this flag is set, the kernel passes the -s option to init(8). RB_NOSYNC 0x00000004 If this flag is set, then some parts of the shutdown process will be less graceful than usual: o Disks will not be synced (see sync(2) and cpu_reboot(9)). o Devices will not be detached (see autoconf(9)). o File systems will not be unmounted (see cpu_reboot(9), and vfs_shutdown(9)). o The time of day clock will not be set (see resettodr(9)). RB_HALT 0x00000008 -b If this flag is set, then reboot(2) will cause the system to halt instead of rebooting. This flag may be set at boot time, and cannot be cleared by reboot(2). RB_INITNAME 0x00000010 This flag is obsolete. It was previously used to cause the kernel to prompt for the name of the init(8) program, but that function is now controlled by the RB_ASKNAME flag. RB_KDB 0x00000040 -d Gives control to a kernel debugger early in the boot sequence. See ddb(4), ``options KGDB'' in options(4), and ipkdb(9). RB_RDONLY 0x00000080 This flag is deprecated. It previously caused the kernel to mount the root file system in read-only mode, but now that is the default, and this flag has no effect. RB_DUMP 0x00000100 Causes the kernel to dump memory to the dump device during shutdown. See savecore(8), cpu_reboot(9), and dumpsys(9). RB_MINIROOT 0x00000200 -m This flag informs the kernel that a mini-root file system is present in memory. See md(4), and mdsetimage(8). RB_STRING 0x00000400 This flag indicates that a boot string is present. The string may be provided by reboot(2) and will be passed to the boot loader if possible. RB_POWERDOWN (RB_HALT|0x800) This flag is used in conjunction with RB_HALT. If this flag is set, then then system will be powered down if possible. If powerdown is not supported, then the system will halt. RB_USERCONF 0x00001000 -c This flag causes the kernel to invoke the userconf(4) device configuration manager early in the boot sequence. Flags that affect verbosity The following flags affect the verbosity of messages printed by the kernel. These flags are used by several functions described in kprintf(9) to control whether output is sent to the console, the system log, both, or neither. The use of flags that increase verbosity simultaneously with the use of flags that decrease verbosity, is not well defined. AB_NORMAL 0 The default, if none of the other AB_* flags is set, is that ordinary kernel messages are sent both to the console and to the system log. AB_QUIET 0x00010000 -q Boot quietly. Ordinary kernel messages are sent to the system log, but not to the console. Messages printed with aprint_naive(9) are sent to the console, but not to the system log. AB_VERBOSE 0x00020000 -v Boot verbosely. Some messages will be printed that would otherwise not be printed. Both ordinary kernel messages, and messages printed with aprint_verbose(9), will be sent both to the console and to the system log. If this flag is not set, then messages printed with aprint_verbose(9) will be sent only to the sys- tem log. AB_SILENT 0x00040000 -z Boot silently. Most kernel messages will be sent only to the system log, not to the console. The aprint_*() functions display a spinning symbol on the console. AB_DEBUG 0x00080000 -x Boot with debug messages. Machine-dependent flags The following flags have machine-dependent meanings. RB_MD1 0x10000000 -1 Some ports use this flag to disable multiprocessor mode, making them use only a single CPU. The zaurus port uses this flag to enable the serial console. RB_MD2 0x20000000 -2 The i386 and amd64 ports use this flag to disable acpi(4). RB_MD3 0x40000000 -3 This flag is currently not used by any ports. RB_MD4 0x80000000 -4 This flag is currently not used by any ports. SEE ALSO
reboot(2), ddb(4), userconf(4), sysctl(7), boot(8), crash(8), init(8), reboot(8), savecore(8), sync(8), cpu_reboot(9), kprintf(9) HISTORY
The boothowto variable appeared in 4.0BSD. The BOOT_FLAG macro appeared in NetBSD 1.6. The RB_DFLTROOT option is now obsolete. BSD
September 11, 2009 BSD