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>
Reviewed-on: http://review.coreboot.org/2665
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
Gabe Black 2013-01-31 04:27:39 -08:00 committed by Stefan Reinauer
parent b53a73ef77
commit 2def2625e0
1 changed files with 4 additions and 3 deletions

View File

@ -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))))