]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
cmd: binop: Use hex2bin
authorMario Six <mario.six@gdsys.cc>
Mon, 28 Jan 2019 08:43:43 +0000 (09:43 +0100)
committerMario Six <mario.six@gdsys.cc>
Tue, 21 May 2019 05:52:34 +0000 (07:52 +0200)
Use the new hex2bin function in the binop command instead of converting
the data manually.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/binop.c

index be780bffd7baf460d7fcfeab9f34d7735acc08af..116a2c0d5547cae3b3ad865ffb5089d8a4604842 100644 (file)
@@ -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)