Add BIN2HEX and HEX2BIN macros (trivial).
authorUwe Hermann <uwe@hermann-uwe.de>
Fri, 4 Apr 2008 13:16:33 +0000 (13:16 +0000)
committerUwe Hermann <uwe@hermann-uwe.de>
Fri, 4 Apr 2008 13:16:33 +0000 (13:16 +0000)
They're generally useful for lots of stuff, but especially for converting
to/from the compact 160 bit (20 byte) representation of SHA-1 hashes to
the "hex" representation (same as 'sha1sum' output), which is 40 bytes long.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3213 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/include/libpayload.h

index 5595ff69789ca3885d82a5b2073e6b08a04e1ec0..2cdb0d00f636b0983b7cacce49eeb9d61c253eca 100644 (file)
 #define MAX(a,b) ((a) > (b) ? (a) : (b))
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
+#define BIN2HEX(b) ("0123456789abcdef"[b & 15])
+#define HEX2BIN(h) (('0' <= h && h <= '9') ? (h - '0') : \
+                    ('a' <= h && h <= 'f') ? (h - 'a' + 10) : 0)
+
 #define LITTLE_ENDIAN  1234
 #define BIG_ENDIAN     4321
 #ifdef CONFIG_TARGET_I386