diff options
Diffstat (limited to 'cmd/binop.c')
-rw-r--r-- | cmd/binop.c | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/cmd/binop.c b/cmd/binop.c index be780bffd7..116a2c0d55 100644 --- a/cmd/binop.c +++ b/cmd/binop.c @@ -2,6 +2,7 @@ #include <common.h> #include <command.h> +#include <hexdump.h> #include <malloc.h> #include <mapmem.h> #include <linux/ctype.h> @@ -31,38 +32,15 @@ void write_to_env_var(char *varname, u8 *result, ulong len) free(str_output); } -void decode_hexstring(char *hexstr, u8 *result) -{ - int i; - int acc = 0; - - for (i = 0; i < strlen(hexstr); ++i) { - char d = hexstr[i]; - int value; - - if (isdigit(d)) - value = (d - '0'); - else - value = (islower(d) ? toupper(d) : d) - 'A' + 10; - - if (i % 2 == 0) { - acc = value * 16; - } else { - result[i / 2] = acc + value; - acc = 0; - } - } -} - void read_from_env_var(char *varname, u8 *result) { char *str_value; str_value = env_get(varname); if (str_value) - decode_hexstring(str_value, result); + hex2bin(result, str_value, strlen(str_value) / 2); else - decode_hexstring(varname, result); + hex2bin(result, varname, strlen(varname) / 2); } void read_from_mem(ulong addr, u8 *result, ulong len) |