diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/bootstate.h | 10 | ||||
-rw-r--r-- | src/lib/hardwaremain.c | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/include/bootstate.h b/src/include/bootstate.h index 9fac70113e..a64446a4a1 100644 --- a/src/include/bootstate.h +++ b/src/include/bootstate.h @@ -2,6 +2,7 @@ #ifndef BOOTSTATE_H #define BOOTSTATE_H +#include <assert.h> #include <string.h> #include <stddef.h> /* Only declare main() when in ramstage. */ @@ -105,6 +106,15 @@ struct boot_state_callback { #endif }; +static inline const char *bscb_location(const struct boot_state_callback *bscb) +{ +#if CONFIG(DEBUG_BOOT_STATE) + return bscb->location; +#else + return dead_code_t(const char *); +#endif +} + #if CONFIG(DEBUG_BOOT_STATE) #define BOOT_STATE_CALLBACK_LOC __FILE__ ":" STRINGIFY(__LINE__) #define BOOT_STATE_CALLBACK_INIT_DEBUG .location = BOOT_STATE_CALLBACK_LOC, diff --git a/src/lib/hardwaremain.c b/src/lib/hardwaremain.c index cd4a57e96e..7ab2ade912 100644 --- a/src/lib/hardwaremain.c +++ b/src/lib/hardwaremain.c @@ -274,10 +274,10 @@ static void bs_call_callbacks(struct boot_state *state, phase->callbacks = bscb->next; bscb->next = NULL; -#if CONFIG(DEBUG_BOOT_STATE) - printk(BIOS_DEBUG, "BS: callback (%p) @ %s.\n", - bscb, bscb->location); -#endif + if (CONFIG(DEBUG_BOOT_STATE)) { + printk(BIOS_DEBUG, "BS: callback (%p) @ %s.\n", + bscb, bscb_location(bscb)); + } bscb->callback(bscb->arg); continue; } |