summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2021-06-10 13:57:35 +0200
committerWerner Zeh <werner.zeh@siemens.com>2021-06-14 05:20:05 +0000
commit83156682d6e027dd5ef49be55b676c401ca9f1b8 (patch)
treee1891ab4a8e71131f146c433de3f2d8068a6ab2d /src/include
parent444c24a635d1b30811dee8ac37046fa125d373f6 (diff)
lib/hardwaremain.c: Hide preprocessor guards in header
The `location` member of `struct boot_state_callback` is conditionally guarded depending on `CONFIG(DEBUG_BOOT_STATE)` using preprocessor. It is probably intended to save some space when the `location` strings do not get printed. However, directly using the `location` member without any guards will cause a compile-time error. Plus, preprocessor-guarded code gets nasty really quickly. In order to minimise preprocessor usage, introduce the `bscb_location` inline helper function, which transforms the compile-time error into a link-time error. It is then possible to substitute preprocessor guards with an ordinary C `if` statement. Change-Id: I40b7f29f96ea96a5977b55760f0fcebf3a0df733 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/55386 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/bootstate.h10
1 files changed, 10 insertions, 0 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,