November 13, 1995 CPU_REBOOT 9

### NAME

cpu_reboot - halt or reboot the system

### SYNOPSIS

```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 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 doshutdownhooks(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 doshutdownhooks(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

doshutdownhooks(9), dumpsys(9), resettodr(9), vfs_shutdown(9)