Stefan Reinauer (stefan.reinauer@coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2665
-gerrit
commit 6ade5f7e9c505ae959aec851b184a0e8ef02ba59 Author: Gabe Black gabeblack@google.com Date: Thu Jan 31 04:27:39 2013 -0800
libpayload: Add more parenthesis to the endian conversion macros
There weren't enough parenthesis in the macros so operations might only apply to the last part of an expression passed in as an argument.
Change-Id: I5afb406f9409986e45bbbc598bcbd0dd8507ed35 Signed-off-by: Gabe Black gabeblack@google.com --- payloads/libpayload/include/endian.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/payloads/libpayload/include/endian.h b/payloads/libpayload/include/endian.h index cd805e0..42237ea 100644 --- a/payloads/libpayload/include/endian.h +++ b/payloads/libpayload/include/endian.h @@ -26,9 +26,10 @@ #include <arch/types.h> #include <libpayload-config.h>
-#define swap_bytes16(in) (((in & 0xFF) << 8) | ((in & 0xFF00) >> 8)) -#define swap_bytes32(in) (((in & 0xFF) << 24) | ((in & 0xFF00) << 8) | \ - ((in & 0xFF0000) >> 8) | ((in & 0xFF000000) >> 24)) +#define swap_bytes16(in) ((((in) & 0xFF) << 8) | (((in) & 0xFF00) >> 8)) +#define swap_bytes32(in) ((((in) & 0xFF) << 24) | (((in) & 0xFF00) << 8) | \ + (((in) & 0xFF0000) >> 8) | \ + (((in) & 0xFF000000) >> 24)) #define swap_bytes64(in) (((uint64_t)swap_bytes32((uint32_t)(in)) << 32) | \ ((uint64_t)swap_bytes32((uint32_t)((in) >> 32))))