summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLee Leahy <leroy.p.leahy@intel.com>2017-03-07 12:01:02 -0800
committerLee Leahy <leroy.p.leahy@intel.com>2017-03-09 17:18:02 +0100
commitbb4ae07417c9b3be1af500a62514a2d42467cfb0 (patch)
tree36bb50ef045fe12ac50e25de03e4a610a658feab /src
parente0f5dfc6785c53217c0d97331b3ada46a51cc016 (diff)
downloadcoreboot-bb4ae07417c9b3be1af500a62514a2d42467cfb0.tar.xz
src/include: Add do { } while(0) around macros
Fix the following error detected by checkpatch.py: ERROR: Macros with multiple statements should be enclosed in a do - while loop False positives are generated when assembly code is used in a macro. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define post_code(value) \ + movb $value, %al; \ + outb %al, $CONFIG_POST_IO_PORT False positives are also generated for linker script include files. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define SET_COUNTER(name, addr) \ + _ = ASSERT(. <= addr, STR(name overlaps the previous region!)); \ + . = addr; False positives are also generated for attribute macros. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define DISABLE_TRACE_ON_FUNCTION __attribute__ ((no_instrument_function)); TEST=Build and run on Galileo Gen2 Change-Id: I88abf96579e906f6962d558a3d09907f07d00b1c Signed-off-by: Lee Leahy <Leroy.P.Leahy@intel.com> Reviewed-on: https://review.coreboot.org/18644 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/include/bootstate.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/include/bootstate.h b/src/include/bootstate.h
index 481a8bc54a..8f2f8b8f71 100644
--- a/src/include/bootstate.h
+++ b/src/include/bootstate.h
@@ -124,8 +124,10 @@ struct boot_state_callback {
#if IS_ENABLED(CONFIG_DEBUG_BOOT_STATE)
#define BOOT_STATE_CALLBACK_LOC __FILE__ ":" STRINGIFY(__LINE__)
#define BOOT_STATE_CALLBACK_INIT_DEBUG .location = BOOT_STATE_CALLBACK_LOC,
-#define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \
- bscb_->location = BOOT_STATE_CALLBACK_LOC;
+#define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \
+ do { \
+ bscb_->location = BOOT_STATE_CALLBACK_LOC; \
+ } while (0)
#else
#define BOOT_STATE_CALLBACK_INIT_DEBUG
#define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_)
@@ -144,9 +146,11 @@ struct boot_state_callback {
/* Initialize an allocated boot_state_callback. */
#define INIT_BOOT_STATE_CALLBACK(bscb_, func_, arg_) \
- INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \
- bscb_->callback = func_; \
- bscb_->arg = arg_
+ do { \
+ INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \
+ bscb_->callback = func_; \
+ bscb_->arg = arg_ \
+ } while(0)
/* The following 2 functions schedule a callback to be called on entry/exit
* to a given state. Note that there are no ordering guarantees between the