summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/bootstate.h10
-rw-r--r--src/lib/hardwaremain.c8
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;
}