OPNsense - FreeBSD source
Find a file
Andriy Gapon b46dedfa48 run acpi_shutdown_final later to give other handlers a chance
For example, shutdown_panic wants to produce some output and maybe take
some input before a system is actually reset.

The change should only make difference for the case of system reset
(reboot), poweroff and halt should not be affected.

The change makes difference only if hw.acpi.handle_reboot is set.  It
used to default to zero until r213755 / ac731af567.

Also, run shutdown_halt even later, after acpi_shutdown_final.  The
reason for that is that poweroff is requested by RB_POWEROFF | RB_HALT
combination of flags.  In my opinion, that command is a bit bipolar, but
since we've been doing that forever, then so be it.  Because of that
flag combination, the order of shutdown_final handlers that check for
either flag does matter.

Some additional complexity comes from platform-specific shutdown_final
handlers that aim to handle multiple reboot options at once.  E.g.,
acpi_shutdown_final handles both poweroff and reboot / reset.  As
explained in 9cdf326b4f, such a handler must run after shutdown_panic to
give it a chance.  But as the change revealed, the handler must also run
before shutdown_halt, so that the system can actually power off before
entering the halt limbo.

Previously, shutdown_panic and shutdown_halt had the same priority which
appears to be incompatible with handlers that can do both poweroff and
reset.

The above also applies to power cycle handlers.

(cherry picked from commit 9cdf326b4faef97f0d3314b5dd693308ac494d48)
(cherry picked from commit e4ab361e53945a6c3e9d68c5e5ffc11de40a35f2)
2024-02-17 17:14:17 +02:00
.cirrus-ci Cirrus-CI: add some timing info on pkg install failure 2021-08-04 15:02:00 -04:00
.github MAINTAINERS: Add myself to stand 2023-05-07 22:30:10 -06:00
bin hostname(1): Add test cases 2024-02-08 14:02:33 +08:00
cddl ctfmerge: Remove function cast of strcompare() for qsort() 2024-02-11 10:14:36 -05:00
contrib unbound: Vendor import 1.19.1 2024-02-17 05:44:30 -08:00
crypto OpenSSL: Update date string 2024-02-07 16:48:50 -08:00
etc crashinfo: Print stack traces for all on-CPU threads 2024-02-09 09:55:45 -05:00
gnu Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
include Add kcmp(2) userspace bits 2024-01-30 22:24:42 +02:00
kerberos5 kerberos5: Mitigate the possibility of using an old libcrypto 2024-01-22 07:49:05 -08:00
lib unbound: Vendor import 1.19.1 2024-02-17 05:44:30 -08:00
libexec rtld-elf: Avoid unnecessary lock_restart_for_upgrade() calls 2024-02-09 09:55:56 -05:00
release release: Add AZURE to CLOUDWARE 2024-02-12 11:21:14 +08:00
rescue zfs: merge openzfs/zfs@32949f256 (zfs-2.2-release) into stable/14 2023-09-03 09:15:24 +02:00
sbin md5: Enter capability mode earlier 2024-02-15 09:16:07 -05:00
secure caroot: routine update 2024-02-13 13:14:51 -06:00
share Revert "hier.7: add /lib/casper directory" 2024-02-09 02:38:04 +02:00
stand loader: For EFI, if we don't have ConOut, try ConIn 2024-02-06 17:09:46 -07:00
sys run acpi_shutdown_final later to give other handlers a chance 2024-02-17 17:14:17 +02:00
targets Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51 2024-01-07 18:46:17 +01:00
tests fusefs: fix invalid value for st_birthtime.tv_nsec 2024-02-12 10:43:11 -07:00
tools Merge commit '850ef5ae11d69ea3381bd310f564f025fc8caea3' 2024-02-07 02:29:43 +00:00
usr.bin Remove usr.bin/clang/llvm-ar/llvm-cxxfilt-driver.cpp file 2024-02-13 18:51:33 +01:00
usr.sbin efibootmgr: fix potential endless loop with -v 2024-02-17 16:18:04 +02:00
.arcconfig arcanist: use FreeBSD/git project repository instead of FreeBSD/svn 2022-08-23 14:16:41 +00:00
.arclint
.cirrus.yml Cirrus CI: Trigger on pull requests or downstream repos 2024-01-11 08:29:12 -05:00
.clang-format Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
.git-blame-ignore-revs git-blame-ignore-revs: OptionalObsoleteFiles.inc sorting commits 2023-12-02 00:56:40 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore .gitignore: Ignore LSP generated .cache 2023-03-07 10:04:18 -05:00
CONTRIBUTING.md CONTRIBUTING.md: reinsert double spaces 2023-07-10 12:24:24 -06:00
COPYRIGHT Happy New Year 2023! 2023-01-01 13:44:43 +08:00
LOCKS Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
MAINTAINERS Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
Makefile pkgbase: create source package 2023-12-07 08:47:16 +01:00
Makefile.inc1 Make kldxref a bootstrap tool and use unconditionally 2024-01-18 14:30:06 -08:00
Makefile.libcompat build{libcompat}: Pass UNIVERSE_TOOLCHAIN_PATH to the _lc_build-tools submake 2023-08-21 21:00:45 -07:00
Makefile.sys.inc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
ObsoleteFiles.inc caroot: routine update 2024-02-13 13:14:51 -06:00
README.md README.md: link to the list of supported platforms 2022-11-01 12:20:55 -03:00
RELNOTES RELNOTES: Add an entry for commit b8e137d8d3 2023-12-26 15:29:11 -08:00
UPDATING Merge commit '850ef5ae11d69ea3381bd310f564f025fc8caea3' 2024-02-07 02:29:43 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory.

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), FreeBSD handbook on building userland, and Handbook for kernels for more information, including setting make(1) variables.

For information on the CPU architectures and platforms supported by FreeBSD, see the FreeBSD website's Platforms page.

Source Roadmap:

Directory Description
bin System/user commands.
cddl Various commands and libraries under the Common Development and Distribution License.
contrib Packages contributed by 3rd parties.
crypto Cryptography stuff (see crypto/README).
etc Template files for /etc.
gnu Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING and gnu/COPYING.LIB for more information.
include System include files.
kerberos5 Kerberos5 (Heimdal) package.
lib System libraries.
libexec System daemons.
release Release building Makefile & associated tools.
rescue Build system for statically linked /rescue utilities.
sbin System commands.
secure Cryptographic libraries and commands.
share Shared resources.
stand Boot loader sources.
sys Kernel sources (see sys/README.md).
targets Support for experimental DIRDEPS_BUILD
tests Regression tests which can be run by Kyua. See tests/README for additional information.
tools Utilities for regression testing and miscellaneous tasks.
usr.bin User commands.
usr.sbin System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see FreeBSD Handbook.