[U-Boot] [PATCH 2/2] cmd: binop: Use hex2bin

Mario Six mario.six at gdsys.cc
Mon Jan 28 08:43:43 UTC 2019


Use the new hex2bin function in the binop command instead of converting
the data manually.

Signed-off-by: Mario Six <mario.six at gdsys.cc>
---
 cmd/binop.c | 28 +++-------------------------
 1 file changed, 3 insertions(+), 25 deletions(-)

diff --git a/cmd/binop.c b/cmd/binop.c
index be780bffd7b..116a2c0d554 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)
-- 
2.20.1



More information about the U-Boot mailing list