summaryrefslogtreecommitdiff
path: root/util/cbfstool/common.h
diff options
context:
space:
mode:
authorHung-Te Lin <hungte@chromium.org>2013-01-28 15:53:34 +0800
committerHung-Te Lin <hungte@chromium.org>2013-02-01 06:50:17 +0100
commit332795cc5951c6d65badd2bbf3c79f6b63dbdbc2 (patch)
treeb6e6d44b49e53b2cf1c99fb80db5e6b20043c340 /util/cbfstool/common.h
parentd723c5b554786794217a92acb4ce0096bf924da8 (diff)
downloadcoreboot-332795cc5951c6d65badd2bbf3c79f6b63dbdbc2.tar.xz
cbfstool: Make endian detection functions to work without prior setup.
The 'host_bigendian' variable (and functions relying on it like ntohl/htonl) requires host detection by calling static which_endian() first -- which may be easily forgotten by developers. It's now a public function in common.c and doesn't need initialization anymore. Change-Id: I13dabd1ad15d2d6657137d29138e0878040cb205 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: http://review.coreboot.org/2199 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'util/cbfstool/common.h')
-rw-r--r--util/cbfstool/common.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/util/cbfstool/common.h b/util/cbfstool/common.h
index bd5ef65f16..5315e69bed 100644
--- a/util/cbfstool/common.h
+++ b/util/cbfstool/common.h
@@ -21,13 +21,16 @@
#define __CBFSTOOL_COMMON_H
#include <stdint.h>
+
+/* Endianess */
#include "swab.h"
#ifndef __APPLE__
-#define ntohl(x) (host_bigendian?(x):swab32(x))
-#define htonl(x) (host_bigendian?(x):swab32(x))
+#define ntohl(x) (is_big_endian() ? (x) : swab32(x))
+#define htonl(x) (is_big_endian() ? (x) : swab32(x))
#endif
-#define ntohll(x) (host_bigendian?(x):swab64(x))
-#define htonll(x) (host_bigendian?(x):swab64(x))
+#define ntohll(x) (is_big_endian() ? (x) : swab64(x))
+#define htonll(x) (is_big_endian() ? (x) : swab64(x))
+extern int is_big_endian(void);
/* Message output */
extern int verbose;