From 332795cc5951c6d65badd2bbf3c79f6b63dbdbc2 Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Mon, 28 Jan 2013 15:53:34 +0800 Subject: 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 Reviewed-on: http://review.coreboot.org/2199 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel --- util/cbfstool/common.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'util/cbfstool/common.c') diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c index 3394b7b536..d4560f691f 100644 --- a/util/cbfstool/common.c +++ b/util/cbfstool/common.c @@ -27,6 +27,19 @@ #include "cbfs.h" #include "elf.h" +/* Utilities */ + +/* Small, OS/libc independent runtime check for endianess */ +int is_big_endian(void) +{ + static const uint32_t inttest = 0x12345678; + uint8_t inttest_lsb = *(uint8_t *)&inttest; + if (inttest_lsb == 0x12) { + return 1; + } + return 0; +} + size_t getfilesize(const char *filename) { size_t size; -- cgit v1.2.3