mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
cmd: binop: Use hex2bin
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>
This commit is contained in:
parent
29dada9c2e
commit
32dbe8c58a
1 changed files with 3 additions and 25 deletions
28
cmd/binop.c
28
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)
|
||||
|
|
Loading…
Add table
Reference in a new issue