include/bootstate.h: Fail compilation on invalid bootstate hooks

No BS_ON_EXIT hooks are run on BS_PAYLOAD_BOOT or BS_OS_RESUME, so don't
allow these hooks.

Change-Id: I318165f0bd510aed3138d3612dd3e264901aba96
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/72708
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
Arthur Heymans 2023-02-01 11:11:13 +01:00 committed by Paul Fagerburg
parent 897d63a840
commit 9ce7935b49
1 changed files with 5 additions and 1 deletions

View File

@ -188,7 +188,11 @@ struct boot_state_init_entry {
}; \ }; \
static struct boot_state_init_entry * \ static struct boot_state_init_entry * \
bsie_ ## func_ ##_## state_ ##_## when_ BOOT_STATE_INIT_ATTR = \ bsie_ ## func_ ##_## state_ ##_## when_ BOOT_STATE_INIT_ATTR = \
&func_ ##_## state_ ##_## when_; &func_ ##_## state_ ##_## when_; \
_Static_assert(!(state_ == BS_PAYLOAD_BOOT && when_ == BS_ON_EXIT), \
"Invalid bootstate hook"); \
_Static_assert(!(state_ == BS_OS_RESUME && when_ == BS_ON_EXIT), \
"Invalid bootstate hook");
/* Hook per arch when coreboot is exiting to payload or ACPI OS resume. It's /* Hook per arch when coreboot is exiting to payload or ACPI OS resume. It's
* the very last thing done before the transition. */ * the very last thing done before the transition. */